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 的使用的更多相关文章

  1. .NET Core 首例 Office 开源跨平台组件(NPOI Core)

    前言 最近项目中,需要使用到 Excel 导出,找了一圈发现没有适用于 .NET Core的,不依赖Office和操作系统限制的 Office 组件,于是萌生了把 NPOI 适配并移植到 .NET C ...

  2. 免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)

    很多的软件项目几乎都包含着对文档的操作,前面已经介绍过两款操作文档的组件,现在介绍一款文档操作的组件NPOI. NPOI可以生成没有安装在您的服务器上的Microsoft Office套件的Excel ...

  3. C#通过NPOI操作Excel

    参考页面: http://www.yuanjiaocheng.net/webapi/create-crud-api-1-post.html http://www.yuanjiaocheng.net/w ...

  4. 基于NPOI的Excel数据导入

    从Excel导入数据最令人头疼的是数据格式的兼容性,特别是日期类型的兼容性.为了能够无脑导入日期,折腾了一天的NPOI.在经过测试确实可以导入任意格式的合法日期后,写下这篇小文,与大家共享.完整代码请 ...

  5. NPOI导出Excel

    using System;using System.Collections.Generic;using System.Linq;using System.Text;#region NPOIusing ...

  6. 通过NPOI操作Excel

    最近在做的一个项目中需要生成Excel,通过学习使用NPOI实现了相关需求,写了一个简便操作的类,记录如下: public class NPOIHelperForExcel { #region exc ...

  7. .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 ...

  8. 转载 NPOI Excel 单元格背景颜色对照表

    NPOI Excel 单元格颜色对照表,在引用了 NPOI.dll 后可通过 ICellStyle 接口的 FillForegroundColor 属性实现 Excel 单元格的背景色设置,FillP ...

  9. 转载 NPOI.dll 用法。单元格,样式,字体,颜色,行高,宽度。读写excel

    我用的版本是1.25的.每个版本用法有一点不同 using System; using System.Collections.Generic; using System.ComponentModel; ...

  10. NPOI操作EXCEL(六)——矩阵类表头EXCEL模板的解析

    哈哈~~~很高兴还活着.总算加班加点的把最后一类EXCEL模板的解析做完了... 前面几篇文章介绍了博主最近项目中对于复杂excel表头的解析,写得不好,感谢园友们的支持~~~ 今天再简单讲诉一下另一 ...

随机推荐

  1. 实验吧——你真的会PHP吗?(intval范围 php中\00的利用)

    题目地址:http://ctf5.shiyanbar.com/web/PHP/index.php 抓包在header中发现提示 访问得到源码 <?php $info = "" ...

  2. JVM Code Cache空间不足,导致服务性能变慢

    本文阅读时间大约5分钟. 有业务反馈,线上一个应用运行了一段时间之后,在高峰期之后,突然发现处理能力下降,接口的响应时间变长,但是看Cat上的GC数据,一切都很正常. 通过跳板机上机器查看日志,发现一 ...

  3. 【spring data jpa】带有条件的查询后分页和不带条件查询后分页实现

    一.不带有动态条件的查询 分页的实现 实例代码: controller:返回的是Page<>对象 @Controller @RequestMapping(value = "/eg ...

  4. day 46

    目录 CSS样式操作 给字体设置长宽 字体颜色 语义 背景图片 边框 display 盒子模型 浮动(**************) 浮动带来的影响 clear overflow溢出属性 定位 位置的 ...

  5. 交叉编译支持SVE ACLE的gcc

    最近在学习AArch64的SVE技术时,发现目前可以在网上找到的gcc版本都不支持SVE intrinsic方式调用,在看文档时发现,GCC要到2020年的GCC10时才会支持: 在github上看到 ...

  6. python常用库(转)

    转自http://www.west999.com/info/html/wangluobiancheng/qita/20180729/4410114.html Python常用的库简单介绍一下 fuzz ...

  7. 对NetBackup 问题进行故障排除的步骤

    错误消息通常是指出哪里出现故障的手段.如果在界面上没有看到错误消息,但仍怀疑有问题,请检查报告和日志. NetBackup提供了各种报告和日志记录工具, 这些工具可提供错误消息,直接为您指出解决方案. ...

  8. MySQL小测试(2)

    2.创建一个stu表,字段有:自增主键id,不为空姓名,默认值性别(枚举类型),无限制身高 create table stu( id int primary key auto_increment, n ...

  9. Android APK开发 Drawable文件夹下的自定义Drawable文件

    版本:2018/2/11 Drawable的分类 自定义Drawable SVG矢量图 个人总结的知识点外,部分知识点选自<Android开发艺术探索>-第六章 Drawable 1.Dr ...

  10. js数组sort()排序的问题

    最近跟自以为很了解的数组干上了,就像许多我们认知的东西一样,总以为自己很了解的东西,其实并不了解. var a=[12,4,1,43,5,3,52];  alert(a);   //源:12,4,1, ...