NPOI用Excel模板導出Excel文件(一)基本操作


最近接觸了用c#導出Excel文件的一些操作。

使用NPOI的優勢是,開源,操作靈活,不需要下載OFFICE軟件,速度快,不過聽說,數據量過大的時候,不是很好用,大概那都是幾兆的時候吧,不過目前用於我的需要,基本是夠了。

關於NPOI的基本操作:http://blog.csdn.net/pan_junbiao/article/details/39717443

使用Npoi需要using幾個命名空間:

1     using NPOI;
2     using NPOI.HSSF.UserModel;
3     using NPOI.XSSF.UserModel;
4     using NPOI.XSSF.Util;
5     using NPOI.SS.UserModel;
6     using NPOI.SS.Util;

首先打開文件,需要文件路徑,操作模式以及操作權限。

這里打開excel文件有兩種對應格式,HSSFWorkbook和XSSFWorkbook,都是繼承的IWorkbook。

GetSheet()函數,獲取sheet名的方式,獲取sheet來操作。

1 FileStream file = new FileStream(FileSer, FileMode.Open, FileAccess.Read);//讀入excel模板
2 //HSSF適用2007以前的版本,XSSF適用2007版本及其以上的。
3 XSSFWorkbook UnionBook = new XSSFWorkbook(file);
4 XSSFSheet unionSheet = null;
5 unionSheet = (XSSFSheet)UnionBook.GetSheet("sheet1");

NPOI操作excel的方式,有兩個特點:

1.它的操作,都是基於Excel的最小單文單元格來的,而且要先獲取行getrow(int rownum),然后再獲取該行的單元格,getcell(int cellnum)。

2.它的每次獲取時,對行或單元格的操作,基於整個sheet,都是從0開始的。也就是要獲取第一行的話,是getrow(0),獲取第一個單元格的話,是getcell(0)。

按理說,用了XSSFSheet,應該用XSSFRow和XSSFCell的,不過GetRow方法返回的是IRow,所以只能用IRow定義了,ICell的情況也是一樣的。

1 IRow unionRow = unionSheet.GetRow(0);
2 ICell unionCell = unionRow.GetCell(2);
3 unionCell.SetCellValue("第一個值");//設值

下面的函數,用於合並單元格的。

1 //CellRangeAddress四個參數為:起始行,結束行,起始列,結束列
2 unionSheet.AddMergedRegion(new CellRangeAddress(0, 0, 2, 6));

以上就是基本的操作,在下一節,我會針對我所遇到的問題,寫出我的解決方案來的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM