创建Azure DevOps扩展时遇xlsx库IWorkSheetCell导出错误求助
解决xlsx库0.18.5版本中
IWorkSheetCell不存在的错误 在SheetJS的xlsx库0.18.x版本中,IWorkSheetCell类型已被更名为CellObject,这是你遇到该错误的直接原因。以下是两种解决方案:
方法一:适配新版本类型(推荐)
将代码中的XLSX.IWorkSheetCell替换为XLSX.CellObject即可,修改后的关键代码如下:
var cell: XLSX.CellObject = { v: data[R][C], t: 's' };
完整修改后的代码片段:
for (var R = 0; R != data.length; ++R) { for (var C = 0; C != data[R].length; ++C) { if (range.s.r > R) range.s.r = R; if (range.s.c > C) range.s.c = C; if (range.e.r < R) range.e.r = R; if (range.e.c < C) range.e.c = C; var cell: XLSX.CellObject = { v: data[R][C], t: 's' }; if (cell.v == null) continue; var cell_ref = XLSX.utils.encode_cell({ c: C, r: R }); if (typeof cell.v === 'number') cell.t = 'n'; else if (typeof cell.v === 'boolean') cell.t = 'b'; else if (<any>cell.v instanceof Date) { cell.t = 'n'; cell.z = XLSX.SSF._table[14]; cell.v = datenum(cell.v); } else { cell.t = 's'; cell.s = '1'; } ws[cell_ref] = cell; } }
方法二:降级到旧版本
如果不想修改代码,可以将xlsx库降级到0.17.x版本(该版本仍保留IWorkSheetCell类型),执行命令:
npm install xlsx@0.17.5 --save
但更推荐使用方法一,新版本通常包含bug修复和功能更新,适配新类型能避免后续版本迭代带来的其他兼容性问题。
内容的提问来源于stack exchange,提问作者Adithya Gaurav
相关产品推荐
相关产品推荐

