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 ...
随机推荐
- 8.Jenkins+Docker+SpringCloud微服务持续集成
前言 通过前几章的学习,了解了持续集成概念以及相关技术的学习和使用 接下来学习构建一整套SpringCloud微服务+Docker+Jenkins的持续集成案例 环境 架构图 流程说明: 开发人员将代 ...
- .NET斗鱼直播弹幕客户端(上)
现在直播平台由于弹幕的存在,主播与观众可以更轻松地进行互动,非常受年轻群众的欢迎.斗鱼TV就是一款非常流行的直播平台,弹幕更是非常火爆.看到有不少主播接入弹幕语音播报器.弹幕点歌等模块,这都需要首先连 ...
- html代码新手教学
HTML 是超文本标记语言(HyperText Markup Language)的缩写,是用来描述网页结构的标记语言.在这篇教学中,我们将介绍一些 HTML 基础知识,帮助新手快速学习并掌握如何编写简 ...
- Eclipse JDT--AST入门
最近做program analysis,需要解析Java的源代码,于是就去看了看Abstract Syntax Tree(AST,中文为抽象语法树).有点无奈的是,网上关于这方面的资料比我想象中的少, ...
- golang不同版本特性
Go 1.0[1] - 2012 年 3 月: 随着 Go 第一个版本发布的还有一份兼容性说明文档[2] .该文档承诺,Go 的未来版本会尽可能确保向后兼容性,不会破坏现有程序. For insta ...
- Blazor 组件库 BootstrapBlazor 中Button组件介绍
组件介绍 按钮组件,应该是最基础的组件之一了.感觉没什么可介绍的,但是BootstrapBlazor的按钮,还是有很多不错的特性. 首先是最基础的,boostrap5的按钮样式: 代码如下: < ...
- Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Faile
解决方法: 1.新建一个安卓应用,复制下面路径红色框的代码 去替换 导入应用中的代码,就是修改gradle版本: 2.在导入的应用中如下路径添加信息 代码: android.overridePat ...
- Node.js 模拟Apache服务器
1.知识必备 (1)当服务器响应不同文件类型时,需要设置响应报文头,让浏览器选择相应的编码解析数据. 常用对照表HTTP Mime-type: https://tool.oschina.net/com ...
- Jetpack Compose学习(14)——ConstraintLayout约束布局使用
原文地址: Jetpack Compose学习(14)--ConstraintLayout约束布局使用-Stars-One的杂货小窝 本文阅读之前,需要了解ConstraintLayout的使用! 各 ...
- Linux 上使用Systemd 来进程守护Net应用
Systemd Service 的方式,用于在 Linux 系统上管理和运行服务.Systemd 是一个系统和服务管理器,可以自动化和简化 Linux 系统的管理和维护,包括启动.停止和管理后台服务. ...