[C#] 透過NPOI 讀取 Excel *.xls 檔案中的值

2014-05-22

上一篇,我們介紹產出跨欄的Excel 檔案,這一篇我們來說一下,如何透過NPOI 讀取Excel 中的值

首先介紹一下今天的xls 檔案,長這副德性

圖片 007

其中就如圖說的,有兩筆資料,但是我們要如何把這Excel 透過 NPOI 讀取出來呢?

直接看Code :


HSSFWorkbook workbook;
//讀取專案內中的sample.xls 的excel 檔案
using (FileStream file = new FileStream(AppDomain.CurrentDomain.BaseDirectory + "sample.xls", FileMode.Open, FileAccess.Read))
{
    workbook = new HSSFWorkbook(file);
}
 
//讀取Sheet1 工作表
var  sheet = workbook.GetSheet("Sheet1");
 
 
for (int row = 0; row <= sheet.LastRowNum; row++)
{
    if (sheet.GetRow(row) != null) //null is when the row only contains empty cells 
    {
        foreach (var c in sheet.GetRow(row).Cells)
        {
            //如果是數字型 就要取 NumericCellValue  這屬性的值
            if(c.CellType==CellType.NUMERIC)
                Response.Write(c.NumericCellValue.ToString("#"));
 
            //如果是字串型 就要取 StringCellValue  這屬性的值
            if(c.CellType==CellType.STRING)
                Response.Write(c.StringCellValue);
 
            //每個欄中間加上逗點
            Response.Write(",");
        }
        //每一行補上換行
        Response.Write("<br />");
    }
}

其中比較重要的部分,就是你得判斷,每一個CELL的 CellType 如果是數字就要讀數字的Property,如果是字串就是要讀取字串的 Property

結果:
圖片 006

範例下載:






當麻許的超技八 2014 | Donma Hsu Design.