C#-使用NPOI将DataTable保存为Excel

        /// <summary>
        /// DataTable导出Excel
        /// </summary>
        /// <param name="dt">DataTable</param>
        /// <param name="SavePath">保存路径</param>
        public void DataTabletoExcel1(DataTable dt, string SavePath)
        {           
            if (File.Exists(SavePath))
            {
                return;
            }
            IWorkbook excel = new HSSFWorkbook();
            ISheet sheet;
            IRow row;
            //写入工作表名称
            sheet = excel.CreateSheet("sheet1");
            //创建第一行标题
            row = sheet.CreateRow(0);
            //创建标题行的单元格
            row.CreateCell(0).SetCellValue("ID");
            row.CreateCell(1).SetCellValue("姓名");
            row.CreateCell(2).SetCellValue("身份证");
            row.CreateCell(3).SetCellValue("性别");
            //写入DataTable中的数据
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                //第0行为标题 - 所以第1行开始
                row = sheet.CreateRow(i + 1);
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    //左往右写入数据
                    row.CreateCell(j).SetCellValue(dt.Rows[i][j].ToString());
                    sheet.AutoSizeColumn(j);
                }
            }
            //写入文件
            FileStream xlsfile = new FileStream(SavePath, FileMode.Create);
            excel.Write(xlsfile);
            xlsfile.Close();
        }

  PS:这个写法需要DataTable中列的数量和NPOI列对象的数量一致

posted @ 2019-07-02 18:36  陈鹏昱Chen  阅读(1178)  评论(0编辑  收藏  举报