使用 npoi 操作excel ”npoi“可從“http://www.codeplex.com/npoi”下載

來源:互聯網
上載者:User

     之前操作excel的時候,用過vba;在.net直接操作過儲存格;用過oledb的方式操作。今天晚上發現了 npoi這個開源的類庫,先從別人那拿一份簡介:http://www.cnblogs.com/bestchen_1/articles/1700664.html。

 

    我簡單寫了幾行C#代碼測試一下:

 

   FileStream fs = new FileStream(@"C:/Documents and Settings/Administrator/案頭/test_data.xls", FileMode.OpenOrCreate);</p><p> HSSFWorkbook hssfworkbook = new HSSFWorkbook(fs, false);<br /> HSSFSheet sheet1 = hssfworkbook.GetSheet("blank");<br /> sheet1.CreateRow(0).CreateCell(0).SetCellValue("This is a Sample");<br /> int x=1;<br /> for (int i = 1; i <= 15; i++)<br /> {<br /> HSSFRow row=sheet1.CreateRow(i);<br /> for (int j = 0; j < 15; j++)<br /> {<br /> row.CreateCell(j).SetCellValue(x++);<br /> }<br /> }<br /> fs.Close();<br /> Console.WriteLine("處理完成.........");<br /> Console.ReadLine();

  
代碼執行了,但沒有起作用。今兒就到這吧,明天結blog,明兒五點半就得起床....

 

   
接著昨天的繼續寫,代碼改成如下:

   Stopwatch sw = new Stopwatch();<br /> sw.Start();<br /> FileStream fs = new FileStream(@"C:/Documents and Settings/Administrator/案頭/test_data.xls", FileMode.OpenOrCreate);<br /> HSSFWorkbook hssfworkbook = new HSSFWorkbook(fs, false);<br /> HSSFSheet sheet1 = hssfworkbook.GetSheet("blank");<br /> sheet1.CreateRow(0).CreateCell(0).SetCellValue("This is a Sample");<br /> int x = 1;<br /> for (int i = 1; i <=65535; i++)<br /> {<br /> HSSFRow row = sheet1.CreateRow(i);<br /> for (int j = 0; j < 15; j++)<br /> {<br /> row.CreateCell(j).SetCellValue(x++);<br /> }<br /> }<br /> MemoryStream file = new MemoryStream();<br /> hssfworkbook.Write(file);<br /> fs.Close();<br /> FileStream fStream = new FileStream(@"C:/Documents and Settings/Administrator/案頭/test_data.xls", FileMode.OpenOrCreate);<br /> fStream.Write(file.GetBuffer(), 0, file.GetBuffer().Length);<br /> fStream.Close();<br /> sw.Stop();<br /> Console.WriteLine("處理完成.........");<br /> Console.WriteLine("編輯65535條記錄用時:" + sw.Elapsed.ToString());<br /> Console.ReadLine();

 

      我做了簡要的測試,在excel2003裡插入65535行記錄大約耗時42秒,我個人認為效能蠻好的,匯出資料的代碼到蠻好上手的,但個人覺得編輯excel的時候不是很好使(現成的方法比較少),總體還是比較喜歡這個東東的,期待著它繼續發展完善。

 

     2010-06-07續寫:

     對於 HSSFSheet sheet1 = hssfworkbook.GetSheet("blank");獲得到的一張sheet表如果是空表的話,則sheet1.LastRowNum為零,即使sheet1.getRow(0)的返回結果也是null,這點和我們看到的excel肯能不是很對應,需要進行

HSSFRow row = sheet1.CreateRow(index);
row.CreateCell(j).SetCellValue(“value”);

建立了相應的儲存格之後便可以操作了。

 

 


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.