1. 导出exl表格,创建表格导出到客户端

  1. public static MemoryStream Export_Table<T>(List<T> datalist)
  2. {
  3. MemoryStream ms = new MemoryStream();
  4. var members = typeof(T).GetProperties();
  5. var workbook = new NPOI.HSSF.UserModel.HSSFWorkbook();
  6. NPOI.SS.UserModel.ISheet sheet = workbook.CreateSheet();
  7. NPOI.SS.UserModel.IRow headerRow = sheet.CreateRow();
  8. int order = ;
  9. foreach (var meber in members)//初始化标题
  10. {
  11. string titlevalue = "";
  12. var name = meber.GetCustomAttributes(typeof(TableAttribulate), false);
  13. if (name.Length == )
  14. continue;
  15. var pro = name[] as TableAttribulate;
  16. if (pro == null)
  17. continue;
  18. titlevalue = pro.CName;
  19. var cell = headerRow.CreateCell(order);
  20. cell.SetCellValue(titlevalue);
  21. if(pro.Weight==)
  22. sheet.AutoSizeColumn(order,true);
  23. else
  24. {
  25. sheet.SetColumnWidth(order,pro.Weight);
  26. }
  27. cell.CellStyle = GetStyle(workbook);
  28. cell.CellStyle.Alignment = pro.HorizontalAlignment;
  29. var cellfont = workbook.CreateFont();
  30. cellfont.Boldweight = (short)NPOI.SS.UserModel.FontBoldWeight.Bold;
  31. cell.CellStyle.SetFont(cellfont);
  32. order++;
  33. }
  34.  
  35. int rowIndex = ;
  36. foreach (var row in datalist)
  37. {
  38. NPOI.SS.UserModel.IRow dataRow = sheet.CreateRow(rowIndex);
  39. int colIndex = ;
  40. var cellindex = dataRow.CreateCell(colIndex);
  41. cellindex.SetCellValue(rowIndex);
  42. cellindex.CellStyle = GetStyle(workbook);
  43. var cellfont = workbook.CreateFont();
  44. cellfont.Boldweight = (short)NPOI.SS.UserModel.FontBoldWeight.Normal;
  45. cellfont.Color = NPOI.HSSF.Util.HSSFColor.LightBlue.Index;
  46. cellindex.CellStyle.SetFont(cellfont);
  47. colIndex++;
  48. foreach (var meber in members)
  49. {
  50. var name = meber.GetCustomAttributes(typeof(TableAttribulate), false);
  51. if (name.Length == )
  52. continue;
  53. var pro = name[] as TableAttribulate;
  54. if (pro == null)
  55. continue;
  56. if (pro.Weight == )
  57. sheet.AutoSizeColumn(colIndex, true);
  58. var cell = dataRow.CreateCell(colIndex);
  59. var mebervalue = meber.GetValue(row);
  60. cell.SetCellValue(mebervalue == null ? "" : mebervalue.ToString());
  61. cell.CellStyle = GetStyle(workbook);
  62. cell.CellStyle.Alignment = pro.HorizontalAlignment;
  63. colIndex++;
  64. }
  65. rowIndex++;
  66. }
  67. workbook.Write(ms);
  68. ms.Seek(, SeekOrigin.Begin);
  69. return ms;//
  70. }

2.代码总的特性

  1. public class TableAttribulate:Attribute
  2. {
  3. public TableAttribulate(string name, int weight = , NPOI.SS.UserModel.HorizontalAlignment hoalign = NPOI.SS.UserModel.HorizontalAlignment.Center)
  4. {
  5. CName = name;
  6. Weight = weight;
  7. HorizontalAlignment = hoalign;
  8. }
  9. public string CName { get; set; }
  10.  
  11. public int Weight { get; set; }
  12.  
  13. public NPOI.SS.UserModel.HorizontalAlignment HorizontalAlignment { get; set; }//对齐方式
  14.  
  15. }

3.函数样式

  1. public static NPOI.SS.UserModel.ICellStyle GetStyle(NPOI.HSSF.UserModel.HSSFWorkbook workbook)
  2. {
  3. var cs = workbook.CreateCellStyle();
  4. cs.DataFormat = NPOI.HSSF.UserModel.HSSFDataFormat.GetBuiltinFormat("@");
  5. cs.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
  6. cs.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
  7. cs.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
  8. cs.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
  9. cs.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
  10. cs.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
  11.  
  12. var cellfont = workbook.CreateFont();
  13. cellfont.Boldweight = (short)NPOI.SS.UserModel.FontBoldWeight.Normal;
  14.  
  15. cs.SetFont(cellfont);
  16. return cs;
  17. }

老版的:

  1. public static NPOI.SS.UserModel.ICellStyle GetDefaultStyle(XSSFWorkbook workbook)
  2. {
  3. var cs = workbook.CreateCellStyle();
  4. cs.DataFormat = NPOI.HSSF.UserModel.HSSFDataFormat.GetBuiltinFormat("@");
  5. cs.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
  6. cs.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
  7. cs.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
  8. cs.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
  9. cs.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
  10. cs.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
  11. var cellfont = workbook.CreateFont();
  12. cellfont.Boldweight = (short)NPOI.SS.UserModel.FontBoldWeight.Normal;
  13. cs.SetFont(cellfont);
  14. return cs;
  15. }

4.js调用实例

  1. function func_queryExportExl() {
  2. var url = '@Url.Action("ExportExcel", "ResidentsSigned");
  3. window.location.href = url;
  4. }

5.后端调用

  1. List<TableExel> query = dbContext.Database.SqlQuery<TableExel>(sql).ToList();
    var ms = CPSYS.Web.Common.FileOption.Export_Table<TableExel>(query);
  2. return File(ms, "application/vnd.ms-excel", "text.xls");

6.合并单元格后的边框格式问题

  1. public void SetTyleThin(NPOI.HSSF.UserModel.HSSFWorkbook workbook,NPOI.SS.UserModel.ISheet sheet,int lastrow)
  2. {
  3. NPOI.SS.Util.CellRangeAddress region = new NPOI.SS.Util.CellRangeAddress(, lastrow, , );
  4. ((NPOI.HSSF.UserModel.HSSFSheet)sheet).SetEnclosedBorderOfRegion(region, NPOI.SS.UserModel.BorderStyle.Thin, NPOI.HSSF.Util.HSSFColor.Black.Index);
  5. }

7.读入模板

  1. HSSFWorkbook workbook = null;
  2. var path = AppDomain.CurrentDomain.BaseDirectory + "/ExcelTemplate/重点孕妇登记随访本.xls";
  3. FileStream filest = new FileStream(path, FileMode.Open, FileAccess.Read);
  4.  
  5. workbook = new HSSFWorkbook(filest);
  6. filest.Close();
  7.  
  8. NPOI.SS.UserModel.ISheet sheet = workbook.GetSheet("重点孕妇登记随访本");

NPOI _导出exl(简单应用)的更多相关文章

  1. NET使用NPOI组件导出Excel-入门示例及通用方法

    一.Excel导入及导出问题产生:   从接触.net到现在一直在维护一个DataTable导出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题:   导出问题:   如果是as ...

  2. .Net core NPOI导入导出Excel

    最近在想.net core NPOI 导入导出Excel,一开始感觉挺简单的,后来真的遇到很多坑.所以还是写一篇博客让其他人少走一些弯路,也方便忘记了再重温一遍.好了,多的不说,直接开始吧. 在.Ne ...

  3. c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出

    c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出 using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using S ...

  4. NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中

    以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...

  5. NPOI导入导出Excel

    .net mvc利用NPOI导入导出excel 注意:如何导出的提交方式ajax导出是失效的! 解决方案是:js处理l两个表单的提交  代码:  第一步. 在页面里面加入2个隐藏的iframe, 如下 ...

  6. Flutter实战视频-移动电商-05.Dio基础_引入和简单的Get请求

    05.Dio基础_引入和简单的Get请求 博客地址: https://jspang.com/post/FlutterShop.html#toc-4c7 第三方的http请求库叫做Dio https:/ ...

  7. 简单回顾NPOI导入导出excel文件

    当前环境.net4.0 去官方下下载:  NOPI官网 关于NOPI的详细,这里就不再介绍. 在项目中,我们只需引入  NPOI.dll  就可以了. 接下来..................... ...

  8. C# 使用NPOI 实现Excel的简单导入导出

    private void btnImport_Click(object sender, EventArgs e) { DataSet ds = new DataSet(); DataTable dt ...

  9. NPOI 给导出Excel添加简单样式

    需求分析:如下图为我之前导出的Excel数据,没有一点样式,标题行不明显,各个列的数据紧凑,查看数据时得手动拉宽每列,故这次要针对以上问题对它进行优化 结果展示: 代码: /// <summar ...

随机推荐

  1. Vmvare扩展虚拟机磁盘大小

    Vmvare设置好虚拟机的磁盘大小之后,发现磁盘空间不够了,这个时候怎么扩展磁盘的大小呢? 首先,在确保虚拟机关闭的情况下,右键设置,选择硬盘,扩展,这样就可以增加磁盘的大小. 但是由于未进行分区和磁 ...

  2. linux--工具参考篇

    linux下的好用工具 工具好多!!! gdb调试利器 ldd查看程序依赖库 lsof一切皆文件 ps进程查看器 pstack 跟踪进程栈 strace 跟踪进程中的系统调用 ipcs 查询进程间通信 ...

  3. 【编译原理】TEST递归下降演示

    MyUtil.java package Util; import Value_Final.RRule; public class MyUtil { /** * 判断字符串是否是关键字 * @param ...

  4. LeetCode:26删除有序数组中相同的数.(Python3)

    给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 1 ...

  5. javaweb 使用页面模板CSS或者Js修改失效的解决办法(Tomcat缓存问题)

    原因是:浏览器的自动缓存机制导致的. 浏览器会自动缓存静态文件以加快访问速度,但是这导致了他不会再从服务器端接收静态文档了,这就导致我在idea里面改的css和js文档,浏览器根本没下载下来. 所以解 ...

  6. 剑指offer-面试题31-栈的压入弹出序列-栈

    #include<iostream> #include<string.h> #include<algorithm> #include<cmath> #i ...

  7. XMind快捷键汇总

    在 XMind: ZEN 中,快捷键是可以大大提高绘图效率的存在.掌握常用的快捷键组合,就可以在键盘上运指如飞,快速地进行思维导图的绘制.还在等什么?感兴趣的朋友,下面就和小编一起来看看吧! XMin ...

  8. gulp常用插件之gulp-uglify使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-uglify这是一款使用UglifyJS缩小js文件. 更多使用文档请点击访问gulp-uglify工具官网. 安装 一键安装不多解释 ...

  9. Luogu P1993 题解

    p1993 小康的农场 CSP_S 1=之后就没怎么写题解.. 推荐博客食用 预备知识 明显这是一道差分约束的题,以下简称差分 有些人可能不了解差分,请点 [传送门] 至于用差分做的题的特征,无一都是 ...

  10. geoserver发布地图服务

    1.      Geoserver启动 blog.csdn.net 2014-09-18 20:30 Geoserver是著名的开源GIS软件之一.也是项目中常用的地图服务软件.基于geoserver ...