NPOI下載

//NPOI將檔案加入參考後引入
using NPOI;
using NPOI.HSSF;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;          


        //資料存放位置
        private static string[] myData;
        private static List<string[]> arrMyData;

         private void button1_Click_1(object sender, EventArgs e)
        {
            //載入excel 
            OpenFileDialog OpenFileDig = new OpenFileDialog();
            //限制副檔名為 *.xls
            OpenFileDig.Filter = "xls Files|*.xls";
            OpenFileDig.Title = "Select a xls File";

            if (OpenFileDig.ShowDialog() == DialogResult.OK)
            {
                //將路徑顯示在 LAB上
                labDir.Text = OpenFileDig.FileName.ToString();
                FileName = OpenFileDig.FileName.ToString();
                strPath = FileName.Replace(OpenFileDig.SafeFileName.ToString(), "");
            }
            //初始化要存放資料的地方(此為泛字串陣列)
            arrMyData = new List<string[]>();

            HSSFWorkbook wk;
            HSSFSheet hst;
            HSSFRow hr;

            try
            {
                using (FileStream fs = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite))
                {
                    wk = new HSSFWorkbook(fs);
                }
                //預設為第一張表  如要讀取其他工作表 請更改下面的值 0,1,2,3,4‧‧‧
                hst = (HSSFSheet)wk.GetSheetAt(0);
                #region Get Sheet Name
                //strSheetname = hst.SheetName;
                #endregion Get Sheet Name
                //取得標題
                hr = (HSSFRow)hst.GetRow(0);
                //取得欄位數量
                int dLastNum = hr.LastCellNum;
                //有多少筆資料 j=1 有標題,j=0 無標題 (從哪開始讀取資料)
                for (int j = 1; j <= hst.LastRowNum; j++)
                {
                    hr = (HSSFRow)hst.GetRow(j);
                    //宣告陣列 並將資料同時置入
                    myData = new string[1]
                                 {                   
                                        hr.GetCell(0)  ==  null ? "" : hr.GetCell(0).ToString(),  //如果儲存格資料為空白null 將""加入陣列 
                                        hr.GetCell(1)  ==  null ? "" : hr.GetCell(1).ToString()   //欄位有多少 則新增多少                                 
                                 };
                    //將每一行的資料存放至arrMyData儲存 ,之後要做什麼應用取得 arrMyData 即可~
                    arrMyData.Add(myData);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
            }
        }

想知道更多請點擊參考

Leave a Comment