此方式会通过3篇文章将关于Excel的一些日常操作给实现出来,分别为:读取、写入、格式设置等;

本篇要记录的是使用NPOI设置Excel的样式。

先来看下我们的数据源

现在我们要将他导出到Excel中,并设置一些样式,根据以下代码,我们最终代码实现的效果如下:

为什么我要实现这么丑的操作呢?毕竟我想介绍的只是功能。。。

实现功能:

使用NPOI的方式实现Excel颜色、字体、公式,图片等操作

开发环境:

开发工具: Visual Studio 2013

.NET Framework版本:4.5

实现代码:

首先需要导入以下命名空间:

using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;
using System.IO;
DataTable dt = dataGridView1.DataSource as DataTable;//指定excel所在路径string excelPath = "d:\\2.xlsx";//以文件流创建excel文件FileStream fs = new FileStream(excelPath, FileMode.OpenOrCreate, FileAccess.ReadWrite);//Offic2007以上IWorkbook workbook = new XSSFWorkbook();//Offic2007以下if (excelPath.ToLower().EndsWith(".xls")){workbook = new HSSFWorkbook();}//创建一个sheet页ISheet sheet = workbook.CreateSheet("sheet1");//创建第一行数据并将表头写进去IRow rowHead = sheet.CreateRow(0);for (int j = 0; j < dt.Columns.Count; j++){rowHead.CreateCell(j).SetCellValue(dt.Columns[j].ColumnName);}//将数据逐行写入for (int i = 0; i < dt.Rows.Count; i++){IRow row = sheet.CreateRow(i + 1);for (int j = 0; j < dt.Columns.Count; j++){row.CreateCell(j).SetCellValue(Convert.ToString(dt.Rows[i][j]));}}//创建样式ICellStyle style = workbook.CreateCellStyle();//设置单元格居中style.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;style.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;//新建一个字体样式对象IFont font = workbook.CreateFont();//设置字体大小font.FontHeightInPoints = 14;//设置字体加粗font.IsBold = true;//设置字体颜色font.Color = HSSFColor.Red.Index;style.SetFont(font);//设置行的高度rowHead.Height = 800;//设置列的宽度sheet.SetColumnWidth(0, 5000);//设置单元格样式rowHead.GetCell(2).CellStyle = style;//设置单元格合并//CellRangeAddress参数分别为:起始行,结束行,起始列,结束列//索引从0开始sheet.AddMergedRegion(new CellRangeAddress(4, 5, 0, 2));//设置单元格公式ICell cell2 = sheet.CreateRow(dt.Rows.Count + 1).CreateCell(2);cell2.CellFormula = "C2+C3";/*以下代码可判断单元格格式是否为公式if (rowHead.GetCell(1).CellType == CellType.Formula){//判断单元格值是什么类型if (HSSFDateUtil.IsCellDateFormatted(rowHead.GetCell(1))){}}*///读取图片转为byteImage img = Image.FromFile("d:\\c.png");MemoryStream ms = new MemoryStream();img.Save(ms, ImageFormat.Png);byte[] b = ms.ToArray();int picIndex=workbook.AddPicture(b, PictureType.PNG);IDrawing patriarch = sheet.CreateDrawingPatriarch();//在第9行第5列插入大小为 高8行宽6列的图片(索引从0开始)XSSFClientAnchor anchor = new XSSFClientAnchor{Row1 = 8,Row2 = 16,Col1 = 4,Col2 = 10};patriarch.CreatePicture(anchor, picIndex);workbook.Write(fs);fs.Close(); workbook.Close();

至此,关于NPOI操作Excel的常用功能就差不多了,大家可以尝试下应用到日常办公中,会方便很多我们一些日常繁琐的工作。。。

由简入繁,拿来即用

更多精彩,请关注微信公众号:

C# 操作Excel文件之NPOI (三)相关推荐

  1. hssfwork 导出excel 文件已损坏_C# NPOI 操作EXCEL文件的读取和导出

    在实际项目中有很多场景遇到需要操作EXCEL文件,而常用到的库就有NPOI:NPOI是开源的POI 项目的.NET版,POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目, ...

  2. C# 使用NPOI 操作 Excel 文件

    C# 使用NPOI 操作 Excel 文件 使用 创建 Excel 文件 创建 XLS 文件 创建 XLSX 文件 合并单元格 设置单元格格式 对齐 字体 边框 填充 保护 数字 下拉框 直接传递下拉 ...

  3. C#在客户端和服务端操作Excel文件

    一.在客户端把数据导入到Excel文件步骤 1.创建Excel application对象,打开或生成Excel文件 //服务端创建StringBuilder对象     System.Text.St ...

  4. C#操作Excel文件(转)

    摘要:本文介绍了Excel对象.C#中的受管代码和非受管代码,并介绍了COM组件在.net环境中的使用. 关键词:受管代码:非受管代码:Excel对象:动态连接库 引言 Excel是微软公司办公自动化 ...

  5. java excel导出2007_java操作excel文件,实现批量导出,和导入

    一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Exc ...

  6. csv文件怎么转成excel_Python操作Excel文件(1):花式大师pyexcel

    本文共2900余字,预计阅读时间12分钟,本文知乎连接:Python操作Excel文件(1):花式大师pyexcel,本文同步发布于silaoA的博客和微信公众号平台. 关注学习了解更多的Cygwin ...

  7. Java生成和操作Excel文件

    JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过 ...

  8. c语言从excal读取字符串,C语言操作EXCEL文件(读写)

    C语言操作EXCEL文件(读写) 本文主要介绍通过纯C语言进行EXCEL的读写操作:(修改时间2018.08.28,如果运行结果均是0,请看文章最后一节) C语言读操作 C语言写操作 在之前需要使用C ...

  9. C#使用oledb操作excel文件的方法

    本文实例讲述了C#使用oledb操作excel文件的方法.分享给大家供大家参考.具体分析如下: 不管什么编程语言都会提供操作Excel文件的方式,C#操作Excel主要有以下几种方式: 1.Excel ...

最新文章

  1. 七十五、React环境搭建,目录文件分析和JSX
  2. QT实现自定义3D材质
  3. 模意义下的FFT算法
  4. 秘罗地伤痕 -- 暂存小说草稿
  5. 计算机科学与技术 天涯,计算机科学与技术专业
  6. 全Flash网站和单个Flash作品制作的区别
  7. XJOI 3866 写什么名字好呢
  8. Python游戏开发入门2 壁球小游戏与图像的基本使用
  9. vm14远程连接服务器,VisualVM 远程连接服务器
  10. iPhone清理喇叭灰尘_厉害了!原来可以这样一键清理 iPhone 喇叭灰尘!
  11. 使用ENVI对遥感图像进行图像镶嵌、图像裁剪。
  12. the little Redis book
  13. 2014全国计算机等级考试四级数据库工程师考试大纲,全国计算机等级考试四级数据库工程师考试大纲...
  14. 被机器学习遗忘的大洲:非洲正尝试建立自己的“NeurIPS会议”
  15. 监控工具普罗米修斯(Prometheus)的介绍与安装
  16. 多线程因__lll_unlock_elision 导致core
  17. 中国篆刻艺术孙溟㠭篆刻作品
  18. python安装第三方库re_音频处理 windows10下python三方库librosa安装教程
  19. QuickFIX 源码分析
  20. iphone 越狱后

热门文章

  1. 教你快速将多个文件设置为与文件夹同名并排序
  2. 自研芯片vivo V1亮相vivo X70旗舰影像能力再升级
  3. 换行样式不要首行缩进_css样式控制首行缩进
  4. 上下拉电阻的左右和方法
  5. 前端 华为OBS 上传图片和查看图片
  6. 字符串相似算法之Soundex
  7. 诸葛亮草船借箭时,曹军当初为什么不放火箭?
  8. 监控视频压缩4—Fast ROI-Based HEVC Coding for Surveillance Videos
  9. 微信小程序仿抖音视频
  10. 30个 DotNet网站