Npoi 的使用
npoi这个office写入,我个人有点不方便,但是因为需要使用所以不得不去用了。
原因:
1、 没文档
2、 网上的案例版本不同
3、 对于复杂列不好做处理
跟网上其他工具的对比,好处就是不需要依赖Microsoft的office一套组件就可以对excel进行写入和读取。
第一个核心就是IWorkbook对象
通过它可以操作两种格式的excel,一种是*.xls(HSSFWorkbook),一种是*.xlsx(XSSFWorkbook)
IWorkbook wk = new HSSFWorkbook(); IWorkbook wk = new XSSFWorkbook();
第二个的核心就是Isheet对象
通过它可以操作两种格式的excel的工作簿,一种是*.xls(HSSFSheet),一种是*.xlsx(XSSFSheet)
ISheet sheet = wk.CreateSheet(“”);
或者是获取已有的工作簿
ISheet sheet = wk.GetSheetAt(int indx)
Isheet对象主要负责excel的工作簿
第三个核心就是Irow/Icell对象
IRow对象可以实现对列的控制
ICell对象可以实现对行单元格的控制
IRow需要通过工作簿进行新增
IRow row = sheet.CreateRow(int indx);
ICell需要通过IRow明确列的位置才能对行的单元格进行设置,单元格只能通过IRow来创建
ICell cell = row.CreateCell(int indx);
三个核心能够对excel进行基本的写入的操作
案例:
IWorkbook wk = null;
ISheet sheet = null;
//获取文件格式
string extension = Path.GetExtension(filePath);
//根据不同版本的excel格式获取不同的写入对象
if (extension.Equals(".xls"))
{
wk = new HSSFWorkbook();
}
else
{
wk = new XSSFWorkbook();
}
//创建Excel工作簿
sheet = wk.CreateSheet("new sheet");
//创建指定列
IRow row = sheet.CreateRow(int indx)
//创建指定行
ICell cell = row.CreateCell(int indx)
//将制作好的excel生成到系统上
MemoryStream ms = new MemoryStream();
wk.Write(ms);
using(varfs=newFileStream(filePath,FileMode.Create,FileAccess.Write,FileShare.None,4096,true))
{
byte[] b = ms.ToArray();
await fs.WriteAsync(b, 0, b.Length);
ms.Close();
fs.Flush();
fs.Close();
}
Npoi 的使用的更多相关文章
- .NET Core 首例 Office 开源跨平台组件(NPOI Core)
前言 最近项目中,需要使用到 Excel 导出,找了一圈发现没有适用于 .NET Core的,不依赖Office和操作系统限制的 Office 组件,于是萌生了把 NPOI 适配并移植到 .NET C ...
- 免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)
很多的软件项目几乎都包含着对文档的操作,前面已经介绍过两款操作文档的组件,现在介绍一款文档操作的组件NPOI. NPOI可以生成没有安装在您的服务器上的Microsoft Office套件的Excel ...
- C#通过NPOI操作Excel
参考页面: http://www.yuanjiaocheng.net/webapi/create-crud-api-1-post.html http://www.yuanjiaocheng.net/w ...
- 基于NPOI的Excel数据导入
从Excel导入数据最令人头疼的是数据格式的兼容性,特别是日期类型的兼容性.为了能够无脑导入日期,折腾了一天的NPOI.在经过测试确实可以导入任意格式的合法日期后,写下这篇小文,与大家共享.完整代码请 ...
- NPOI导出Excel
using System;using System.Collections.Generic;using System.Linq;using System.Text;#region NPOIusing ...
- 通过NPOI操作Excel
最近在做的一个项目中需要生成Excel,通过学习使用NPOI实现了相关需求,写了一个简便操作的类,记录如下: public class NPOIHelperForExcel { #region exc ...
- .Net开源Excel、Word操作组件-NPOI、EPPlus、DocX
一.NPOI 简介: NPOI is the .NET version of POI Java project. With NPOI, you can read/write Office 2003/2 ...
- 转载 NPOI Excel 单元格背景颜色对照表
NPOI Excel 单元格颜色对照表,在引用了 NPOI.dll 后可通过 ICellStyle 接口的 FillForegroundColor 属性实现 Excel 单元格的背景色设置,FillP ...
- 转载 NPOI.dll 用法。单元格,样式,字体,颜色,行高,宽度。读写excel
我用的版本是1.25的.每个版本用法有一点不同 using System; using System.Collections.Generic; using System.ComponentModel; ...
- NPOI操作EXCEL(六)——矩阵类表头EXCEL模板的解析
哈哈~~~很高兴还活着.总算加班加点的把最后一类EXCEL模板的解析做完了... 前面几篇文章介绍了博主最近项目中对于复杂excel表头的解析,写得不好,感谢园友们的支持~~~ 今天再简单讲诉一下另一 ...
随机推荐
- 实验吧——你真的会PHP吗?(intval范围 php中\00的利用)
题目地址:http://ctf5.shiyanbar.com/web/PHP/index.php 抓包在header中发现提示 访问得到源码 <?php $info = "" ...
- JVM Code Cache空间不足,导致服务性能变慢
本文阅读时间大约5分钟. 有业务反馈,线上一个应用运行了一段时间之后,在高峰期之后,突然发现处理能力下降,接口的响应时间变长,但是看Cat上的GC数据,一切都很正常. 通过跳板机上机器查看日志,发现一 ...
- 【spring data jpa】带有条件的查询后分页和不带条件查询后分页实现
一.不带有动态条件的查询 分页的实现 实例代码: controller:返回的是Page<>对象 @Controller @RequestMapping(value = "/eg ...
- day 46
目录 CSS样式操作 给字体设置长宽 字体颜色 语义 背景图片 边框 display 盒子模型 浮动(**************) 浮动带来的影响 clear overflow溢出属性 定位 位置的 ...
- 交叉编译支持SVE ACLE的gcc
最近在学习AArch64的SVE技术时,发现目前可以在网上找到的gcc版本都不支持SVE intrinsic方式调用,在看文档时发现,GCC要到2020年的GCC10时才会支持: 在github上看到 ...
- python常用库(转)
转自http://www.west999.com/info/html/wangluobiancheng/qita/20180729/4410114.html Python常用的库简单介绍一下 fuzz ...
- 对NetBackup 问题进行故障排除的步骤
错误消息通常是指出哪里出现故障的手段.如果在界面上没有看到错误消息,但仍怀疑有问题,请检查报告和日志. NetBackup提供了各种报告和日志记录工具, 这些工具可提供错误消息,直接为您指出解决方案. ...
- MySQL小测试(2)
2.创建一个stu表,字段有:自增主键id,不为空姓名,默认值性别(枚举类型),无限制身高 create table stu( id int primary key auto_increment, n ...
- Android APK开发 Drawable文件夹下的自定义Drawable文件
版本:2018/2/11 Drawable的分类 自定义Drawable SVG矢量图 个人总结的知识点外,部分知识点选自<Android开发艺术探索>-第六章 Drawable 1.Dr ...
- js数组sort()排序的问题
最近跟自以为很了解的数组干上了,就像许多我们认知的东西一样,总以为自己很了解的东西,其实并不了解. var a=[12,4,1,43,5,3,52]; alert(a); //源:12,4,1, ...