/*

Nuget  - NPOI.2.5.1

*/

using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System; 
using System.Data;
using System.IO;

  1. //-----------------------------------------------------------------
    ///dt 数据列表
  2. ///sheetName 标签名
  3. ///excelpath 保存路径 例:C:/WORK/XXXX.xls
  4. public static void ExportExcel(DataTable dt, string sheetName, string excelpath)
  5. {
  6. try
  7. {
  8. IWorkbook workbook;
  9. if (excelpath.Contains(".xlsx"))
  10. workbook = new XSSFWorkbook();
  11. else if (excelpath.Contains(".xls"))
  12. workbook = new HSSFWorkbook();
  13. else
  14. workbook = null;
  15. ISheet sheet = null;
  16. int headRowIndex = 0;
  17. if (!string.IsNullOrEmpty(dt.TableName))
  18. {
  19. sheetName = dt.TableName;
  20. }
  21. sheet = workbook.CreateSheet(sheetName);
  22. int rowIndex = 0;
  23.  
  24. #region 列头及样式
  25. {
  26. IRow headerRow = sheet.CreateRow(headRowIndex);
  27.  
  28. ICellStyle headStyle = workbook.CreateCellStyle();
  29. headStyle.Alignment = HorizontalAlignment.Center;
  30. IFont font = workbook.CreateFont();
  31. font.FontHeightInPoints = 10;
  32. font.Boldweight = 700;
  33. headStyle.SetFont(font);
  34.  
  35. foreach (DataColumn column in dt.Columns)
  36. {
  37. headerRow.CreateCell(column.Ordinal).SetCellValue(column.ColumnName);
  38. headerRow.GetCell(column.Ordinal).CellStyle = headStyle;
  39. }
  40. }
  41. #endregion
  42.  
  43. #region 填充内容
  44.  
  45. foreach (DataRow row in dt.Rows)
  46. {
  47. rowIndex++;
  48. IRow dataRow = sheet.CreateRow(rowIndex);
  49. foreach (DataColumn column in dt.Columns)
  50. {
  51. string drValue = row[column].ToString();
  52. dataRow.CreateCell(column.Ordinal).SetCellValue(drValue);
  53. }
  54. }
  55. #endregion
  56.  
  57. using (FileStream file = new FileStream(excelpath, FileMode.Create))
  58. {
  59. workbook.Write(file);
  60. }
  61. return;
  62. }
  63.  
  64. catch (Exception ex)
  65. {
  66. //log4.logtofile('ImportExcel',ex.Message);
  67. }
  68.  
  69. }

  

.NetCore 导出Execl的更多相关文章

  1. 当用GridView导出Execl的时候,会发生只能在执行 Render() 的过程中调用 RegisterForEventValidation的错误

    当用GridView导出Execl的时候,会发生只能在执行 Render() 的过程中调用 RegisterForEventValidation的错误提示. 有两种方法可以解决以上问题: 1.修改we ...

  2. asp.net中导出Execl的方法

    一.asp.net中导出Execl的方法: 在 asp.net中导出Execl有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址 输出在浏览器上:一种是将文件直接将文件输出流写给 ...

  3. js导出execl兼容ie Chrome Firefox各种主流浏览器(js export execl)

    第一种导出table布局的表格 <html> <head> <meta charset="utf-8"> <script type=&qu ...

  4. NPIO 导出Execl

    步骤1:导入NOIO.dll    (我导入压缩包中的4.0)

  5. mvc 导出execl

    mvc导出execl 必须是get方法才可以  也不能使用ajax function ComplaintsExport() { var serial = $("form").ser ...

  6. POI导出Execl文件,使JAVA虚拟机OOM

    由于在项目中使用POI导出execl,导致JAVA虚拟机OOM,采用以下方式解决问题: 原先方式: g_wb = new XSSFWorkbook(sourceFile.getInputStream( ...

  7. C# NPOI 导出Execl 工具类

    NPOI 导出Execl 自己单独工具类 详见代码 using System; using System.Collections.Generic; using System.Linq; using S ...

  8. MVC 导出Execl 的总结几种方式 (四)

    这种方式我个人还是比较喜欢的,使用部分视图的方式,导出Execl 这样在编辑样式上也是很方便的 第一步: 编辑导出视图页 @using H5UpdateImage.Models; @{ Layout ...

  9. MVC 导出Execl 的总结几种方式 (二)

    接着上面的来,继续导出Execl 的功能 使用FileResult 方式直接可以生产Execl ,这样我们将会写大量处理后台的代码,个人感觉不好,只是展示出来,提供参考 第一步:编辑控制器 publi ...

随机推荐

  1. μC/OS-III---I笔记3---时间管理

    时间管理相关函数,其实深入根本的理解就是一些对时间任务相关变量,数据结果进行修改的函数这样方便对应任务查找延时等时间相关的任务有没有到期.前面的时间相关的函数是这些操作的基 1.延时函数 OsTIme ...

  2. 006.NET 项目建立+传值

    1. 创建项目 2.传值(控制器向视图传递) 接收值 3.视图向控制器传递 4.session配置

  3. GitHub GraphQL API v4 & GitHub REST API v3

    GitHub, GraphQL API, v4 ,REST API, v3, GraphQL, https://developer.github.com/v4/ https://developer.g ...

  4. 使用 js 实现一个简易版的动画库

    使用 js 实现一个简易版的动画库 具有挑战性的前端面试题 animation css refs https://www.infoq.cn/article/0NUjpxGrqRX6Ss01BLLE x ...

  5. 如何使用 js 实现一个 throttle 函数

    如何使用 js 实现一个 throttle 函数 原理 实现方式 "use strict"; /** * * @author xgqfrms * @license MIT * @c ...

  6. Github history viewer

    Github history viewer https://github.githistory.xyz/ https://github.com/pomber/git-history https://c ...

  7. OpenCV & Web Assembly & Web Worker

    OpenCV & Web Assembly & Web Worker opencv-in-the-web https://aralroca.com/blog/opencv-in-the ...

  8. Flutter 在同一页面显示List和Grid

    import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends State ...

  9. 浅析VAST代币与SPC算力币的释放模式

    许多区块链业界分析师认为,2021年的区块链市场或许与2020年的有些许不同.2020年的区块链市场更注重的是DeFi领域,很多公链项目以及资本市场的巨鲸们也是将目光锁定在DeFi领域.而2021年的 ...

  10. 稳定币USDN的算法调控

    在NGK公链的稳定币系统中,USDN的价格有时会出现一定幅度的波动.正如我们会看到USDT有时会是0.99美元,有时是1.01美元一样.那么,要保障USDN在二级市场的价格基本稳定,要如何调节供需呢? ...