WinForm 使用 NPOI 2.2.1從datatable導出Excel


最新的NOPI應該是2.3了,但在官網上還是2.2.1。

也是第一次使用NPOI來導出Excel文件。

在寫的時候搜不到2.2.1的教程,搜了一個2.2.0的教程。

不過也沒什么問題,NPOI是真的方便簡單。

 

不多說,放代碼

            IWorkbook excel = new HSSFWorkbook();//創建.xls文件
            ISheet sheet = excel.CreateSheet("sheet1"); //創建sheet

            DataTable datatable = (DataTable)dataGridView.DataSource;//獲取數據源datatable

            IRow row = sheet.CreateRow(0);//創建行對象,填充表頭
            foreach (DataColumn column in datatable.Columns)
            {
                row.CreateCell(0).SetCellValue("供應商編號");
                row.CreateCell(1).SetCellValue("供應商名稱");
                row.CreateCell(2).SetCellValue("供應商聯系方式");
                row.CreateCell(3).SetCellValue("供應商地址");
                row.CreateCell(4).SetCellValue("供應商稅號");
                row.CreateCell(5).SetCellValue("供應商初期應付款");
                row.CreateCell(6).SetCellValue("供應商分類");
                row.CreateCell(7).SetCellValue("供應商分類編號");
            }

            //填充內容,j從1開始,屏蔽掉第一列,循環讀取
            for (int i = 0; i < datatable.Rows.Count; i++)
            {
                row = sheet.CreateRow(i + 1);
                for (int j = 1; j < datatable.Columns.Count; j++)
                {
                    row.CreateCell(j-1).SetCellValue(datatable.Rows[i][j].ToString());
                    sheet.AutoSizeColumn(j);
                }
            }

            //寫入文件
            string DesktopPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
            FileStream xlsfile = new FileStream(DesktopPath + @"\供應商信息Excel" + DateTime.Now.ToString("yyyy-MM-dd") + ".xls", FileMode.Create);
            excel.Write(xlsfile);
            xlsfile.Close();

            MessageBox.Show("Excel文件已導出到桌面","提示");

因為我的第一列是一個內碼值,要將他屏蔽掉,

所以在循環填充數據的時候,初始化 j=1,但在之后的列數中,這樣會導致空出一列,所以再使用j-1。

其實也可以通過操作 datatable 來屏蔽掉這一列。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM