您好,
造成此问题的原因是:
合并的json很大,做json stringify的时候,超出了浏览器字符串长度限制。
解决方案:
您只想导出excel,但是在json中,excel有大量无用的内容,因此,在保存excel之前删除一些内容。
将代码替换如下:
- if (sheetType === 1) {
- const datatableData = sheetObj.data.dataTable; //获取json的数据
- for (let line in datatableData) {
- //遍历datatable行
- for (let col in datatableData[line]) {
- if (datatableData[line][col].style && datatableData[line][col].style.cellType &&
- datatableData[line][col].style.cellType.sheetInfoItem) {
- delete datatableData[line][col].style.cellType.sheetInfoItem;
- }
- //遍历datatable列,如果是行头维度列头维度所在区域,且单元格值是对象,则需要将对象转换成字符串
- if ((+line < spaceRow + columnHeaderCount ||
- +col < spaceColumn + rowHeaderCount) &&
- $.isPlainObject(datatableData[line][col].value)
- ) {
- // 如果是对象则改成对象里的result属性的值
- datatableData[line][col].value = datatableData[line][col].value.result;
- }
- }
- }
- }
复制代码 具体可以参考附件的demo。
|
|