2013年4月2日 星期二

古老的Excel元件 NPOI 2.0.1.0



NPOI 2.0.1.0

純粹要 讀取xlsx 和 xls

加入參考
NPOI.dll
NPOI.OOXML.dll
NPOI.OpenXml4Net.dll
NPOI.OpenXmlFormats.dll
ICSharpCode.SharpZipLib.dll


如果只要讀xls,那只需加NPOI.dll 就好了
如果要讀xlsx,那通通都要加進去



NPOI 函式庫檔案有七個,分別是:

NPOI.DLL:NPOI 核心函式庫。
NPOI.DDF.DLL:NPOI 繪圖區讀寫函式庫。
NPOI.HPSF.DLL:NPOI 文件摘要資訊讀寫函式庫。
NPOI.HSSF.DLL:NPOI Excel BIFF 檔案讀寫函式庫。
NPOI.Util.DLL:NPOI 工具函式庫。
NPOI.POIFS.DLL:NPOI OLE 格式存取函式庫。
ICSharpCode.SharpZipLib.DLL:檔案壓縮函式庫。




code:

using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;




    private DataSet mdsExcel;

    public void clsNPOI(int iColumn, string sFilePath, string sSheetName, ref TextBox textBox1)
    {
        try
        {
            mdsExcel = new DataSet("XLData");
            mdsExcel = new DataSet();
            mdsExcel.Tables.Add("table");

            IWorkbook iworkbook;
            using (FileStream file = new FileStream(sFilePath, FileMode.Open, FileAccess.Read))
            {
                iworkbook = NPOI.SS.UserModel.WorkbookFactory.Create(file);
            }

            ISheet isheet = (ISheet)iworkbook.GetSheet(sSheetName);


            for (int c = 0; c < iColumn; c++)
            {

                mdsExcel.Tables[0].Columns.Add("");
            }

            for (int row = 0; row <= isheet.LastRowNum; row++)
            {
                string[] saryStr = new string[iColumn];
                for (int i = 0; i < iColumn; i++)
                {
                    if (isheet.GetRow(row).GetCell(i) != null) //null is when the row only contains empty cells
                    {
                        saryStr[i] = isheet.GetRow(row).GetCell(i).StringCellValue;
                    }
                    else
                    {
                        saryStr[i] = "";
                    }
                }
                mdsExcel.Tables[0].Rows.Add(saryStr);

            }

            iworkbook = null;
            //可能發生錯誤的地方
        }
        catch (Exception ex)
        {
            textBox1.Text += ex.ToString();
            //例外要怎麼處理
        }
        finally
        {
            //不論是否產生例外都會執行的地方
        }

    }//



0 意見:

張貼留言

 

MangoHost Copyright © 2009 Cookiez is Designed by Ipietoon for Free Blogger Template