NPOI讀取Excel

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.IO;
using NPOI.SS.UserModel;
using NPOI.HSSF.Util;
using NPOI.HSSF.UserModel;
using NPOI.XSSF.UserModel;

/// <summary>
///NPOI操作Excel,這個例子是針對Excel 2007. 
/// </summary>
public class ExcelHelper
{
    IWorkbook hssfworkbook;
    public DataTable ImportExcelFile(string filePath)
    {
        #region//初始化信息
        try
        {
            using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
            {
                hssfworkbook = new XSSFWorkbook(file);
            }
        }
        catch (Exception e)
        {
            throw e;
        }
        #endregion

        ISheet sheet = hssfworkbook.GetSheetAt(0);
        System.Collections.IEnumerator rows = sheet.GetRowEnumerator();

        DataTable dt = new DataTable();

        //一行最後一個方格的編號 即總的列數
        for (int j = 0; j < (sheet.GetRow(0).LastCellNum); j++)
        {
            dt.Columns.Add(Convert.ToChar(((int)'A') + j).ToString());
        }

        while (rows.MoveNext())
        {
            IRow row = (XSSFRow)rows.Current;
            DataRow dr = dt.NewRow();

            for (int i = 0; i < row.LastCellNum; i++)
            {
                ICell cell = row.GetCell(i);


                if (cell == null)
                {
                    dr[i] = null;
                }
                else
                {
                    dr[i] = cell.ToString();
                }
            }
            dt.Rows.Add(dr);
        }
        return dt;
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章