使用.NET生成Excel文件

excel|生成excel

  
我在工作中遇到了一些生成Excel的问题。
在网络上查找了很多方法,各有优劣。
最后选择了使用OFFICE 的Excel 自动化服务来生成Excel文件的办法,也就是使用Excel提供的Com对象。
具体的代码如下:
public static void CreateExcel()
  {
   for(int i = 0 ; i<1 ; i++)
   {
    string staFile = "D:\\test\\x";
    System.Reflection.Missing miss = System.Reflection.Missing.Value;
    Excel.ApplicationClass m_objExcel = new Excel.ApplicationClass();
    m_objExcel.Visible = false;
    Excel.Workbooks m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks;
    Excel.Workbook m_objBook = (Excel.Workbook)(m_objBooks.Add(miss));
    Excel.Worksheet m_objSheet = (Excel.Worksheet)m_objBook.ActiveSheet;
    
    //向Excel文件中写入数据
    Excel.Range er = m_objSheet.get_Range((object)"A1",System.Reflection.Missing.Value);
    er.Value2 = "dfadfa";
    m_objBook.SaveAs(staFile+i.ToString()+".xls", miss, miss, miss, miss,miss, Excel.XlSaveAsAccessMode.xlNoChange, miss,miss,miss, miss, miss);
    
    m_objBook.Close(false, miss, miss);
    m_objBooks.Close();
    m_objExcel.Quit();
    System.Runtime.InteropServices.Marshal.ReleaseComObject(er);
    System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objSheet);
    System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objBook);
    System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objBooks);
    System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objExcel);
    GC.Collect();
   }
  }
在网上也看到过类似的办法,但是他们都存在着一个使用完Excel后无法释放的问题;在我经过研究后发现在使用Com对象的时候一定要把每一个建立的实例对象都释放掉,也就是代码中红色的部分。
注:使用本代码要自己在工程中引用Excel组件。另:我只在OFFICE 2003下做了测试,确定对象可以释放。在其它系统下没有做相应测试,请大家自行研究。
软件环境:.NET Framework 1.1  VS.NET 2003 OFFICE2003 Windows2000 sp4
硬件环境:P4 2.4G  512M

时间: 2024-08-04 06:07:06

使用.NET生成Excel文件的相关文章

php,不用COM,生成excel文件

excel|生成excel 用php生成excel文件   <?header("Content-type:application/vnd.ms-excel");header("Content-Disposition:filename=test.xls");echo "test1\t";echo "test2\t\n";echo "test1\t";echo "test2\t\n";

用PHP生成excel文件到指定目录

  这篇文章主要介绍了用PHP生成excel文件到指定目录的相关资料,需要的朋友可以参考下 最近公司要生成报表,用PHP生成. header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=test_data.xls"); 我百度了下,貌似这个很快能够实现,但是这个文件却是生成在在浏览器下载的地方, 我想把生成的文件生成到指定的目录,这

python通过openpyxl生成Excel文件的方法

  本文实例讲述了python通过openpyxl生成Excel文件的方法.分享给大家供大家参考.具体如下: 使用前请先安装openpyxl: ? 1 easy_install openpyxl 通过这个模块可以很方便的导出数据到Excel ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 from op

php生成excel文件的简单方法

 生成excel文件,最简单的莫过于把数据库的数据导入到excel就行了,下面有个不错的示例,大家可以参考下 生成excel 当然使用的是 phpExcel这个类库了,可是它太麻烦了,对于只要简单生成来说有点不值得    什么叫简单,把数据库的数据导入到excel就行了, 这个就是简单了    下面看一段代码(代码来自网络)    注意要双引号的字符串   代码如下: <?php  header("Content-type:application/vnd.ms-excel"); 

java使用poi开源框架生成excel文件并对其进行加密登入用户名若为汉字则出现乱码

问题描述 java使用poi开源框架生成excel文件并对其进行加密登入用户名若为汉字则出现乱码 public static byte[] encryptExcel(byte[] bytes String password String userName) { byte[] enExcelBytes = null; try { // 创建一个工作薄 HSSFWorkbook workbook = new HSSFWorkbook(new ByteArrayInputStream(bytes));

客户服务器没有EXCEL我的.exe怎样在服务器端生成EXCEL文件

问题描述 客户服务器没有EXCEL我的.exe怎样在服务器端生成EXCEL文件 解决方案 解决方案二:各位大侠帮帮忙啊,小弟先谢谢了

java sql server jsp-JSP java SQL servlet实现页面表格生成Excel文件

问题描述 JSP java SQL servlet实现页面表格生成Excel文件 使用JSP java SQL server做了个小系统,现在想实将现通过查询功能生成的表,通过页面上的按钮触发,生成Excel文件.求大神指导! 解决方案 http://271788203.iteye.com/blog/491052

谢谢帮忙-如何实现数据抓取并生成Excel文件

问题描述 如何实现数据抓取并生成Excel文件 如何实现 网络数据抓取,那个需求分析如何去设计啊,要这么样才能达到在抓取数据时并进行筛选,并保存到本地的数据库中去 解决方案 这个要看你使用的什么语言,不同的语言有不同的做法 而Excel本身有标准的xls文件和Excel可以加载的xml和csv文件等,生成方法也不一样,难易程度却相差很大 解决方案二: 这个要看你使用的什么语言,不同的语言有不同的做法 而Excel本身有标准的xls文件和Excel可以加载的xml和csv文件等,生成方法也不一样,

php,不用COM,生成excel文件_php基础

用php生成excel文件   <?header("Content-type:application/vnd.ms-excel");header("Content-Disposition:filename=test.xls");echo "test1\t";echo "test2\t\n";echo "test1\t";echo "test2\t\n";echo "tes