2018年6月9日 星期六

[C#]NPOI匯出Excel檔

先到 NPOI官方:http://npoi.codeplex.com/ 下載dll檔

        using NPOI.Util;
        using NPOI.HSSF.Model;
        using NPOI.HSSF.UserModel;
        using NPOI.HSSF;

        /// <summary>
        /// DataTable轉換成Excel檔
        /// </summary>
        /// <param name="dt">DataTable</param>
        /// <param name="xlsSaveFileName">儲存路徑</param>
        /// <returns></returns>
        private bool ConvertToExcel(DataTable dt, string xlsSaveFileName)
        {
            //新増Excel檔案
            FileStream fs = new FileStream(xlsSaveFileName, FileMode.Create);
            try
            {
                HSSFWorkbook newBook = new HSSFWorkbook();
                //新増Sheet
                HSSFSheet newSheet = (HSSFSheet)newBook.CreateSheet("匯出檔");


                //將DataTable資料匯出至Excel Sheet
                for (int i = 0; i < dt.Rows.Count + 1; i++)
                {
                    //新增資料列
                    newSheet.CreateRow(i);
                    //匯出Dt資料行名稱和資料
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        //第一列匯出資料行名稱,再匯出資料
                        if (i == 0)
                        {
                            newSheet.GetRow(i).CreateCell(j).SetCellValue(dt.Columns[j].ColumnName);
                        }
                        else
                        {
                            newSheet.GetRow(i).CreateCell(j).SetCellValue(dt.Rows[i - 1][j].ToString());
                        }
                    }
                }
                //匯出到Excel檔
                newBook.Write(fs);
                return true;
            }
            catch (Exception ex)
            {
                throw new Exception("匯出Excel檔失敗" + ex.Message);
            }
            finally
            {
                fs.Close();
            }
        }

沒有留言:

張貼留言