/// <summary>
/// 导出excel文件
/// </summary>
/// <param name="dt">Table表数据</param>
/// <param name="path">存放路径 ( string path = System.Environment.CurrentDirectory + "\\";)</param>
public void exportWPS_excel(DataTable dt, string path)
{
//创建excel工作薄
IWorkbook wb = new HSSFWorkbook();
//创建excel单元格样式
ICellStyle cellStyle = wb.CreateCellStyle();
//水平对齐
cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
//垂直对齐
cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;

IFont font = wb.CreateFont();
//创建表
IDataFormat format = wb.CreateDataFormat();
ISheet sh = wb.CreateSheet("Table");

var newrow = sh.CreateRow(0); //第一行
newrow.CreateCell(0);
newrow.Cells[0].SetCellValue("2021年");//表头标题
ICellStyle headStyle0 = wb.CreateCellStyle();
headStyle0.WrapText = true;
IFont fontt = wb.CreateFont();
fontt.FontHeightInPoints = 12; //字体大小
fontt.Boldweight = short.MaxValue;//设置字体加粗样式
headStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
headStyle0.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
headStyle0.SetFont(fontt);
newrow.GetCell(0).CellStyle = headStyle0;
int count = dt.Columns.Count - 2;
sh.AddMergedRegion(new CellRangeAddress(0, 0, 0, dt.Columns.Count - 1));//合并单元格(起始行,终止行,起始列,终止列)

#region 表头及样式
int cellIndex = 0;
IRow headerRow = sh.CreateRow(1);//第二行
for (int i = 0; i < dt.Columns.Count; i++)
{
//设置行高
headerRow.HeightInPoints = 25;
headerRow.CreateCell(cellIndex).SetCellValue(tablename(dt.Columns[i].ColumnName));
ICellStyle headStyle = wb.CreateCellStyle();
sh.AutoSizeColumn(cellIndex);//自适应宽度
headStyle.WrapText = true;
font.FontHeightInPoints = 12; //字体大小
font.Boldweight = short.MaxValue;//设置字体加粗样式
headStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
headStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
headStyle.SetFont(font);
headerRow.GetCell(cellIndex).CellStyle = headStyle;
cellIndex++;
}
#endregion
#region 数据填充
int rowIndex = 2;//行数一定要从2行开始,因为上面已经创建了标题为0行,数据表头为1行;
foreach (DataRow row in dt.Rows)
{
int ColumnIndex = 0;
IRow dataRow = sh.CreateRow(rowIndex);
foreach (DataColumn column in dt.Columns)
{
ICell newCel0 = dataRow.CreateCell(ColumnIndex);//序号
dataRow.GetCell(ColumnIndex).CellStyle = cellStyle;
cellStyle.DataFormat = format.GetFormat("text");//数据类型
newCel0.SetCellValue(row[column.ColumnName].ToString());
sh.AutoSizeColumn(ColumnIndex);//自适应宽度
ColumnIndex++;

}
rowIndex++;
}
#endregion

int rows = dt.Rows.Count + 2;//获取dt行数
var newroww = sh.CreateRow(rows); //添加总结行
newroww.CreateCell(0);
newroww.Cells[0].SetCellValue("共" + dt.Rows.Count + "个标本");

//设置新建文件路径及名称
string savePath = path + "导出Excel\\" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + ".xls";
using (FileStream fileStream = File.OpenWrite(savePath))
{
wb.Write(fileStream);
MessageBox.Show("提示:创建成功!");
}

}

最终导出后如图

C#,使用NPOI,导出excel文件的更多相关文章

  1. 使用NPOI导出Excel文件

    使用NPOI导出Excel文件,本实例使用了ASP.NET MVC. 1.使用NPOI导出Excel文件 实例:导出商品列表. 要求:1.通过NPOI导出导出商品列表信息: 2.使用Excel函数计算 ...

  2. 关于NPOI导出excel文件(xls和xlsx两种格式)提示格式不符的问题

    这两天在做导出excel文件的时候遇到这个问题 本来我导出的格式是xlsx格式的,但是下载得到的文件格式变成了xls, 一开始以为是返回的contenttype设置错了 return File(ms, ...

  3. 基于Vue + axios + WebApi + NPOI导出Excel文件

    一.前言 项目中前端采用的Element UI 框架, 远程数据请求,使用的是axios,后端接口框架采用的asp.net webapi,数据导出成Excel采用NPOI组件.其业务场景,主要是列表页 ...

  4. C# 未安装Office环境下使用NPOI导出Excel文件

    1.NuGet直接安装NPOI程序包: 2. using NPOI.XSSF.UserModel; 3.导出Excel代码: private void TsbExport2ExcelClick(obj ...

  5. asp.net Mvc 使用NPOI导出Excel文件

    1.新建MVC项目,新建控制器.视图 添加控制器: 添加视图(将使用布局页前面的复选框里的勾勾去掉) 2.在Models里新建一个类 public class Shop { /// <summa ...

  6. C# DataGridview用NPOI导出Excel文件

    导出excel我用的是nuget 的NPOI,直接在项目中添加的,引用到项目中,下面是截图: 下面我把ExcelHelper贴出来 public static class ExcelHelper { ...

  7. 使用 NPOI 导出 Excel 文件

    [NPOI简介] NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. 使用 NPOI 你就可以在没有安装 Office 或者 ...

  8. NPOI导出Excel文件,对单元格的一些设置

    HSSFWorkbook book = new HSSFWorkbook(); MemoryStream ms = new MemoryStream(); ISheet sheet = book.Cr ...

  9. 使用NPOI或EPPlus来导出Excel文件实例,可在Excel文件加密

    使用NPOI.dll组件来导出Excel文件,并设置样式,Nuget引用即可. packages\NPOI.2.1.3.1\lib\net20\NPOI.dll #region Excel prote ...

随机推荐

  1. 更强的 JsonPath 兼容性及性能测试之2022版(Snack3,Fastjson2,jayway.jsonpath)

    2022年了,重新做了一份json path的兼容性与性能测试.三个市面上流行框架比较性测试. 免责声明:可能测试得方式不对而造成不科学的结果(另外,机器不同结果会有不同),可以留言指出来.以下测试数 ...

  2. Tapdata 在线研讨会:实时数据同步应用场景及实现方案探讨

    数字化时代的到来,企业业务敏捷度的提升,对传统的数据处理和可用性带来更高的要求,实时数据同步技术的发展,给基于数据的业务创新带来了更多的可能性.9月8日晚,Tapdata 联合MongoDB 中文社区 ...

  3. 使用APICloud开发app录音功能

    ​ mp3Recorder模块封装在iOS.Android下录音直接生成mp3,统一两个平台的录音生成文件,方便双平台之间的交互,减少录音完成后再转码的过程:同时提供分贝波形图显示UI:使用该模块前需 ...

  4. 2022-07-09 第六组 润土 CSS学习笔记

    HTML:用来描述网页的一种语言. 超文本语言.动画.音频.视频.特效.超链. 用标签定义网页 浏览器 流行浏览器: IE微软宣布永久关闭 firefox火狐 Chrom谷歌 Sarifi vscod ...

  5. 4-12 Spring Security + JWT

    Spring Security + JWT 此前,在处理登录的业务中,当视为登录成功时,返回的字符串并不是JWT数据,则应该将此数据改为必要的JWT数据. @Service public class ...

  6. 创建私有CA,我就用openSSL

    目录 简介 搭建root CA 生成root CA 使用CRL 使用OSCP 总结 简介 一般情况下我们使用的证书都是由第三方权威机构来颁发的,如果我们有一个新的https网站,我们需要申请一个世界范 ...

  7. 跟我读论文丨Multi-Model Text Recognition Network

    摘要:语言模型往往被用于文字识别的后处理阶段,本文将语言模型的先验信息和文字的视觉特征进行交互和增强,从而进一步提升文字识别的性能. 本文分享自华为云社区<Multi-Model Text Re ...

  8. 建立二叉树的二叉链表存储结构(严6.70)--------西工大noj

    #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct TreeNode ...

  9. 求广义表深度(严5.30)--------西工大noj

    #include <stdio.h> #include <stdlib.h> #include <string.h> typedef enum{ATOM, LIST ...

  10. 渲染优化中那些奇奇怪怪的rules

    禁⽌使⽤ iframe iframe 会阻塞主⻚⾯的 Onload 事件 搜索引擎的检索程序⽆法解读这种⻚⾯,不利于 SEO iframe 和主⻚⾯共享连接池,⽽浏览器对相同域的连接有限制,所以会影响 ...