C#NPOI示例
主程序要添加NPOI的库。代码如下
static void Main(string[] args)
{
Export();
}
public static void Export()
{
// 创建新的Excel工作簿
IWorkbook workbook = new XSSFWorkbook(); // 创建一个工作表
ISheet sheet = workbook.CreateSheet("Sheet1"); // 创建合并单元格的样式
ICellStyle cellStyle = workbook.CreateCellStyle();
cellStyle.Alignment = HorizontalAlignment.Center;
cellStyle.VerticalAlignment = VerticalAlignment.Center; //设置字体
IFont font = workbook.CreateFont();
font.FontHeightInPoints = 12;
font.FontHeight = 4 * 60;
font.FontName = "宋体";
font.IsBold = true;
cellStyle.SetFont(font); // 设置边框样式为实线
cellStyle.BorderTop = BorderStyle.Thin;
cellStyle.BorderBottom = BorderStyle.Thin;
cellStyle.BorderLeft = BorderStyle.Thin;
cellStyle.BorderRight = BorderStyle.Thin; // 创建合并单元格
int row = 0; // 指定的行号
int cell = 0; // 在合并后的单元格中设置值和样式
IRow row1 = sheet.CreateRow(row);
IRow row2 = sheet.CreateRow(row + 1);
row1.Height = 20 * 20;
row2.Height = 20 * 20; // 创建合并单元格
CellRangeAddress cellRangeAddress = new CellRangeAddress(row, row + 1, cell, cell);
sheet.AddMergedRegion(cellRangeAddress);
ICell cell0 = row1.CreateCell(row);
cell0.SetCellValue("机器编号");
cell0.CellStyle = cellStyle; //自定义行宽
sheet.SetColumnWidth(row, 20 * 256); cellRangeAddress = new CellRangeAddress(row, row + 1, cell + 1, cell + 1);
sheet.AddMergedRegion(cellRangeAddress);
ICell cell1 = row1.CreateCell(cell + 1);
cell1.SetCellValue("位置");
cell1.CellStyle = cellStyle; //自定义行宽
sheet.SetColumnWidth(row + 1, 30 * 256); cellRangeAddress = new CellRangeAddress(row, row, cell + 2, cell + 3);
sheet.AddMergedRegion(cellRangeAddress);
ICell cell2 = row1.CreateCell(cell + 2);
cell2.SetCellValue("自费结算"); cellRangeAddress = new CellRangeAddress(row, row, cell + 4, cell + 9);
sheet.AddMergedRegion(cellRangeAddress);
ICell cell3 = row1.CreateCell(cell + 4);
cell3.SetCellValue("医保结算");
cell3.CellStyle = cellStyle; #region 如果创建这个列,会导致实线边框样式无法呈现
row1.CreateCell(cell + 9).SetCellValue("");
//被占跨行合并的第二行第一第二列
row2.CreateCell(cell + 0).SetCellValue("");
row2.CreateCell(cell + 1).SetCellValue("");
//被占跨行合并的第二行第一第二列
#endregion row2.CreateCell(cell + 2).SetCellValue("自费结算笔数");
row2.CreateCell(cell + 3).SetCellValue("自费结算金额(元)");
row2.CreateCell(cell + 4).SetCellValue("医保卡笔数");
row2.CreateCell(cell + 5).SetCellValue("医保卡个账金额(元)");
row2.CreateCell(cell + 6).SetCellValue("医保电子凭证笔数");
row2.CreateCell(cell + 7).SetCellValue("医保电子凭证个账金额(元)");
row2.CreateCell(cell + 8).SetCellValue("人脸医保笔数");
row2.CreateCell(cell + 9).SetCellValue("人脸医保个账金额(元)");
cell2.CellStyle = cellStyle; var irow = sheet.GetRow(1);
SetColumnWidth(sheet, row + 2, row + 9, 22 * 256);
SetCellStyle(sheet, 0, 1, 0, 9, cellStyle); // 写入到文件
using (FileStream file = new FileStream("merged_cells.xlsx", FileMode.Create, FileAccess.Write))
{
workbook.Write(file);
} } /// <summary>
/// 设置列宽宽度
/// </summary>
public static void SetColumnWidth(ISheet sheet, int fristSolumn, int endSolumn, int intWidth)
{
for (int i = fristSolumn; i <= endSolumn; i++)
{
sheet.SetColumnWidth(i, intWidth);
}
} /// <summary>
/// 给单元格四周加黑色边框
/// </summary>
/// <param name="sheet">单元格所在的sheet</param>
/// <param name="rowstart">开始行的索引</param>
/// <param name="rowend">结束行的索引</param>
/// <param name="colstart">开始列的索引</param>
/// <param name="colend">结束列的索引</param>
public static void SetCellStyle(ISheet sheet, int rowstart, int rowend, int colstart, int colend, ICellStyle cellStyle)
{
for (int i = rowstart; i <= rowend; i++)
{
var irow = sheet.GetRow(i);
if (irow != null && irow.Cells != null && irow.Cells.Count > 0)
{
for (int j = 0; j < irow.Cells.Count; j++)
{
irow.Cells[j].CellStyle = cellStyle;
}
}
}
}
C#NPOI示例的更多相关文章
- NPOI导出Excel示例
摘要:使用开源程序NPOI导出Excel示例.NPOI首页地址:http://npoi.codeplex.com/,NPOI示例博客:http://tonyqus.sinaapp.com/. 示例编写 ...
- 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续2篇-模板导出综合示例)
自ExcelUtility类推出以来,经过项目中的实际使用与不断完善,现在又做了许多的优化并增加了许多的功能,本篇不再讲述原理,直接贴出示例代码以及相关的模板.结果图,以便大家快速掌握,另外这些示例说 ...
- 關於NPOI的一點補充和示例
最近看到很多人分享NPOI的用法. 但是很多都不是完整示例或者並沒有實戰效果. 剛好最近有個VB.NET的項目有升級原有的oledb select sheet$的做法. 很明顯,NPOI有更好的穩定性 ...
- NET使用NPOI组件导出Excel-入门示例及通用方法
一.Excel导入及导出问题产生: 从接触.net到现在一直在维护一个DataTable导出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题: 导出问题: 如果是as ...
- PowerBuilder中调用NPOI进行Excel导出格式设置示例
// 功能 :新建excel带边框的单元格,格式为数字并显示为美元货币 // 参数 :ai_row,行号:ai_col,列号 // 返回值 :true/false // 作者 :潮崖之飔 // 日期 ...
- C# .Net :Excel NPOI导入导出操作教程之将Excel文件读取并写到数据库表,示例分享
using (FileStream fileReader = File.OpenRead(@"C:\Users\Administrator\Desktop\112.xls")) ...
- c# .Net :Excel NPOI导入导出操作教程之数据库表信息数据导出到一个Excel文件并写到磁盘示例分享
string sql = @"select * from T_Excel"; ----------------DataTable Star---------------- ...
- NPOI 列宽自适应 代码示例
//列宽自适应,只对英文和数字有效 for (int i = 0; i <= maxColumn; i++) { sheet.AutoSizeColumn(i); } //获取当前列的宽度,然后 ...
- .NET Core 首例 Office 开源跨平台组件(NPOI Core)
前言 最近项目中,需要使用到 Excel 导出,找了一圈发现没有适用于 .NET Core的,不依赖Office和操作系统限制的 Office 组件,于是萌生了把 NPOI 适配并移植到 .NET C ...
- (C#)使用NPOI导出Excel
在做业务型的软件时,经常需要将某些数据导出,本文介绍了在Winform或Asp.net中使用NPOI(POI 项目的 .NET 版本)来操作Excel文件,而无需安装Office. 首先,需要获取NP ...
随机推荐
- 问题:深度学习时代的初期最为火热的AI安全问题已经很少有人讨论了,那么是不是已经解决该问题了呢?
答案: 先说结果,该问题并没有被解决. 之所以该问题已经不是最初的那么火热的讨论和研究热点了,其主要原因是大家发现这个神经网络在深度学习时代是十分的work的,虽然AI安全问题一直没有解决,但是比较发 ...
- java api 接口 postman @RequestBody
首先解释一下注解 @RequestBody @RequestBody标记的参数接受的是一个json格式的字符串,一定是一个字符串. 举个例子 这里参数 entryingEntity 如果调用api 如 ...
- IDEA常用插件推荐
IDEA支持特别多的插件,今天记录一下我常用的插件.欢迎在评论区推荐更多插件!!! 1.Translation - 必备翻译插件 基于 IntelliJ 的 IDE 的翻译插件 推荐指数: 插件链接: ...
- 成为Java GC专家(4) — Apache的MaxClients参数详解及其在Tomcat执行FullGC时的影响
这是"成为Java GC专家系列文章"的第四篇. 在第一篇文章 成为JavaGC专家Part I - 深入浅出Java垃圾回收机制 中我们学习了不同GC算法的执行过程,GC如何工作 ...
- SSD:清华出品,可切换密集稀疏的大模型预训练加速方案 | ICML'24
来源:晓飞的算法工程笔记 公众号,转载请注明出处 论文: Exploring the Benefit of Activation Sparsity in Pre-training 论文地址:https ...
- redis 使用lua 生成流水号
在实际的业务场景中,我们会用到流水号. 之前的流水号做法是,使用redis的全局锁.然后对数据库进行更新,数据库更新 这个也会有一些问题,比如对于同一个流水号,多个线程去更新,由于事务比较长,那么就会 ...
- Java基础面试:Java中的方法
Java 中的方法 什么是方法 方法是 Java 中的一段可重用的代码块,用于执行特定的任务,是程序中的最小执行单元. 参数:方法可以接受一个或多个参数,这些参数是传递给方法的值,用于方法内部的逻辑运 ...
- Java 动态设置 JVM 参数的方法
Java虚拟机(JVM)在运行Java应用时,其性能调优和资源管理至关重要.虽然许多JVM参数在启动时通过命令行设置,但在应用运行期间动态调整某些参数也是可行的.通过动态设置JVM参数,开发者可以更有 ...
- CMYK与RGB参数转换公式及转换方法
1. RGB色彩模式 自然界中绝大部分的可见光谱可以用红.绿和蓝三色光按不同比例和强度的混合来表示.RGB分别代表着3种颜色:R代表红色,G代表绿色.B代表蓝色.RGB模型也称为加色模型,如图5所示. ...
- tomcat部署cas6并配置自己的ssl证书
配置并安装tomcat,详见我的文章:windows安装tomcat10 安装必备的软件:(在<windows安装tomcat10>中已详细配置) apache-tomcat-10.1. ...