NPOI的基本使用参照:https://www.cnblogs.com/lixiaobin/p/NPOI.html

既存文档读取修改方法

*既存Excel文档修改保存注意使用FileMode.Create,不然文档将会被损害无法打开。

*Excel文档不能有开启共享,不能有Object对象存在,否则重写的Excel文档会被损害无法打开。

            IWorkbook book = null;
using (var file = File.Open(path, FileMode.OpenOrCreate, FileAccess.Read))
{
book = WorkbookFactory.Create(file);
file.Close();
} ISheet outputSheet = book?.GetSheet(sheetName) ?? book?.CreateSheet(sheetName); // 修改数据
// 省略 using (var file = new FileStream(path, FileMode.Create, FileAccess.Write))
{
book.Write(file);
file.Close();
}

单元格复制方法

如果你想将一个Excel文档的值复制到另一个Excel文档,格式设置需要注意使用CloneStyleFrom方法。(最多只能创建4000个CellStyle)

            var sheet = book.CreateSheet("test");
var row = sheet.CreateRow(); var newCell=row.CreateCell();
newCell.SetCellValue(oldCell.StringCellValue); var newCellStyle = book.CreateCellStyle();
newCellStyle.CloneStyleFrom(oldCell.CellStyle); newCell.CellStyle = newCellStyle;

颜色自定义

如果NPOI自带的颜色不满足要求,可以自定义颜色。HSSFWorkbook的时候只能替换设置,XSSFWorkbook的场合是可以添加新的色调。

            var style = workbook.CreateCellStyle();
style.BorderBottom = BorderStyle.Thin;
style.BorderLeft = BorderStyle.Thin;
style.BorderRight = BorderStyle.Thin;
style.BorderTop = BorderStyle.Thin; var sysColor = Color.FromArgb(, , );
if (workbook is HSSFWorkbook)
{
style.FillForegroundColor = IndexedColors.DarkBlue.Index;
((HSSFWorkbook)workbook).GetCustomPalette().SetColorAtIndex(IndexedColors.DarkBlue.Index, sysColor.R, sysColor.G, sysColor.B);
}
else
{
((XSSFCellStyle)style).SetFillForegroundColor(new XSSFColor(sysColor));
}

C#使用NPOI读写Excel的注意事项的更多相关文章

  1. NPOI读写Excel

    1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 2.NPOI是POI的C#版本,NPOI的行和列的index都是从0开始 ...

  2. 【转】NPOI读写Excel

    1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 2.NPOI是POI的C#版本,NPOI的行和列的index都是从0开始 ...

  3. NPOI读写Excel【转载】

    参考示例:https://www.cnblogs.com/luxiaoxun/p/3374992.html 感谢! 1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表): ...

  4. 使用NPOI读写Excel、Word

    NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 ...

  5. C#使用NPOI读写excel

    本帖内容来自网络+自己稍作整理,已找不到原贴,侵删 个人比较习惯用NPOI操作excel,方便易理解.在宇宙第一IDE(笑)——VS2017中插入NPOI就很方便: 首先安装NPOI: 然后在.cs文 ...

  6. NPOI读写Excel组件封装Excel导入导出组件

    后台管理系统多数情况会与Excel打交道,常见的就是Excel的导入导出,对于Excel的操作往往是繁琐且容易出错的,对于后台系统的导入导出交互过程往往是固定的,对于这部分操作,我们可以抽离出公共组件 ...

  7. NPOI 读写Excel

    实例功能概述: 1.支持Excel2003以及2007 2.支持Excel读取到DataTable(TableToExcel) 3.支持DataTable导出到Excel(TableToExcel) ...

  8. Unity3d 使用NPOI读写Excel 遇到的问题

    开发环境:unity5.3  NPOI(.net 2.0版  http://npoi.codeplex.com/) 运行环境:PC版, 其他平台没有测试 先上效果图: 实现步骤: 1.新建一个Exce ...

  9. 用插件NPOI读写excel

    1.用插件NPOIusing NPOI.SS.UserModel;using NPOI.XSSF.UserModel;using NPOI.HSSF.UserModel; public class E ...

随机推荐

  1. RabbitMQ,为应对消息从发送到消费,各个环节消息丢失的解决方案

      1.发送方   为保证消息到达exchange,在这个过程中不丢失.  用事务或者发送方确认机制  见<RabbitMQ实战指南>4.8节 2.为保证消息不会因为到达exchange后 ...

  2. Python3.x - 字符串

    Python3 字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号( ' 或 " )来创建字符串. var1 = 'hello world' var2 = "he ...

  3. There is no getter for property named 'user' in 'class com.jyr.wh.domain.User' 异常

    今天在使用mybatis时,出现了一个问题:There is no getter for property named 'user' in 'class com.jyr.wh.domain.User, ...

  4. SVG分组和引用

    这是我在掘金中的文章链接地址:https://juejin.im/post/5bcfe0fa51882577e3760467

  5. Unity3D实现多语言切换

    项目现在需要做多语言切换部分,下面是一个基本多语言切换实现 1. 首先建立一个类来存放字符,其中包括一个静态方法来根据Key和语言类型获取对应字符 using System.Collections; ...

  6. php7编译安装-php-fpm.service

    [Unit]Description=php-fpm - Hypertext PreprocessorAfter=network.target remote-fs.target nss-lookup.t ...

  7. python中sys模块之输入输出错误流

    import sys sys.stdout.write("msg")   # 控制台白色字体打印 普通输出流 sys.stderr.write("msg") # ...

  8. 脚手架方式搭建vue项目

    一.首先基于node环境,我想应该每一个前端开发者都应该懂的吧,这里安装运行什么的就不多说了. 搭建成功之后在文件夹的任何(如果是全局的话)一个位置都能按住shift键同时鼠标右键在工具框中就会出来一 ...

  9. Python 3.6print 出现 SyntaxError: invalid syntax

    开始使用sublime学习python,编写代码如图 Ctrl+B运行以后,报错   SyntaxError: invalid syntax 百度查询以后,大部分的回答都是说,python在3.0以后 ...

  10. vue+axios跨域解决方法

    通过这种方法也可以解决跨域的问题. 使用http-proxy-middleware 代理解决(项目使用vue-cli脚手架搭建) 例如请求的url:“http://f.apiplus.cn/bj11x ...