解决方案:
1.先确保原来的模版文件打开是正常的,没有提示要恢复
2.用Office打开这个模版文件,另存为一个文件。用这个文件来作为模版使用。
问题描述:
使用C# NPOI 操作Excel模版 (模版用office打开是正常的),写入数据 , 导出的文件打开时提示是否尝试恢复 ,点击 “是” 后 ,发现Excel内的样式不见了。
在网上找了下关于这方面的问题,尝试之后(NPOI降版本,代码修改ToArray()),并不能解决问题。
后面翻到关于Excel的有XML错误的问题 (把文件改成.zip,用解压缩的方式,可以看到xml文件,然后修复有节点没有配对的方法)。
当然,写代码肯定不会这样干,不过这给了我一个提示,那就是文件本身有问题,而不是代码问题。
补充一下,WPS打开是正常的,用微软的Office才会提示问题。当然,这个要考虑具体环境,刚好这边都是用微软Office的,所以还是得解决文件问题。
换个角度一想,既然使用这个文件模版生成的文件有问题,那把这个文件模版换掉就好了吧?那怎么换呢?
我想了下,既然每次都要生成的文件都提示要恢复,如果我把文件模版修复正常,那生成的文件应该都会正常吧?
所以,方向就变成修复文件模版了,我用最简单的方式,打开原来的文件模版,另存为一个新的文件,然后用这个新的文件作为模版,再次使用代码运行,生成的文件都没有问题了。
后面同事告诉我,原来这是WPS做的模版,应该是因为这个,搞得NPOI操作文件后产生问题吧。
标签:文件,C#,模版,XXX,Excel,NPOI,问题,打开 From: https://www.cnblogs.com/WikiChen/p/17921704.html