M_栗子 发表于 2023-1-3 13:20:55

[14.45.20201.0][winform saveexcel过程中对公式的处理]

本帖最后由 M_栗子 于 2023-1-9 09:10 编辑

_fpSpread.SaveExcel ( fileName, ExcelSaveFlags.UseOOXMLFormat );
模板编辑的时候看着是正常的,save的时候偶尔会在前面加_xlfn.SINGLE
附件demo生成的bin下的report
界面会不显示,但是和这部分没有关系。。。P:最新发现界面消失是因为我在两个文件、用两个不同的方式控制这个表格,两个文件中切换太快了,系统还没反应过来,所以偶尔会消失。加个sleep就好

Richard.Ma 发表于 2023-1-3 13:20:56

好的,看来破案了,目前在新版本的office365中,测试你的report文件,结果是正常的。

问题的原因就在于老版本的office2019的excel不支持“@”符号,但是spread.NET一直在更新以保持和当前最新版本的excel新特性做兼容的。所以新版本的excel中是正常的

参考微软官方对此问题的回复
https://techcommunity.microsoft.com/t5/excel/issue-xlfn-single-and-being-added-to-formulas-unsupported/m-p/1424697

Richard.Ma 发表于 2023-1-3 18:31:50

通过你发的demo也没有重现问题,这边就是把你的demo运行起来然后多次点击了保存按钮,但是保存的xlsx文件都是正常的。

还有其他的操作步骤吗?

M_栗子 发表于 2023-1-4 09:13:15

Richard.Ma 发表于 2023-1-3 18:31
通过你发的demo也没有重现问题,这边就是把你的demo运行起来然后多次点击了保存按钮,但是保存的xlsx文件都 ...

可能和我用的office2019有关,看到其实界面上公式是能正常显示的。就是打开excel显示有点问题。界面消失可能不是这里的问题。

Richard.Ma 发表于 2023-1-4 09:22:16

你把保存后出现错误和正常的文件各发一个发过来吧,我在我这边测试一下,不排除是excel版本问题

M_栗子 发表于 2023-1-4 09:47:18

本帖最后由 M_栗子 于 2023-1-5 09:16 编辑

Richard.Ma 发表于 2023-1-4 09:22
你把保存后出现错误和正常的文件各发一个发过来吧,我在我这边测试一下,不排除是excel版本问题
里面的report是save后生成的,另外一个是模板

M_栗子 发表于 2023-1-4 14:09:33

Richard.Ma 发表于 2023-1-4 11:16
好的,看来破案了,目前在新版本的office365中,测试你的report文件,结果是正常的。

问题的原因就在于 ...

您看这个为什么保存之后变小了呢,这个在demo里面也有,您尝试跑一下看看,按说我是打开下面的模板,然后保存的,怎么会变小呢?

Richard.Ma 发表于 2023-1-4 16:52:48

spread.NET没有办法保证导入xlsx再导出后其中的存储的内容完全不变的(不是说最终显示的效果)
包括任何excel外的工具或者控件(wps或者poi)也是没有办法保证的。原因是大家虽然都是按照openxml协议来对xlsx做支持的,但是仍有很多东西并不是通用的。

excel支持的一些东西,spread.net可能并不会做支持,比如宏.或者office中的其他关联的功能

具体到这个文件,你可以自己对比的。xlsx本身其实就是一个压缩包,你通过7zip就能打开来对比其中的内容

下面是我通过一个文件对比工具的对比截图,可以看到原来的文件中有很多关于printerSettings的bin文件,这个对于excel外的软件或者控件来说,显然是无法读取的。加载时自然也不会去读取,所以spread.net另存后体积会小很多






页: [1]
查看完整版本: [14.45.20201.0][winform saveexcel过程中对公式的处理]