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表头的解析,写得不好,感谢园友们的支持~~~ 今天再简单讲诉一下另一 ...
随机推荐
- Gin-Go学习笔记八:Gin-Web框架 常用的包
常用的包 1> 在java,.net,php,node.js等语言常常会使用到包的概念.包的使用,可以加快项目的进度的开发,以及更好的实现项目的效果.我在网上查到了包的作用如下: 1.包 ...
- 【转】PHP利用Apache、Nginx的特性实现免杀Webshell
转载备忘: get_defined_vars().getallheaders()是两个特性函数,我们可以通过这两个函数来构造我们的webshell. 前几天看到的,一直忘记写,填坑. 环境 函数 用法 ...
- bugku——普通的二维码(进制转换)
题目地址:http://ctf.bugku.com/files/5e480ecb178711e82bc847a208e15b32/misc80.zip 就一张二维码图片,用一些在线工具识别是乱码,用Q ...
- APS助众生药业突破运营管理瓶颈
众生药业一直致力于为了世界提供世界级的产品及服务,成立以来公司先后实施了ERP系统,CRM系统,WMS系统,OA系统,精益生产,朝着行业信息化水平领先的目标迈进. 但近年随着业务量的不断扩大,仅仅拥有 ...
- C# Form 实现桌面弹幕
使用C# Form 简单的实现了弹幕效果 0. 源代码 : https://github.com/ping9719/-desktop-barrage- 1.创建一个Form 设置 2.添加一个计时器 ...
- cookie跨域解决方案
cookie的名/值对中的值不允许出现分号.逗号和空白符,因此在设置cookie前要用encodeURIComponent()编码,读取时再用decodeURIComponent()解码. cooki ...
- 将积累多年的java学习资料,pdf文档给大家分享一下,比如《大话设计模式》《算法》《Linux私房菜》等等
话不多说,资料目录如下,需要的拿走,下载的同时别忘了点下推荐. 需要的点下面链接,到小编网盘进行下载: 2-大话设计模式.pdf 链接:https://pan.baidu.com/s/1b05puNO ...
- Nginx应用详解及配置
一.Nginx简介 概述:Nginx是一款由俄罗斯开发的开源的高性能HTTP服务器和反向代理服务器,同时支持IMAP/POP3/SMTP代理服务,其性能优势着为显著,官网上称:单台nginx服务器可以 ...
- 重新编译kubeadm,修改默认证书时间
参考 kubeadm alpha certs renew Kubeadm1.14 证书调整 kubeadm 部署的 kubernetes 集群,默认的证书有效时间是1年,需要每年手工更新. 1. 重新 ...
- 接口自动化--数据驱动(ddt)
上次我们提到了unittest单元测试框架,运用单元测试框架unittest进行编写测试用例 但是遇到了一个问题,就是难道我一个测试点中有多个测试用例,我要每一个都要去编写一条测试用例嘛?这实在是太复 ...