国产探花免费观看_亚洲丰满少妇自慰呻吟_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
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泾阳县| 衡山县| 南宁市| 华池县| 松滋市| 马鞍山市| 金寨县| 沈丘县| 焉耆| 兴业县| 拉萨市| 清新县| 乾安县| 平舆县| 田林县| 桐城市| 太和县| 温州市| 惠州市| 济南市| 林口县| 白城市| 徐州市| 凌云县| 临潭县| 荥经县| 东山县| 潞西市| 含山县| 罗江县| 阿鲁科尔沁旗| 新平| 沅江市| 名山县| 长海县| 江阴市| 宣汉县| 台安县| 四会市| 贵南县| 金寨县|