找回密码
 立即注册

QQ登录

只需一步,快速开始

htan
金牌服务用户   /  发表于:2020-11-6 10:36  /   查看:2180  /  回复:3
文件是使用poi生成的,在使用excelIo.open打开时样式就没有了。
直接打开文件是有样式的,而且直接打开哪个url是可以将文件下载下来的,打开也是有样式的

image.png876884460.png
直接打开文件
image.png395872802.png
在使用excel.open打开
image.png143448180.png

新建文件夹.zip

4.1 KB, 下载次数: 30

3 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-6 11:58:03
沙发
本帖最后由 ClarkPan 于 2020-11-6 11:59 编辑

您好:
这个问题应该是POI生成Excel文件时没有完全按照Excel公开的OpenXML规范来生成.
验证方法您可以试一下将这人文件通过Excel打开后,然后另存为,之后将另存为的文件再通过spreadjs来导入,就可以显示正常了(Excel保存时作自动的修正)。

这说明Excel本身在OpenXML规范的基础上额外做了一些容错性的操作,这部分由于没有规范我们只能case by case的去支持。您的这个问题我会上报。
临时的解决方案就是通过Excel另存为之后再导入。

但由于后端用POI生不知道还有哪些地方会生成这样不规范的Excel。所以用POI和SpreadJS做前后端支持并不是一个一劳永逸的解决方案。
建议您可以在服务端使用葡萄城自己的GCExcel来做为后端支撑。GCExcel与SpreadJS能够更好的兼容,不会出现上述问题。

您可以访问下面网站来进行评估和下载试用:
https://www.grapecity.com.cn/developer/grapecitydocuments/excel-java

我们在论坛的教程集锦中也分享了一些SpreadJS+GCExcel的整合示例您也可以进行参考:
https://gcdn.grapecity.com.cn/forum.php?mod=forumdisplay&fid=228
回复 使用道具 举报
Leoxx
注册会员   /  发表于:2024-5-7 20:41:21
板凳
Clark.Pan 发表于 2020-11-6 11:58
您好:
这个问题应该是POI生成Excel文件时没有完全按照Excel公开的OpenXML规范来生成.
验证方法您可以试 ...

Hi, 我也遇到了类似的问题,我没看明白您说的验证方法,能否说的详细些?

因为我做的验证是前端部分我在excelIO.open前,使用 FaverSaver.saveAs(blob, 'filename.xlsx') 保存了文件。然后直接在spreadjs在线编辑器中导入此文件,显示是正常的。
这一步我理解应该是没有经过Excel本身的自动修正,但格式也是正确的。那我是不是就不用再做您说的另存为操作了?

但我在 excelIO.open(blob, function (json) 中,直接调用excelIO.save(json, (blob) => {FaverSaver.saveAs(blob,`11.xlsx`) 保存,这时再打开格式就不对了。

基于以上情况,我才有些困惑。能否给个明确些的解决方案,我可以再哪一步进行另存为,或者能否提供更明确些的解决方案,谢谢。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-5-8 13:44:38
地板
Leoxx 发表于 2024-5-7 20:41
Hi, 我也遇到了类似的问题,我没看明白您说的验证方法,能否说的详细些?

因为我做的验证是前端部分我 ...

您好,注意到您发了一个新帖,这边在新帖中回复您哈。

https://gcdn.grapecity.com.cn/showtopic-218586-1-1.html
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部