innerwang 发表于 2024-1-11 18:53:05

每导出一次Excel文件,列宽就减少一次

本帖最后由 Ellia.Duan 于 2024-3-29 09:25 编辑

产品:SpreadJS
版本:V16.2.0
问题编号:SJS-22324
已在v17.0.3版本修复。

将如下 excel 文件通过所示 demo 来回进行导入和导出,会发现列宽会逐渐变少
第一次导入完列宽为 63

导出后再导入列宽就变为 62 了









另,如果在firefox 中使用此demo,导入上述模板,列宽是58


复现设备:




录屏如下:








Ellia.Duan 发表于 2024-1-11 18:53:06

您好,此问题已在17.0.3版本修复,您可以从npm上下载更新 测试一下。

Ellia.Duan 发表于 2024-1-12 09:21:45

本帖最后由 Ellia.Duan 于 2024-1-12 09:25 编辑

您好,在官网中的Designer中导入您上传的xlsx文件,列宽为61 ,导出后再次导入仍然为61 。
在火狐中执行上述的步骤列宽61也未发生变化。
所以猜测和您的项目有关,我将深入调研下在您的项目中如何解决此问题。

innerwang 发表于 2024-1-12 09:35:36

Ellia.Duan 发表于 2024-1-12 09:21
您好,在官网中的Designer中导入您上传的xlsx文件,列宽为61 ,导出后再次导入仍然为61 。
在火狐中执行上 ...

好的,辛苦,另外在 chrome 中官网的designer 表现是否正常呢?

我这边尝试了下在chrome浏览器中,通过官网的designer导入, 列宽为63



Ellia.Duan 发表于 2024-1-12 10:54:54

您好,目前在v16.2.0版本使用spread-sheets-io来导入导出您的文件,未复现此问题

具体可以参考附件中的sheetio.gif
但是使用excelio导入导出您的文件,复现了此问题,
具体可以参考附件中的excelio.gif
关于sheeio是SpreadJS V16推出的新的API,可以参考此链接
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/spreadjs-file-format/overview/purejs
其具体用法是:
$("#loadExcel").click(function () {
                var file = document.querySelector('#selectedFile').files;
                if (!file) {
                  return;
                }
                spread.import(file, function (args) {
                        let sheet = spread.getActiveSheet()
                        console.log("第二列列宽",sheet.getColumnWidth(1, GC.Spread.Sheets.SheetArea.viewport))
                }, function (e) {
                  console.log(e); // error callback
                }, {
                  fileType: GC.Spread.Sheets.FileType.excel,

                });

            });
            $("#exportExcel").click(function () {
                const fileName = 'exportExcel.xlsx';
                spread.export(function (blob) {
                  saveAs(blob, fileName);
                }, e => {
                  console.log('失败', e.errorMessage);
                }, {
                  fileType: GC.Spread.Sheets.FileType.excel,
                });
            });excelio用法是:
$("#loadExcel").click(function () {
                var excelFile = document.getElementById("fileDemo").files;
                excelIo.open(excelFile, function (json) {
                  var workbookObj = json;
                  spread.fromJSON(workbookObj);
                  let sheet = spread.getActiveSheet()
                  console.log("第二列列宽", sheet.getColumnWidth(1, GC.Spread.Sheets.SheetArea.viewport))
                }, function (e) {
                  console.log(e.errorMessage);

                });
            });
            $("#exportExcel").click(function () {
                fileName = 'export.xlsx';
                var json = spread.toJSON();
                excelIo.save(json, function (blob) {
                  saveAs(blob, fileName);
                }, function (e) {
                  console.log(e);
                });


            });



innerwang 发表于 2024-1-12 11:11:59

Ellia.Duan 发表于 2024-1-12 10:54
您好,目前在v16.2.0版本使用spread-sheets-io来导入导出您的文件,未复现此问题

具体可以参考附件中的s ...

我们目前不太好直接迁移到 sheetIO, 因为会基于 excelIO 打开的json 文件做一些定制化处理,以及做一些工作簿的配置。

希望excelIO 的问题能尽快修复

Ellia.Duan 发表于 2024-1-12 12:12:57

您好,反馈收到,问题编号:SJS-22324,待有进展,会及时联系您。

innerwang 发表于 2024-1-23 19:08:29

请问这个有进展了吗?

Ellia.Duan 发表于 2024-1-24 11:19:06

您好,此问题还在修复中。

innerwang 发表于 2024-1-24 14:09:28

Ellia.Duan 发表于 2024-1-24 11:19
您好,此问题还在修复中。

预计哪个版本可以修复呢?
页: [1] 2
查看完整版本: 每导出一次Excel文件,列宽就减少一次