C#中对EXCEL保存的SAVEAS方法说明
这两天做的导出报表的项目中,因为出现了一些问题所以对于excel一些方法参数有了一些认识,
首先:开始生成的是.xls格式的excel文件,但是某个sheet发现我本来dataTable的数据有8万多行,但是sheet显示只有65536行,查阅后发现Excel2007以下版本支持的sheet的最大行数就是65536。
Excel2003版最大行数是65536行。Excel2007开始的版本最大行数是1048576行。
Excel2003的最大列数是256列,2007以上版本是16384列。

有的小伙伴建议:创建一个新的sheet.
然后在循环导数据里加一个计数器,到65535就创建一个sheet,创建后置计数器为0.继续导入.
参见:http://bbs.csdn.net/topics/250005454
但是更简便的方案:如果本机服务器安装office系统是2007以上,如office2013,则完全可以生成支持最大行数1,048,576的2007版本excel,后缀名为.xlsx
以下是经验总结:
xbook.SaveAs(strFile, Type.Missing, "", "", Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange, 1, false, Type.Missing, Type.Missing, Type.Missing);
代码;
Application xApp = new Application();
xApp.DisplayAlerts = false;
xApp.Visible = true;//让后台执行设置为不可见,为true的话会打开excel看到数据在往里面写
Workbook xbook;
//xbook = xApp.Workbooks.Open(strFile, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
xbook = xApp.Workbooks.Add(Missing.Value);//添加一个工作薄采用缺省参数,会自动添加一个默认模板的工作表Sheet1 //xApp.DisplayAlerts = false; //如果想删除某个sheet页,首先要将此项设为fasle,,因工作薄内至少含有一张可视工作表,现不可删除
//(xApp.ActiveWorkbook.Sheets[1] as Worksheet).Delete(); string FileDate;
IT_Check_Report.Create(ref xbook, ref xApp, out FileDate);
string strFile = strFilePath + "IT_Check_Report_Sheet" + FileDate + ".xlsx"; //int FormatNum;
//string Version = xApp.Version;//获取excel版本
//if (Convert.ToDouble(Version) < 12)
//{
// FormatNum = -4243;//excel97-2003
//}
//else
//{
// FormatNum = 56;//excel2007 or later
//}
//xbook.SaveAs(strFile, FormatNum, "", "", Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange, 1, false, Type.Missing, Type.Missing, Type.Missing);
//xbook.SaveAs(strFile, XlFileFormat.xlWorkbookNormal, "", "", Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange, 1, false, Type.Missing, Type.Missing, Type.Missing);
//以下第二个参数是使用Type.Missing,即输出系统中带有的excel支持的格式
xbook.SaveAs(strFile, Type.Missing, "", "", Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange, , false, Type.Missing, Type.Missing, Type.Missing);
//xbook.Save();
xbook.Close(false, Missing.Value, Missing.Value);
xbook = null; xApp.Quit();
xApp = null;
GC.Collect();
SAVEAS方法 : 第二个参数使用xlWorkbookNormal则输出的是xls格式,如果使用的是missing则输出系统中带有的EXCEL支持的格式
即:如果使用xlWorkbookNormal参数,但是后缀名是.xlsx,则不能打开文件,

详解:
expression.SaveAs(FileName,FileFormat,Password,WriteResPassword,ReadOnlyRecommended,CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)
expression 必需。该表达式返回上述对象中一个对象。
Filename Variant类型,可选。该字符串表示要保存的文件名。可包含完整路径。如果不指定路径,Microsoft Exce 将文件保存到当前文件夹中。
FileFormat Variant 类型,可选。保存文件时使用的文件格式。要得到有效选项的列表,请参阅 FileFormat 属性。对于已有文件,其默认格式是上次指定的文件格式;对于新文件,默认格式为当前使用的 Excel 版本格式。
Password Variant 类型,可选。它是一个区分大小写的字符串(最长不超过15个字符),用于指定文件的保护密码。
WriteResPassword Variant类型,可选。该字符串表示文件的写保护密码。如果文件保存时带有密码,但打开文件时不输入密码,则该文件以只读方式打开。
ReadOnlyRecommended Variant类型,可选。如果该值为True,则在打开文件时显示一条信息,提示该文件以只读方式打开。
CreateBackup Variant类型,可选。如果该值为True,则创建备份文件。
AccessMode XlSaveAsAccessMode类型,可选。
XlSaveAsAccessMode 可为以下 XlSaveAsAccessMode 常量之一。
xlExclusive (不含方式)
xlNoChange default (不更改访问方式)
xlShared (共享列表)
如果省略此参数,则不会更改访问方式。如果在没有改变文件名的情况下保存共享列表,则可以忽略参数。若要改变访问方式,请使用 ExclusiveAccess 方法。
ConflictResolution XlSaveConflictResolution 类型,可选。
XlSaveConflictResolution 可为以下 XlSaveConflictResolution 常量之一。
xlUserResolution (显示冲突解决方案对话框)
xlLocalSessionChanges (自动接受本地用户的修改)
xlOtherSessionChanges (接受除本地用户之外的其他用户的更改)
如果忽略本参数,则显示冲突处理对话框。
AddToMru Variant 类型,可选。如果该值为True,则将该工作簿添加到最近使用的文件列表中。默认值为False。
TextCodePage Variant类型,可选。不在美国英语版的Microsoft Excel中使用。
TextVisualLayout Variant类型,可选。不在美国英语版的Microsoft Excel中使用。
Local Variant 类型,可选。如果该值为True,则以Microsoft
Excel(包括控制面板设置)的语言保存文件。如果该值为False(默认值),则以Visual Basic for Applications
(VBA) 的语言保存文件,其中 Visual Basic for Applications(VBA)为典型安装的美国英语版本,除非VBA
项目中的Workbooks.Open来自旧的国际化的XL5/95 VBA项目。
C#中对EXCEL保存的SAVEAS方法说明的更多相关文章
- selenium IDE中log的保存与查看方法
下载selenium IDE的log保存插件为File Logging(selenium IDE),下载安装方式如下: (1)打开firefox浏览器----点击右上角----附加组件---插件--- ...
- asp.net中导出Excel的方法
一.asp.net中导出Excel的方法: 本文转载 在asp.net中导出Excel有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上:一种是将文件直接将文件输出 ...
- 对.NET中导出数据到EXCEL的几种方法探讨
最近在做一个报表系统的时候,需要把DATASET中的数据导到EXCEL当中,于是在网上找了一遍,发现了好几种方法,本来以为应该差不多,但后来经过一一试用后,发现在性能上真的差别很大,现在就介绍一下,同 ...
- 浅谈Excel开发:九 Excel 开发中遇到的常见问题及解决方法
Excel开发过程中有时候会遇到各种奇怪的问题,下面就列出一些本人在开发中遇到的一些比较典型的问题,并给出了解决方法,希望对大家有所帮助. 一 插件调试不了以及错误导致崩溃的问题 在开发机器上,有时可 ...
- asp.net中导出excel数据的方法汇总
1.由dataset生成 代码如下 复制代码 public void CreateExcel(DataSet ds,string typeid,string FileName) { Htt ...
- Python中xlrd和xlwt模块使用方法 (python对excel文件的操作)
本文主要介绍可操作excel文件的xlrd.xlwt模块.其中xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. 安装xlrd和xlwt模块 xlrd和xlwt模块不是 ...
- ASP.net中导出Excel的简单方法介绍
下面介绍一种ASP.net中导出Excel的简单方法 先上代码:前台代码如下(这是自己项目里面写的一点代码先贴出来吧) <div id="export" runat=&quo ...
- .NET客户端下载SQL Server数据库中文件流保存的大电子文件方法(不会报内存溢出异常)
.NET客户端下载SQL Server数据库中文件流保存的大电子文件方法(不会报内存溢出异常) 前段时间项目使用一次性读去SQL Server中保存的电子文件的文件流然后返回给客户端保存下载电子文件, ...
- JavaScript在浏览器中把文本保存为文件的方法
JavaScript在浏览器中把文本保存为文件的方法 经过测试第二种方法可以保存更多的文本不至于卡死 var saveTextAsFile1 = function (text, fileName, s ...
随机推荐
- Win10《芒果TV》商店版双十一独家大礼,每日前100名用户免费领取7天VIP
为答谢大家对Win10<芒果TV>商店版一年以来一如既往的支持,2016年11月1日-11月30日期间,每天登录<芒果TV>UWP版(最新版本v3.1.3)的前100位用户可领 ...
- Android adb socket 连接失败的问题
pc客户端通过adb forward tcp 与android app通信 场景:pc启动,能正常建立连接,当断开连接再次连接,偶现pc客户端无法与forward 的端口建立 socket连接,连接请 ...
- 【Windows10 IoT开发系列】“Hello,World!”指导
原文:[Windows10 IoT开发系列]"Hello,World!"指导 本文主要是介绍使用C#来开发一个可以运行在Raspberry Pi2上的一个基本项目. 1.在启动V ...
- windows 2003 无法安装 .net4.0 windows服务
错误: InstallUtil.InstallLog文件中的错误信息: 正在运行事务处理安装. 正在开始安装的“安装”阶段. 查看日志文件的内容以获得 D:\Debug\DataChang.e ...
- Webpack Waringing Critical dependencies
报错信息如下: 出错原因先上图: 未注释部分使用了require的同时使用了es6的语法. 官方解释如下: 解决方法就是放开代码中的注释部分,不要使用es6语法
- 如何解析DELPHI XE5服务器返回的JSON数据(翻译)及中文乱码
<span style="font-size:14px;">一直想找如何解析JSON数据的说,今天终于找到有人发帖子了.之前有人说用superobject,Tlkjso ...
- 桌面程序阻止Windows关机(使用Message.Result取得DefWindowProc API函数的返回值,非常重要)
Windows Client 客户端在关机,不外乎两种情况: 1. 没有处理 Windows 关机消息: 2.处理了关机消息,但是超时了: 上面这两种情况,都会让Windows 关不了机.在现实生活中 ...
- 把滚动箱的样式做如下调整来模拟 TPanel
程序中用 TPanel 做了容器, 需要给它一个背景图片; 发现这竟是个难题! 发现我经常使用的滚动箱控件 TScrollBox, 是一个很好的替代品. 本例需要先添加两个图片资源, 添加方法可以参考 ...
- Memcached在Linux系统下的安装和PHP开启 Memcached的 扩展 超级解决方案
[项目背景]:阿里云ECS服务器,Linux(centos7.2 64位),环境部署使用的是阿里云一键安装包(LAMP)等 [项目需求]:linux安装memcached 和php开启Memcache ...
- Hadoop起步之图解SSH、免密登录原理和实现
1. 前言 emmm….最近学习大数据,需要搭建Hadoop框架,当弄好linux系统之后,第一件事就是SSH免密登录的设置.对于SSH,我觉得使用过linux系统的程序员应该并不陌生.可是吧,用起来 ...