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

news/2024/12/17 21:31:27/

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();
                }


http://www.ppmy.cn/news/1276580.html

相关文章

基于ASF-YOLO融合空间特征和尺度特征的新型注意力尺度序列融合模型开发构建涵洞隧道场景下墙壁建筑缺陷分割检测系统

在ASF-YOLO提出之初&#xff0c;我们就进行了相应的实践开发&#xff0c;感兴趣的话可以自行移步阅读&#xff1a; 《基于ASF-YOLO融合空间特征和尺度特征的新型注意力尺度序列融合模型开发构建医学场景下细胞分割检测识别系统&#xff0c;以【BCC、DSB2018数据集为基准】》 …

Zookeeper-快速入门、服务搭建、集群搭建教程

官网&#xff1a;https://zookeeper.apache.org/ zookeeper常用用途&#xff1a; 集群管理&#xff0c;zookeeper作为注册中心&#xff0c;管理服务提供方的ip地址端口号url信息&#xff0c;并在服务消费方请求需要时发送给服务消费方。配置中心&#xff08;不过一般用阿波罗…

【PHP入门】2.2 流程控制

-流程控制- 流程控制&#xff1a;代码执行的方向 2.2.1控制分类 顺序结构&#xff1a;代码从上往下&#xff0c;顺序执行。&#xff08;代码执行的最基本结构&#xff09; 分支结构&#xff1a;给定一个条件&#xff0c;同时有多种可执行代码&#xff08;块&#xff09;&am…

【计算机四级(网络工程师)笔记】操作系统概论

目录 一、OS的概念 1.1OS的定义 1.2OS的特征 1.2.1并发性 1.2.2共享性 1.2.3随机性 1.3研究OS的观点 1.3.1软件的观点 1.3.2资源管理器的观点 1.3.3进程的观点 1.3.4虚拟机的观点 1.3.5服务提供者的观点 二、OS的分类 2.1批处理操作系统 2.2分时操作系统 2.3实时操作系统 2.4嵌…

iOS 收集 SDK 内部 log

为 SDK 设置 log 等级&#xff0c;设置 RCIMClient 的 logLevel 为您期望的&#xff0c;可以在 SDK initWithAppkey 之后设置&#xff0c;比如希望只收集错误 log&#xff0c;那么可以设置为 RC_Log_Level_Error&#xff0c;如果想一般信息、警告信息&#xff0c;错误信息都收集…

黑马头条--day06文章上下架--kafka消息队列

目录 一.自媒体文章上下架 二.kafka概述 1.消息中间件对比 2.kafka介绍 3.kafka安装配置 三.kafaka入门 &#xff08;1&#xff09;创建kafka-demo项目&#xff0c;导入依赖 &#xff08;2&#xff09;生产者发送消息 &#xff08;3&#xff09;消费者接收消息 总结…

MySQL基本操作 DDL DML DQL三大操作介绍

DDL 数据(结构)定义 创建表DML 数据操作 增删改DQL 查询语句 DDL 数据(结构)定义 创建表 创建 删除数据 注释 --空格内容 创建数据库 CREATE DATABASE [if not exists] 数据库名 [ CHARSET utf8]eg:CREATE DATABASE IF NOT EXISTS school CHARSET utf8如果对应school不存在,…

Android Studio 实现音乐播放器

目录 一、引言 视频效果展示&#xff1a; 1.启动页效果 2.登录页效果 3.注册页效果 4.歌曲列表页效果 5.播放页效果 二、详细设计 1.登陆注册功能 2.音乐列表页面 2.音乐播放功能 三、源码获取 一、引言 Android初学者开发第一个完整的实例项目应该就属《音乐播放器…