NPOI--------------.Net操作Excel初步使用(导出)
背景
因公司项目需要添加数据导出功能故此添加,找了几种方式发现该方式具有 无需依赖本机安装office环境,使用灵活等优点故采用此方式。
安装
Nuget 直接安装NPOI即可
使用方式
1.根据需要使用2003或者2007的不同选择不同创建操作对象
IWorkbook fileWorkbook;
try
{
fileWorkbook = new XSSFWorkbook();
}
catch
{
fileWorkbook = new HSSFWorkbook();
}
2.Excel的操作必须要建立在Sheet的基础上 所以需要先建立一个Sheet
ISheet sheet = fileWorkbook.CreateSheet("Sheet1") as ISheet;
3.根据需要 可以设置列宽
sheet.SetColumnWidth(, * );//设置宽度首列
其中 第一个参数为列索引 第二个参数为字符数 例子代表允许显示50个字符 如100字符 则为100* 256
4.创建行
IRow row = sheet.CreateRow(rowIndex);
注: 行宽度直接用row实例即可修改 如:row.Height=30 * 20;
5.创建单元格
ICell cellTitle = row.CreateCell();
cellTitle.SetCellValue($"销售汇总({StartDate}至{EndDate})");
注:
1.0为列索引
2.第二行为赋值方式展示
6.设置居中
//设置单元格格式 居中
ICellStyle cellstyle = fileWorkbook.CreateCellStyle();
cellstyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
cellstyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellTitle.CellStyle = cellstyle;
直接赋值到所在单元格cellStyle属性即可
7.合并单元格
sheet.AddMergedRegion(new CellRangeAddress(, , , ));//合并单元格 0行0列到0行5列
参数从左到右分别为 起始行号 结束行号 起始列号 结束列号
8.保存到文件
public string OutputClient(IWorkbook fileWorkbook)
{
//转为字节数组
MemoryStream stream = new MemoryStream();
fileWorkbook.Write(stream);
var buf = stream.ToArray();
var path = Path.Combine(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "Export");
string fileName = Path.Combine(path, $"{DateTime.Now.ToString("yyyyMMddHHmmssfff")}.xls");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
//保存为Excel文件
using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write))
{
fs.Write(buf, , buf.Length);
fs.Flush();
}
return fileName;
}
保存文件方法
这里提供一个通用的保存方法 保存到exe 文件目录下的Export 文件夹 没有改文件夹会自动创建 文件名为日期到毫秒
NPOI--------------.Net操作Excel初步使用(导出)的更多相关文章
- ASP.NET使用NPOI加载Excel模板并导出下载
1.为什么要使用NPOI导出Excel? 一.解决传统操作Excel遇到的问题: 如果是.NET,需要在服务器端装Office,且及时更新它,以防漏洞,还需要设定权限允许.NET访问COM+,如果在导 ...
- POI操作Excel导入和导出
Apache的POI组件是Java操作Microsoft Office办公套件的强大API,当中对Word,Excel和PowperPoint都有支持,当然使用较多的还是Excel.由于Word和Po ...
- asp.net(C#)之NPOI"操作Excel
1.首先到网上下载"NPOI.DLL".引用. 2.新建一个操作类"ExcelHelper.cs": using System.Collections.Gene ...
- C#开发之基于NPOI的操作Excel开发体验
最近遇到一个数据导入的需求,语言是.net framework 4.7的C#.但是,这次主要探讨NPOI的体验,原则就是向前兼容.所以采用.xls的支持.网上的资料,我稍微整合了一些. #1 单元格下 ...
- C# 之 用NPOI类库操作Excel
1.需引用以下命名空间: using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.HPSF; using NPOI.HSSF.Ut ...
- POI操作Excel(批量导出数据/下载excel)
目录 1.第一个demo:创建工作簿,创建sheet页,创建单元格 2.创建一个时间格式的单元格 3.遍历工作簿的行和列并获取单元格内容 4.文本提取 5.单元格对齐方式 ...
- NPOI简单操作excel
本文仅当是个记录文件,仅供初学者参考. 首先得using几个npoi的空间名如下: using NPOI.HSSF.UserModel;using NPOI.HSSF.Util;using NPOI. ...
- [Excel]C#操作Excel(导入导出)
/// <summary> /// 读取Excel文档 /// </summary> /// <param name="Path">文件名称&l ...
- NPOI读取操作excel
.读取using (FileStream stream = new FileStream(@"c:\客户资料.xls", FileMode.Open, FileAccess.Rea ...
随机推荐
- bzoj2038 小Z的袜子(hose)——莫队算法
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2038 就是莫队算法: 先写了个分块,惨WA: #include<iostream> ...
- Nvidia GPU 算力查询
GPU Compute Capability Tesla K80 3.7 Tesla K40 3.5 Tesla K20 3.5 Tesla C2075 2.0 Tesla C2050/C2070 2 ...
- Gym 100548A Built with Qinghuai and Ari Factor (水题)
题意:给定 n 个数,问是不是全是3的倍数. 析:略. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") ...
- linux文件名乱码时删除或改名的方式(转载)
转自:http://www.linuxsa.cn/when-linux-file-name-topsy-turvy-deleted-or-renamed.html linux文件名乱码时删除或改名的方 ...
- J201700525-hm
スケルトン 骨組み(ほねぐみ) 骨架 リソース 资源
- bzoj 4898: [Apio2017]商旅【Floyd+分数规划+二分】
其实并不会分数规划 因为要最大化 ans=总收益/总路程 ,所以考虑二分答案,找到一条 ans<=总收益/总路程 的回路.先预处理出d(i,j)为(i,j)最短路,w(i,j)为在i买某个物品在 ...
- [App Store Connect帮助]八、维护您的 App(3)将 App 恢复至 App Store
如果您已将 App 从 App Store 中移除,之后创建了该 App 的一个新版本,那么即使新版本被“App 审核”批准,App 状态也仍会是“被开发者下架”.若要发布新版本,您必须首先将其恢复至 ...
- vultr 购买vps
基本安装转自:https://github.com/uxh/shadowsocks_bash/wiki/Vultr%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B 连接 Vul ...
- 《Windows核心编程系列》十三谈谈在应用程序中使用虚拟内存
在应用程序中使用虚拟内存 Windows提供了以下三种机制对内存进行操控: 一:虚拟内存.最适合来管理大型对象数据或大型结构数组. 二:内存映射文件.最适合用来管理大型数据流,以及在同一机 器上运行的 ...
- HDU 6096 树套树
思路: 网上的题解有AC自动机的,有trie树的,还有(乱搞?)的 首先把输入的那n个串按照字典序排序, 把n个串翻转以后再按照字典序排序 这样我们发现, 查的前缀在字典序排序后是一段区间, 查的后缀 ...