Ø  简介

其实该文章并没有什么技术含量,只是记录下个人心得。在以后有朋友遇到类似问题,可以借鉴下,或者遇到相同问题时的提供个参考方向。

也算我的一个经历吧,这个问题我花了足足一天多的时间才找到问题,解决问题。因为刚开始进公司,对项目不怎么熟,所以有点慢!话不多说,上正题:

1.   相关描述

1)   项目导出 Excel 还是采用比较原始的方式,对,就是我们大名鼎鼎的 Microsoft.Office.Interop.Excel.dll 程序集,使用包括以下对象:

Microsoft.Office.Interop.Excel.Application

Microsoft.Office.Interop.Excel.Workbook

Microsoft.Office.Interop.Excel.Worksheet

2)   问题描述

可以正常导出,但是打开 Excel 文件时:

1.   有些单元格有数据,但是显示为空白

2.   会显示“受保护的视图”的警告

2.   解决办法

1)   首先说第一个问题

进过一番调试,发现是因为该单元格的数据(也就是字符串)的字节长度大于 255 bytes 时,就会出现显示空白的情况。如果小于 255 个字节,则正常显示。

2)   然后,忽略第一个问题,尝试解决第二个问题“受保护的视图”的警告

1.   经过,在网上找了一些导出 Excel 的代码,各种尝试发现,原来网上的代码导出并不会出现以上问题;

2.   好,问题可以断定,是我们导出的代码出问题了,再经过一番“代码分段执行法”(我找问题的一个方法)或者“代码替换执行”,最后将问题指向了下面这行代码:

workbook.SaveAs(filePath, Microsoft.Office.Interop.Excel.XlFileFormat.xlExcel7, m_objOpt, m_objOpt, m_objOpt, m_objOpt, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt);

这段代码没什么问题,主要是标红的这个参数。没错,就是这个参数导致了整个问题。

3.   以上这个参数表示导出为"Micorosoft   Excel   5.0/95   工作薄(*.xls)" 格式的 Excel. 什么意思?其实我也不知道,应该是一个 Excel 内部版本号?

参考:https://www.cnblogs.com/mingjing/p/5955725.html

4.   该参数是一个枚举,后来了解到指定为 XlFileFormat.xlWorkbookNorma 即可,再次运行程序,导出 Excle, OK,没有了警告,长字符也正常显示了。

3.   友情提示

xls 表示适用于 Excel97-2003 的版本;

xlsx 则表示当前最新的工作簿后缀名,适用于 Excel2007及以上版本。

如果导出的 Excel 文件,在打开时报类似“格式不一致”的问题,则可以判断是否是因为文件后缀(如:*.xls)与导出时,代码中指定的格式是否一致?不一致时,就会引发该问题。

最新文章

  1. Shiro-HelloWord
  2. 处理xml c#
  3. Centos7上安装dnf-plugins-core
  4. c++ 中string用c输入输出
  5. 一款经典的jQuery slidizle 幻灯片
  6. c/c++运算顺序问题
  7. 使用socket.io开发简单群聊功能
  8. JS的十大经典算法排序
  9. JavaScript正则验证邮箱
  10. Tomcat-java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory
  11. 测试stopwatch频率
  12. Java创建、重命名、删除文件和文件夹(转)
  13. 3-Dom
  14. C++风格写判断某年某月某日是一年的第几天
  15. (四十八)Quartz2D引擎进阶
  16. obj-c编程11:内存管理和ARC(自动引用计数)
  17. 为什么浏览器User Agent中都有个mozilla
  18. 直接借鉴的 ids拼接
  19. APP快速搭建框架
  20. Redis基本数据类型介绍笔记

热门文章

  1. python3报'ascii' codec can't encode characters in position 0-7: ordinal not in range(128)解决方法
  2. RabbitMQ的交换器Exchange之direct(发布与订阅 完全匹配)
  3. JavaScript初探 四 (程序结构)
  4. Xamarin.Forms 移动开发
  5. mssql sqlserver 使用SSMS运行sql脚本的六种方法分享
  6. Python—五大基本语句
  7. 5-7 可视化库Seaborn-热度图绘制
  8. 爬虫---爬取b站小视频
  9. C++ 基础语法 快速复习笔记(1)
  10. 2019徐州网络赛 H.function