国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

使用.NET生成Excel文件

2024-07-10 12:58:43
字體:
來源:轉載
供稿:網友
  
我在工作中遇到了一些生成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
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 梅州市| 塘沽区| 巴林右旗| 塔城市| 营口市| 中牟县| 九江市| 佛学| 和政县| 石嘴山市| 尚义县| 马龙县| 紫金县| 宁德市| 客服| 四会市| 嵊泗县| 合作市| 马关县| 金门县| 佛学| 亳州市| 华亭县| 山东省| 汾阳市| 吉水县| 临桂县| 龙陵县| 株洲县| 石棉县| 来凤县| 古丈县| 巩义市| 裕民县| 万载县| 阳朔县| 仙桃市| 枝江市| 榆中县| 徐州市| 连城县|