NPOI生成excel表格
1.什么是NPOI?百度百科给出的定义是:NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作。
简单的说,NPOI就是一个功能强大的用来读写excel和word文档的类库。
<!--[if !supportLists]-->2. 2.NPOI生成EXCEL表格的基本过程:获取数据>创建表格>将数据写入表格
<!--[if !supportLists]-->3. 3.代码示例
创建两个类:学生类和员工类
public class Student { public String no; public String name; } public class Worker { public String age; public String job; public String name; }
表格两个sheet页的表头
/// <summary> /// 获取学生表头 /// </summary> /// <returns></returns> public List<String> GetStuHeaderList() { var stuHeaderList = new List<String>(); stuHeaderList.Add("学号"); stuHeaderList.Add("姓名"); return stuHeaderList; } /// <summary> /// 获取工人表头 /// </summary> /// <returns></returns> public List<String> GetWorHeaderList() { var worHeaderList = new List<String>(); worHeaderList.Add("姓名"); worHeaderList.Add("年龄"); worHeaderList.Add("工作"); return worHeaderList; }
获取数据:项目中一般会在数据库中获取数据,这里为了简化,直接向列表中添加内容
public void GetData(List<Student> stuList, List<Worker> workList) { Student stu1 = new Student(); stu1.no = "1"; stu1.name = "小A"; stuList.Add(stu1); Student stu2 = new Student(); stu2.no = "2"; stu2.name = "小B"; stuList.Add(stu2); Worker work1 = new Worker(); work1.age = "20"; work1.job = "工程师"; work1.name = "小C"; workList.Add(work1); Worker work2 = new Worker(); work2.age = "22"; work2.job = "技术员"; work2.name = "小D"; workList.Add(work2); }
创建EXCEL文件并写入数据
public String CreateExcelFile(String filePath, String fileName) { String result = "S"; //为列表添加数据 List<Student> stuList = new List<Student>(); List<Worker> workList = new List<Worker>(); this.GetData(stuList, workList); if (!string.IsNullOrEmpty(filePath)) { NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook(); NPOI.SS.UserModel.ISheet sheet = book.CreateSheet("sheet1"); //设置标题样式 ICellStyle style1 = book.CreateCellStyle(); style1.Alignment = HorizontalAlignment.Center; IFont font = book.CreateFont(); font.Boldweight = short.MaxValue; font.FontHeight = 280; style1.SetFont(font); //写标题 NPOI.SS.UserModel.IRow row1 = sheet.CreateRow(0); row1.Height = 420; sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 1));//合并单元格 ICell cell1 = row1.CreateCell(0); cell1.CellStyle = style1; cell1.SetCellValue("学生信息表"); //设置表头字体 ICellStyle style2 = book.CreateCellStyle(); style2.Alignment = HorizontalAlignment.Center; IFont font3 = book.CreateFont(); font3.Boldweight = short.MaxValue; style2.SetFont(font3); style2.WrapText = true; style2.VerticalAlignment = VerticalAlignment.Center; //写文件头 NPOI.SS.UserModel.IRow row2 = sheet.CreateRow(1); List<String> headerList = this.GetStuHeaderList(); for (int i = 0; i < headerList.Count; i++) { ICell cell5 = row2.CreateCell(i); cell5.CellStyle = style2; cell5.SetCellValue(headerList[i]); } //写数据 for (int i = 0; i < stuList.Count; i++) { NPOI.SS.UserModel.IRow row3 = sheet.CreateRow(i + 2); row3.CreateCell(0).SetCellValue(stuList[i].no); row3.CreateCell(1).SetCellValue(stuList[i].name); } //生成员工表 book = WriteWorkerFileToExcel(book, filePath + @"\" + fileName + ".xls", workList); // 写入到客户端 using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) { book.Write(ms); using (FileStream fs = new FileStream(filePath +@"\" + fileName + ".xls", FileMode.Create, FileAccess.Write)) { byte[] data = ms.ToArray(); fs.Write(data, 0, data.Length); fs.Flush(); } book = null; } } return result; } /// <summary> /// 生成sheet2 /// </summary> /// <param name="book"></param> /// <param name="filePath"></param> /// <param name="workList"></param> /// <returns></returns> public NPOI.HSSF.UserModel.HSSFWorkbook WriteWorkerFileToExcel(NPOI.HSSF.UserModel.HSSFWorkbook book, String filePath,List<Worker> workList) { if (!string.IsNullOrEmpty(filePath)) { NPOI.SS.UserModel.ISheet sheet = book.CreateSheet("sheet2"); List<String> headerList = this.GetWorHeaderList(); //设置标题样式 ICellStyle style1 = book.CreateCellStyle(); style1.Alignment = HorizontalAlignment.Center; IFont font = book.CreateFont(); font.Boldweight = short.MaxValue; font.FontHeight = 280; style1.SetFont(font); //写标题 NPOI.SS.UserModel.IRow row1 = sheet.CreateRow(0); row1.Height = 420; sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 2)); ICell cell1 = row1.CreateCell(0); cell1.CellStyle = style1; cell1.SetCellValue("员工信息表"); //设置表头字体 ICellStyle style2 = book.CreateCellStyle(); style2.Alignment = HorizontalAlignment.Center; IFont font3 = book.CreateFont(); font3.Boldweight = short.MaxValue; style2.SetFont(font3); style2.WrapText = true; style2.VerticalAlignment = VerticalAlignment.Center; //写文件头 NPOI.SS.UserModel.IRow row2 = sheet.CreateRow(1); for (int i = 0; i < headerList.Count; i++) { ICell cell5 = row2.CreateCell(i); cell5.CellStyle = style2; cell5.SetCellValue(headerList[i]); } //写数据 for (int i = 0; i < workList.Count; i++) { NPOI.SS.UserModel.IRow row3 = sheet.CreateRow(i + 2); row3.CreateCell(0).SetCellValue(workList[i].name); row3.CreateCell(1).SetCellValue(workList[i].job); row3.CreateCell(2).SetCellValue(workList[i].age); } return book; } return null; }
相关推荐
用类Html中Css的方式设置C# 使用Npoi生成Excel的单元格格式.
本文实例讲述了C#基于NPOI生成具有精确列宽行高的Excel文件的方法,是非常具有实用价值的技巧分享给大家供大家参考。具体方法如下:。 一、前言 NPOI是操作Excel的神器,导出导入快如闪电, 但是SetColumnWidth函数...
内容概要:本资源介绍了如何从...阅读建议:此资源以如何读取Excel数据,将Excel数据转换为Datatable格式,然后将datatable导入Mysql数据库 ,同时还介绍了如何将Datatable数据生成Excel表格,及相关NPOI操作Excel例子
NPOI 插件在 Unity C#中生成 Excel文件 使用介绍博客地址在https://blog.csdn.net/weixin_41717258
C# 用NPOI导出多个sheet页的Excel,sheet页名称可以自定义
简单,易懂的ASP.NET Core NPOI导出复杂Word、Excel和Excel数据导入示例讲解
利用NPOI类动态生成Excel表格,解决了服务器没有安装office而不能生成Excel的问题。
由于项目需求,需要根据现有的word模板,进行批量生成word报表,为了方便,选用的是 NPOI (NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目)来实现。本次用的版本是NPOI 2.3.0.0,版本不同写法会有...
自己写的写Excel的一个小测试程序,已经测试过可用,使用NPOI和ClosedXML将数据写入Excel表格,电脑无需安装Microsoft Office即可使用,并且在写入速度上有很大的提升。
NPOI.DLL 复杂Excel 生成Excel 读取Excel NPOI实例代码
C# 将Excel表格转成图片并保存源码,本人已成功测试,可以成功转换并保存,代码简明!
使用C#和Excel进行报表开发,生成统计图(Chart)
Winform中实现Excel导入、表格展示、多选获取值、生成二维码、打印流程示例代码
前言 c#做winform程序要求生成并打印Excel报告,为了不安装Office相应组件,我选择了NPOI来生成Excel报告,用winform的PrintDocument控件来触发打印操作,而难点在于如何将excel转换成...用npoi生成Excel =》 用spire.x
为什么要使用NPOI导出Excel? 一、解决传统操作Excel遇到的问题: 如果是.NET,需要在服务器端装Office,且及时更新它,以防漏洞,还需要设定权限允许.NET访问COM+,如果在导出过程中出问题可能导致服务器宕机。...
组件主要功能为生成Excel表,不需要安装office组件。 组件使用NPOI最新版本,优化了NPOI支持表格宽度自适应(支持中文宽度自适应)。 如需在IIS下运行IIS要求IIS6.0以上(支持.net),应用程序池中.NET Framework需要...
项目中前端采用的Element UI 框架, 远程数据请求,使用的是axios,后端接口框架采用的asp.net webapi,数据导出成Excel采用NPOI组件。其业务场景,主要是列表页(如会员信息,订单信息等)表格数据导出,如表格数据...
POI使用excel模板循环输出行到文件并导出的一个小例子
读取excel表格中的数据, 将数据转换成datatable, 用模板新建word文档 每一行excel数据,用word模板生成一个报告文档。 向报告中插入图片。图片存放在固定文件夹下,采用jpg格式,按建筑编号命名...
操作NOPI导入/导出/下载EXCEL,在WEB生成TABLE预览数据