因為1.2.5不支援Office 2007的格式,所以去載了最新的 2.0版 

提供了NPOI.SS這個介面讓我們去使用讀取2007&2003的媒介。

用法如下

using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using NPOI.HSSF.UserModel;
 
public class ExcelExport
{
    /// <summary>
    /// 讀取Excel Sheet Name
    /// </summary>
    /// <param name="DataSource"></param>
    /// <returns></returns>
    public List<string> ReadSheetName(string DataSource)
    {
        try
        {
            List<string> result = new List<string>();
            using (FileStream fs = new FileStream(DataSource, FileMode.Open))
            {
                IWorkbook wb;
                if (DataSource.Contains(".xlsx"))
                    wb = new XSSFWorkbook(fs);
                else
                    wb = new HSSFWorkbook(fs);
                var sheets = new List<ISheet>();
                for (int i = 0; i < wb.NumberOfSheets; i++)
                    sheets.Add(wb.GetSheetAt(i));
 
                foreach (var sheet in sheets)
                {
                    result.Add(sheet.SheetName);
                }
            }
            return result;
        }
        catch (Exception)
        {
            return new List<string>();
        }
    }
 
}

根據使用者載入的檔案檔名決定初始化的物件是哪個,即可。

至於讀取Table的部分請參考黑暗大的文章進行改寫就可以了。

特別要注意一下,如果Excel裡面有格式是日期要特別處理,不然他預設抓字串出來的時間會變成12/11/13(2012/11/13)如不是在塞進Table處理就須在Table使用時處理

arrow
arrow
    全站熱搜

    balance 發表在 痞客邦 留言(0) 人氣()