zoukankan      html  css  js  c++  java
  • 关于 NPOI 导出的 Excel 出现“部分内容有问题” 的解决方法

    近期发现使用 NPOI 导出的 Excel 文件,有部分用户反映在打开时报错,测试了一下,发现在低版本的 Office 中(2003版,配合2007格式兼容包)打开正常,但在高版本 Office 中,会报以下错误:

    发现“XXX.xlsx”中的部分内容有问题。是否让我们尽量尝试恢复?如果您信任此工作簿的源,请单击“是”。

    点击 “否” 就不打开文件了,点击 “是” 之后可以打开文件,出现以下提示:

    通过修复或删除不可读取的内容,Excel 已能够打开该文件。
    ...
    Excel 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃。

    同一个文件用WPS打开则正常,但我们不可能要求用户都用WPS,这不现实。

    上网搜了一下,很多方案都试了也不行。

    最后经过研究发现,在获得 workbook.Write(ms) 生成的 MemoryStream 后,使用了 ms.GetBuffer() 返回文件内容,导致生成的 Excel 文件结尾处有大量的 00(空字节),改为 ms.ToArray() 即可得到正常的文件了。

    另附:导出的 Excel 都被自动锁定,要在文件属性中点一下“解除锁定”才能打开,这个问题的解决方案:https://blog.csdn.net/maxsky/article/details/20467511

  • 相关阅读:
    x+=y与x=x+y有什么区别?
    Linux下带宽流量工具iftop实践
    使用pinyin4j实现汉字转拼音
    Spring整合Velocity模版引擎
    Json工具类库之Gson实战笔记
    腾讯移动分析 签名代码示例
    Docker搭建Portainer可视化界面
    maven 打包 spring boot 生成docker 镜像
    Mysql 为什么要选择 B+Tree
    idea 添加 注释 配置
  • 原文地址:https://www.cnblogs.com/rangeon/p/10646820.html
Copyright © 2011-2022 走看看