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 ...
随机推荐
- bzoj4196 [Noi2015]软件包管理器——树链剖分
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4196 树链剖分. 代码如下: #include<iostream> #inclu ...
- Velocity魔法堂系列一:入门示例(转)
Velocity魔法堂系列一:入门示例 一.前言 Velocity作为历史悠久的模板引擎不单单可以替代JSP作为Java Web的服务端网页模板引擎,而且可以作为普通文本的模板引擎来增强服务端程序文本 ...
- codeforces912E(折半搜索+双指针+二分答案)
E. Prime Gift E. Prime Gift time limit per test 3.5 seconds memory limit per test 256 megabytes inpu ...
- 洛谷P3246 [HNOI2016]序列
传送门 题解 //minamoto #include<iostream> #include<cstdio> #define ll long long using namespa ...
- Windows下安装Ubuntu16.04双系统
ROS需要在Ubuntu系统上开发,虚拟机跑Ubuntu开发ROS容易出现各种各样的问题,所以需要安装Ubuntu16.04双系统.笔者也是一步步按着网上的帖子来,由于网上的教程都不是最新的而且有的也 ...
- “玲珑杯”第七届郑州轻工业学院ACM程序设计大赛 ------- D:社交网络
题目链接: http://acm.zzuli.edu.cn/problem.php?cid=1099&pid=3 题目大意: 国语题目,题意显而易见, 解题思路: 只需要对每一个节点进行假设, ...
- DFS Codeforces Round #306 (Div. 2) B. Preparing Olympiad
题目传送门 /* DFS: 排序后一个一个出发往后找,找到>r为止,比赛写了return : */ #include <cstdio> #include <iostream&g ...
- C#中实现C++中的友元类
最近做一个小程序,一个类A(负责显示处理)需要大量调用类B(负责数据处理)的函数,我最先想到的C++中的友元概念,因为类B中的这些函数并不希望public,它只是允许类A调用监测. 网上搜索了一下,没 ...
- Oracle分区表例子
分区表 Oracle提供的分区方法有以下几种. 1.范围分区(range) 范围分区是应用范围比较广的表分区方式,它是以列的值的范围来作为分区的划分条 件,将记录存放到列值所在的 range分区中. ...
- jQuery相关知识总结
1 encodeURIComponent(city)处理js传值乱码问题 2 总体概述 以后项目如果没有特殊情况,一般采用jQuery作为最基础的公共底层库. 另外对于前端的javascript相关的 ...