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 ...
随机推荐
- Lua代码——使用遗传进化算法(neat算法)玩超级玛丽游戏
前文: 模拟器运行环境及Lua代码--使用遗传进化算法(neat算法)玩超级玛丽游戏 lua语言实现的neat算法代码: -- MarI/O by SethBling -- Feel free to ...
- Codeforces Round 971 (Div. 4) E 题解析
# E题 Klee's SUPER DUPER LARGE Array!!! 题目描述 思路: 对于这道题,首先观察到题目求的是最小可能值,而且数据的范围是1e9范围,所以首先可以考虑的方法就是O(l ...
- HarmonyOS-Chat聊天室|纯血鸿蒙Next5 api12聊天app|ArkUI仿微信
自研原生鸿蒙NEXT5.0 API12 ArkTS仿微信app聊天模板HarmonyOSChat. harmony-wechat原创重磅实战纯血鸿蒙OS ArkUI+ArkTs仿微信App聊天实例.包 ...
- 不依赖 Spring,你会如何自实现 RabbitMQ 消息的消费(一)
开心一刻 上午一好哥们微信我哥们:哥们在干嘛,晚上出来吃饭我:就我俩吗哥们:对啊我:那多没意思,我叫俩女的出来哥们:好啊,哈哈哈晚上吃完饭到家后,我给哥们发消息我:今天吃的真开心,下次继续哥们:开心尼 ...
- 再也不用写请求HttpHelper了,HttpClient帮助你
前言 在C#7.1之后,net推出HttpClient类代替WebRequest, HttpWebRequest, ServicePoint, and WebClient ,先来看下他们在以前的作用 ...
- 不错的AI项目集合
最近收集了一些不错的AI项目. AutoGPT:AutoGPT 的愿景是让每个人都可以使用和构建无障碍 AI.我们的使命是提供工具,以便您可以专注于重要的事情. Stable Diffusion we ...
- showModalBottomSheet setState 无法更新ui和高度设置问题
showModalBottomSheet setState 无法更新ui问题 首先理解showModalBottomSheet,本质上可以理解为路由入栈,在show之后弹出的页面其实是另一个页面了,此 ...
- 【人工智能】【Python】Anacond基础操作
# 001.在 Anaconda 中使用 Conda 管理 Python 环境 工具:Anaconda Prompt(Anaconda)| 请使用管理员权限运行 更新Anaconda conda up ...
- 开源架构Fabric、FISCO BCOS(以下简称“BCOS”)、CITA 技术对比
转自 https://www.coingogo.com/news/41300 联盟链技术哪家强?开源架构Fabric.FISCO BCOS(以下简称"BCOS").CITA 技术对 ...
- IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again
首先介绍一下IntelliJ IDEA生成jar包的方式: 1.打开项目,打开FIile->Project Structure...菜单.如下图: 选中Artifacts,点+号,选择JAR,再 ...