##.Net Core Nopi 工具的使用

以下代码效果如图所示:

    public class OutputUtil{/// <summary>/// 将数据导出Excel中去,导出文件后缀名为.xlxs/// @author 王伟/// @weather 多云/// @date 2020-07-01 16:53/// @local 北京/// </summary>/// <param name="dataTable"></param>/// <param name="columns"></param>/// <returns></returns>public static Task<byte[]> OutputFile(DataTable dataTable, string sheetName){return Task.Run(() =>{var workbook = new XSSFWorkbook();ISheet sheet = workbook.CreateSheet(sheetName);//创建一个Sheet表IRow title = null,rows = null;for (int i = 1; i <= dataTable.Rows.Count + 1; i++){if (i - 1 == 0){//创建列title = sheet.CreateRow(0);ICell cell_0 = title.CreateCell(0);cell_0.CellStyle = GetCellStyle(workbook, GetFontStyle(workbook, "宋体", new XSSFColor(Color.Red), 10), new XSSFColor(Color.Blue), FillPattern.NoFill, new XSSFColor(Color.Green), HorizontalAlignment.Left, VerticalAlignment.None);cell_0.SetCellValue("序号");for (int c = 1; c <= dataTable.Columns.Count; c++){ICell cell = title.CreateCell(c);cell.CellStyle = GetCellStyle(workbook, GetFontStyle(workbook, "宋体", new XSSFColor(Color.Red), 10), new XSSFColor(Color.Blue), FillPattern.NoFill, new XSSFColor(Color.Green), HorizontalAlignment.Left, VerticalAlignment.None);cell.SetCellValue(dataTable.Columns[c - 1].ColumnName);}continue;}else{//创建行rows = sheet.CreateRow(i - 1);ICell cell_0 = rows.CreateCell(0);cell_0.CellStyle = GetCellStyle(workbook, GetFontStyle(workbook, "宋体", new XSSFColor(Color.Gray), 10), new XSSFColor(Color.Gray), FillPattern.NoFill, new XSSFColor(Color.Gray), HorizontalAlignment.Left, VerticalAlignment.None);cell_0.SetCellValue(i - 1);for (int j = 1; j <= dataTable.Columns.Count; j++){string obj = dataTable.Rows[i - 2][j - 1].ToString();ICell cell = rows.CreateCell(j);cell.CellStyle = GetCellStyle(workbook, GetFontStyle(workbook, "微软雅黑", new XSSFColor(Color.Red), 10), new XSSFColor(Color.Blue), FillPattern.NoFill, new XSSFColor(Color.Green), HorizontalAlignment.Left, VerticalAlignment.None);cell.SetCellValue(obj);}}}//列宽自适应,只对英文和数字有效for (int i = 0; i <= dataTable.Rows.Count; i++){sheet.AutoSizeColumn(i);}for (int columnNum = 0; columnNum <= dataTable.Rows.Count; columnNum++){int columnWidth = sheet.GetColumnWidth(columnNum) / 200;for (int rowNum = 1; rowNum <= sheet.LastRowNum; rowNum++){IRow currentRow;//当前行未被使用过if (sheet.GetRow(rowNum) == null){currentRow = sheet.CreateRow(rowNum);}else{currentRow = sheet.GetRow(rowNum);}if (currentRow.GetCell(columnNum) != null){ICell currentCell = currentRow.GetCell(columnNum);int length = Encoding.Default.GetBytes(currentCell.ToString()).Length;if (columnWidth < length){columnWidth = length;}}}sheet.SetColumnWidth(columnNum, columnWidth * 200);}byte[] buffer = new byte[1024 * 5];using (MemoryStream ms = new MemoryStream()){workbook.Write(ms);buffer = ms.ToArray();workbook = null;ms.Close();}return buffer;});}/// <summary>/// 获取单元格样式/// @author 王伟/// @date 2020-07-01 16:53/// @weather 多云/// @local 北京/// </summary>/// <param name="hssfworkbook">Excel操作类</param>/// <param name="font">单元格字体</param>/// <param name="fillForegroundColor">图案的颜色</param>/// <param name="fillPattern">图案样式</param>/// <param name="fillBackgroundColor">单元格背景</param>/// <param name="ha">垂直对齐方式</param>/// <param name="va">垂直对齐方式</param>/// <returns></returns>public static ICellStyle GetCellStyle(XSSFWorkbook hssfworkbook, IFont font, XSSFColor fillForegroundColor, FillPattern fillPattern, XSSFColor fillBackgroundColor, HorizontalAlignment ha, VerticalAlignment va){ICellStyle cellstyle = hssfworkbook.CreateCellStyle();cellstyle.FillPattern = fillPattern;cellstyle.Alignment = ha;cellstyle.VerticalAlignment = va;if (fillForegroundColor != null){cellstyle.FillForegroundColor = fillForegroundColor.Indexed;}if (fillBackgroundColor != null){cellstyle.FillBackgroundColor = fillBackgroundColor.Indexed;}if (font != null){cellstyle.SetFont(font);}//有边框cellstyle.BorderBottom = BorderStyle.Thin;cellstyle.BorderLeft = BorderStyle.Thin;cellstyle.BorderRight = BorderStyle.Thin;cellstyle.BorderTop = BorderStyle.Thin;return cellstyle;}/// <summary>/// 获取字体样式/// @author 王伟/// @date 2020-07-01 16:53/// @weather 多云/// @local 北京/// </summary>/// <param name="hssfworkbook">Excel操作类</param>/// <param name="fontname">字体名</param>/// <param name="fontcolor">字体颜色</param>/// <param name="fontsize">字体大小</param>/// <returns></returns>public static IFont GetFontStyle(XSSFWorkbook hssfworkbook, string fontfamily, XSSFColor fontcolor, int fontsize){IFont font1 = hssfworkbook.CreateFont();if (string.IsNullOrEmpty(fontfamily)){font1.FontName = fontfamily;}if (fontcolor != null){font1.Color = fontcolor.Indexed;}font1.IsItalic = false;font1.FontHeightInPoints = (short)fontsize;return font1;}}

其中涉及到表格字体、边框等的设置!欢迎评论点赞。

即使爬到最高的山上,一次也只能脚踏实地地迈一步。

.Net Core Nopi 工具的使用相关推荐

  1. 如何高效的编写与同步博客 (.NET Core 小工具实现)

    系列目录 [如何高效的编写与同步博客(一)- 编写 ] 如何高效的编写与同步博客(二)- 快速发布到多个渠道 一.前言 写博客,可以带给我们很多好处,比如可以让我们结识更多志同道合的人:在写博客过程中 ...

  2. 微软发布 .NET Core 卸载工具,适用于 Windows 和 Mac

    微软方面已经发布了一个 .NET Core 卸载工具(dotnet-core-uninstall),能够帮助开发人员通过整理系统中剩余的 SDK 和运行时来释放磁盘空间.目前,该工具已发布了适用于 W ...

  3. 一、Instrument之Core Animation工具

    一.Instrument 三个方法: (1).按下Command + I打开Instrument; (2).Xcode->product->profile; (3).Xcode->O ...

  4. 『.NET Core CLI工具文档』(二).NET Core 工具遥测(应用信息收集)

    说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:.NET Core Tools Telemetry 翻译:.NET Core 工具遥测(应用信息收集) .NET Cor ...

  5. .NET Core 开源工具 IPTools - 快速查询 IP 地理位置、经纬度信息

    快速查询IP信息,支持国内和国外IP信息查询,支持查询经纬度,地理位置最高支持到城市. 1. IPTools.China 快速查询中国IP地址信息,包含国家.省份.城市.和网络运营商.非中国IP只支持 ...

  6. .Net Core NOPI操作word(一)

    NOPI使用方式 1.安装nuget包 即可使用 Install-Package NPOI 一.创建word文档 //创建生成word文档 string path = "D:\\test.d ...

  7. ASP.NET Core 中文文档 第二章 指南(4.4)添加 Model

    原文:Adding a model 作者:Rick Anderson 翻译:娄宇(Lyrics) 校对:许登洋(Seay).孟帅洋(书缘).姚阿勇(Mr.Yao).夏申斌 在这一节里,你将添加一些类来 ...

  8. ubuntu 安装yum_如何在 Linux 中安装微软的 .NET Core SDK | Linux 中国

    本分步操作指南文章解释了如何在 Linux 中安装 .NET Core SDK 以及如何使用 .NET 开发出第一个应用程序.-- Sk致谢译自 | ostechnix.com 作者 | Sk译者 | ...

  9. [asp.net core]project.json(1)

    摘要 前面介绍了使用vs2015新建asp.net core web的内容,这篇文章学习下project.json文件的内容. project.json 原文:https://docs.microso ...

  10. 学会用core dump调试程序错误(转)

    前言 最近在项目中遇到大型程序出现SIGSEGV ,一直不知道用core dump工具来调试程序,花了近一周的时间,才定位问题,老大很生气,后果很严重,呵呵,事后仔细学习了这块的知识,了解一点core ...

最新文章

  1. Python基于聚类算法实现密度聚类(DBSCAN)计算
  2. 通过极简模拟框架让你了解ASP.NET Core MVC框架的设计与实现[上篇]
  3. linux shell sql赋值,Linux下shell执行SQL
  4. Python绘制直方图案例一则
  5. [转]Django REST framework 简介与中文教程
  6. LeetCode 654. Maximum Binary Tree最大二叉树 (C++)
  7. 第一模块·开发基础-第1章 Python基础语法
  8. 当我们谈论深度学习时,我们在谈论什么?
  9. k8s——Kubernetes配置yaml文件详解
  10. html查重报告转换,知网查重报告网页版如何转换成PDF和WORD?
  11. couchbase php,从PHP SDK设置后,Couchbase视图不会更新
  12. haproxy配置timeout
  13. rampUp时间 jmeter
  14. 程序员微信名昵称_微信名字大全
  15. Android驱动面阵相机,了解线阵相机与面阵相机的基本区别
  16. 台式计算机怎么加一个硬盘,台式机添加硬盘方法
  17. 【Windows】快捷添加鼠标右键的菜单项
  18. 高项_第八章项目质量管理
  19. Vue实现3D全景图,photo-sphere-viewer
  20. 软考学院九老师简介:国家软考(中高级认证)培训

热门文章

  1. html站点地图怎么做,sitemap网站地图(站点地图)如何制作以及作用
  2. JTAG各类接口针脚定义及含义
  3. 微信开放平台开发文档
  4. 苹果电脑壁纸打包下载,macbook自带壁纸下载
  5. 百度前员工因内网发布“女优一览表”被辞退,自诉:想转鉴黄师
  6. mysql数据恢复(根据.ibd文件恢复数据)
  7. 苹果cms 压缩html,解密苹果cms的player.js文件
  8. 【Activity】Activity的启动模式:SingleTask
  9. 广东省地方税务局电子办税服务厅--卡在注册ca证书界面的处理
  10. 关于蓝天准系统换京东方屏后不显bios的解决方案