C# NPOI导出datatable----Excel模板画图表

1、创建Excel模板

2、安装NPOI管理包 

3、创建工作簿  (XLSX和XLS步骤一样,以XLS为例)

IWorkbook workbook = null;

 string time = DateTime.Now.ToString("yyyyMMddHHmmss");

string excelTempPath = Application.StartupPath + @"\Excel\分析模板.xls";//分析模板 

string path = Application.StartupPath + @"\Excel\分析文件" + time + ".xls";//保存路径

 //读取Excel模板
using (FileStream fs = new FileStream(excelTempPath, FileMode.Open, FileAccess.Read))
{
   workbook = new HSSFWorkbook(fs);
}

 //获取sheet模板
ISheet  sheet1 = workbook.GetSheetAt(0);
 //将DataSet导出为Excel

4、讲datatable数据写入Excel

                //将DataSet导出为Excel
                int rowCount = dt.Rows.Count;//行数
                int columnCount = dt.Columns.Count;//列数

                //设置列头
                IRow row = sheet1.CreateRow(0);//excel第一行设为列头
                for (int c = 0; c < columnCount; c++)
                {
                    ICell cell = row.CreateCell(c);
                    cell.SetCellValue(dt.Columns[c].ColumnName);
                }
                //设置每行每列的单元格,
                for (int i = 0; i < rowCount; i++)
                {
                    row = sheet1.CreateRow(i + 1);
                    for (int j = 0; j < columnCount; j++)
                    {
                        ICell cell = row.CreateCell(j);//excel第二行开始写入数据
                           if (dt.Rows[i][j].ToString().Length > 0)//判断分数是否为空
                            {//写入数值类型
                                cell.SetCellValue((double)Convert.ToDecimal((dt.Rows[i][j])));
                            }
                            else
                            {//写入文本类型
                                cell.SetCellValue(dt.Rows[i][j].ToString());
                            }
                    }
                }

        workbook.SetSheetName(0, dt.TableName);//修改excel页名为datatable表名

5、向文件输出数据

                 //向outPath输出数据
                using (FileStream fs = File.Open(path, FileMode.Create, FileAccess.Write))
                {
                    workbook.Write(fs);//向打开的这个xls文件中写入数据
                    fs.Close();
                }

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-21 14:28:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-21 14:28:01       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-21 14:28:01       87 阅读
  4. Python语言-面向对象

    2023-12-21 14:28:01       96 阅读

热门阅读

  1. 【Python】—— pandas 数据分析

    2023-12-21 14:28:01       50 阅读
  2. PaddleHub报错解决方法及示例代码

    2023-12-21 14:28:01       55 阅读
  3. BeanDefinitionRegistryPostProcessor 接口的概述

    2023-12-21 14:28:01       54 阅读
  4. 低代码何去何从

    2023-12-21 14:28:01       57 阅读
  5. 对于猜数字游戏改进的心得

    2023-12-21 14:28:01       60 阅读
  6. Web ML 库的Transformers.js 提供文本转语音功能

    2023-12-21 14:28:01       43 阅读
  7. npm run dev 与npm run serve的区别

    2023-12-21 14:28:01       54 阅读
  8. Mysql允许局域网或外部网络访问

    2023-12-21 14:28:01       63 阅读
  9. 八股文打卡day4——计算机网络(4)

    2023-12-21 14:28:01       57 阅读
  10. jQuery实现轮播图代码

    2023-12-21 14:28:01       64 阅读