用微软提供的

Microsoft.Office.Interop.Excel.dll可以很轻松的实现各种excel操作,但是前提是电脑必须安装excel软件。

因此,在不安装excel软件的情况下,实现对excel文件的操作,只能另选它法。我用的是npoi开源代码。

但是有个问题,用npoi打开excel文件再保存,即使不进行写操作,当双击excel文件的时候出错:文件格式已被损坏。

找了很多资料都不能解决我的问题。

解决这个问题有两点:

1.版本要对。注意npoi对excel2003和excel2007以上的文件操作的类和函数不同(2003是HSSFWorkbook,2007以上是XSSFWorkbook);

2.npoi读取和保存excel文件的方式要对(基本读取操作都可以,保存的时候要考究一下)

读取示例如下:

private IWorkbook wk;

using (FileStream fs = new FileStream(m_strNPOIFilePath, FileMode.Open, FileAccess.Read))
            {
                wk = new XSSFWorkbook(fs);//获取所有sheet页:wk.NumberOfSheets
            }

保存操作如下:(至少,我的只能这样保存,另存为)

FileStream sw = File.Create(m_strFileName);
            wk.Write(sw);
            sw.Close();

npoi读写excel导致excel文件格式损坏相关推荐

  1. C#读写导入导出Excel表格模板(NPOI)

    NPOI介绍: NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作. NPOI是一个开源的C#读写Excel.WORD ...

  2. NPOI读写Excel

    1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 2.NPOI是POI的C#版本,NPOI的行和列的index都是从0开始 ...

  3. Maven打包导致Excel资源文件损坏问题

    正解,忽略某些后缀文件: <build><plugins><plugin><groupId>org.apache.maven.plugins</g ...

  4. 使用NPOI导入导出标准Excel

    使用NPOI导入导出标准Excel 转自http://www.cnblogs.com/lwme/archive/2011/11/18/npoi_excel_import_export.html 试过很 ...

  5. 使用NPOI导入导出标准Excel(源码)

    http://www.cnblogs.com/lwme/archive/2011/11/18/npoi_excel_import_export.html 尝试过很多Excel导入导出方法,都不太理想, ...

  6. C# NPOI 和 CSV 导出Excel 功能实现

    1.引言 程序中经常会使用到的一个功能就是导出 Excel ,而导出 Excel 的实现主要有两种方法,一种是 CSV 导出,一种是 NPOI 导出,而从效果上来说,NPOI 更能够符合Excel 导 ...

  7. 如何解决Excel文档已损坏呢?

    如何解决Excel文档已损坏呢?Excel文档可弹出"文件已损坏且无法打开"的问题提示是由于多种原因导致的: 1.常见原因: 一般出现在新的Excel版本创建新文档时; 也可能是由 ...

  8. java文件无法导出excel文件,【excel表格文件格式无效】java导出excel,excel打不开,报文件格式无效,怎么解决!...

    excel提示 打开的文件.xls的格式与文件扩展名不一致怎么办 如果打开文件的格式与文件的扩展名不一致,只要能够打开就不用去管他. java导出excel,excel打不开,报文件格式无效,怎么解决 ...

  9. POI导出excel出现excel无法打开文件“xxx.xlsx”,因为文件格式或文件扩展名无效的问题

    POI导出excel出现excel无法打开文件"xxx.xlsx",因为文件格式或文件扩展名无效的问题 HSSFWorkbook和XSSFWorkbook混用会出现该问题 参考 h ...

最新文章

  1. jquery 获取和设置 select下拉框的值(转手册)
  2. curl 命令行下载工具使用方法小结
  3. 《把时间当作朋友》读书笔记(十四)--积累(二)
  4. libsvm 使用介绍
  5. 【Leetcode】62. 不同路径
  6. windows.h与winsock2.h的包含顺序
  7. 转:java网络编程-HTTP编程
  8. 面试题系列(8):什么叫优雅降级和渐进增强?
  9. 因为计算机丢失user32.dll,user32dll丢失程序打不开|Win7系统开机提示Uxtheme.dll丢失如何解决?...
  10. webstorm 配合IIS使用
  11. 【技术分享】H5小游戏开发入门指南
  12. 全国DNS服务器IP地址【电信、网通、铁通】
  13. bootstrap-datetimepicker.js与IE8的兼容问题
  14. Oracle与MySQL的SQL语句区别
  15. oracle去空格和换行,ORACLE 中去回车、空格、TAB的函数
  16. 南京大学计算机 国家重点实验室,南京大学
  17. 关于实习4个月的一些总结
  18. 300题 第七讲 零点定理与微分不等式
  19. 推荐一款护眼的软件——f.lux。它可以随着时间,自己调节色温
  20. 襄阳教育云平台实名认证_襄阳教育云平台学生空间官网-优教信使襄阳教育云平台下载V4.1.6-西西软件下载...

热门文章

  1. M5311接入onenet(LwM2M方式)
  2. 使用sortable的踩坑记录
  3. Lesson Forty-Seven A cup of coffee. 一杯咖啡.
  4. 【360安全卫士显示界面异常解决】
  5. ubuntu14.04 adb devices无法识别手机
  6. 数学建模系列---熵权法
  7. 【问题解决】应用程序无法正常启动0xc000007b的解决方案(非DX修复)
  8. 一闪一闪亮晶晶,我有一颗小星星
  9. 2017 php recaptcha,PHP形成谷歌reCAPTCHA
  10. 系统心跳测试软件,心跳检测app