NOPI 做Excel 导出确实很方便 ,但是一直在用没好好研究。

在网上没找到自定义Columns的方法 ,于是乎自己就在原来的方法上简单地改改。

想用的童鞋们可以直接拿去用!

         /// 数据大于65536时使用
         /// </summary>
         /// <param name="dt">数据源</param>
         /// <param name="Columns">列名</param>
         /// <returns></returns>
         public static byte[] ExportToExcel_Columns(DataTable dt, ArrayList Columns)
         {
             DataColumnCollection str = dt.Columns;
             ) return null;
             HSSFWorkbook hssfworkbook;
             hssfworkbook = new HSSFWorkbook();
             ISheet sheet1 = hssfworkbook.CreateSheet("Sheet1");
             List<NPOI.SS.UserModel.ISheet> sheetList = new List<NPOI.SS.UserModel.ISheet>();
             sheetList.Add(sheet1);

             ;
              ==  ? rows /  : (rows / ) + ;
             ; i < p; i++)
             {
                 ISheet sheet = hssfworkbook.CreateSheet().ToString());
                 sheetList.Add(sheet);
             }
             LargeDataExport_Columns(hssfworkbook, sheetList, dt, Columns);
             MemoryStream file = new MemoryStream();
             hssfworkbook.Write(file);
             file.Close();
             return file.ToArray();
         }

         private static void LargeDataExport_Columns(NPOI.HSSF.UserModel.HSSFWorkbook hssfworkbook, List<NPOI.SS.UserModel.ISheet> sheetCollection, DataTable dt, ArrayList Columns)
         {
             // DataColumnCollection str = dt.Columns; //定义表头,原来是从datatable中获取的columns

             ; i < sheetCollection.Count; i++)
             {
                 ISheet sheet1 = sheetCollection[i];

                 )
                 {
                     IRow headerRow = sheet1.CreateRow();
                     , len = Columns.Count; m < len; m++)
                     {
                         ICell curCell = headerRow.CreateCell(m);
                         headerRow.Height =  * ;
                         ICellStyle style = hssfworkbook.CreateCellStyle();
                         style.FillPattern = FillPattern.SolidForeground;
                         style.FillForegroundColor = HSSFColor.Grey25Percent.LightOrange.Index;
                         IFont font = hssfworkbook.CreateFont();
                         font.FontHeightInPoints = ;
                         font.Color = HSSFColor.White.Index; //HSSFColor.WHITE.index;
                         style.SetFont(font);
                         curCell.CellStyle = style;
                         curCell.SetCellValue(Columns[m].ToString());
                         sheet1.SetColumnWidth(m,  * );
                     }
                 }

                 ; j < (i + ) * ; j++)
                 {
                     )
                         break;
                     IRow row = sheet1.CreateRow(j -  * i + );
                     row.Height =  * ;

                     ; k < dt.Columns.Count; k++)
                     {
                         ICell rowCell = row.CreateCell(k);
                         rowCell.SetCellValue(dt.Rows[j][k].ToString());
                     }
                 }
             }
         }

 程序调用:

         /// <summary>
         ///xxxx数据导出
         /// </summary>
         /// <param name="flg"></param>
         /// <returns></returns>
         public FileResult ExportExcel_ProfitDetails()
         {
             DataSet ds = new DataSet();
             //获取当前操作用户
             string userRealName = "";
             if (!string.IsNullOrEmpty(Session["user"].ToString()))
             {
                 userRealName = Session["user"].ToString();
             }

             tempLog.Info(string.Format("用户:{0}正在做xxxx数据导出操作", userRealName));
             string date = Request["datetime"].ToString();
             ds = Automation.Common.DbHelperSQL.Query("ColligateExport");
             //创建Excel文件的对象
             NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
             System.IO.MemoryStream ms = new System.IO.MemoryStream();

             NPOIExcelHelper n = new NPOIExcelHelper();
             byte[] fileArr = null;
             try
             {
                 string[] a = new string[] { "ID", "应支付金额", "应支付日期", "支付期数","支付状态","公司收入","公司支出"
                   ,"支付类型","工单ID","收益明细ID", "转让债权价值","还款金额","还款日期","实际支付金额","实际本金","实际利息"};
                 ArrayList alist = new ArrayList();
                 alist.AddRange(a);
                 fileArr =  NPOIExcelHelper.ExportToExcel_Columns(ds.Tables[],alist);
             }
             catch (Exception ex)
             {
                 throw new Exception(ex.Message);
             }
             string fileName = "xxxx数据" + System.DateTime.Now.ToString("yyyyMMddhhssmm");
             tempLog.Info(string.Format("导出xxxx数据的Excel文件名为:{0}", fileName));
             return File(fileArr, "application/vnd.ms-excel", fileName + ".xls");
         }

最后:使用时记得加上NOPI 引用哦!

转载请注明出处:http://www.cnblogs.com/apeng/p/5579834.html

NOPI导出Excel 自定义列名的更多相关文章

  1. asp.net DataTable导出Excel 自定义列名

    1.添加引用NPOI.dll 2.cs文件头部添加 using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using System.IO; 3.代码如 ...

  2. NOPI导出Excel

    NOPI导出Excel /// <summary> /// 导出的方法 Excel样式 /// </summary> /// <param name="ds&q ...

  3. NOPI 导出 Excel 2007

    代码: public static void ThisTo<T>( List<T> source, string[] colums, Func<T, object[]&g ...

  4. NOPI 导出excel 通用方法

    public static byte[] ExportExcel<T>(Dictionary<string, string> columnsHeader, List<T& ...

  5. asp.net mvc4 easyui datagrid 增删改查分页 导出 先上传后导入 NPOI批量导入 导出EXCEL

    效果图 数据库代码 create database CardManage use CardManage create table CardManage ( ID ,) primary key, use ...

  6. ASP.NET导入导出Excel方法大全

    本文介绍下,C#实现的可以导出与导入excel的代码一例,有需要的朋友,参考下吧. C#实现导出与导入excel.代码1: 复制代码 代码示例:#region  导出Excel  /// <su ...

  7. 170313、poi:采用自定义注解的方式导入、导出excel(这种方式比较好扩展)

    步骤一.自定义注解 步骤二.写Excel泛型工具类 步骤三.在需要导出excel的类属相上加上自定义注解,并设置 步骤四.写service,controller 步骤一:自定义注解 import ja ...

  8. Asp.net导出Excel续章(自定义合并单元格,非Office组件)

    结合上次写的导出Excel方法,这次上头要求我将列头进行一下合并 以前的效果: 改进后的效果: 在上篇文章中写到了Excel的导出方法,这次为了避免在生产环境中使用Office组件,服务器各种权限配置 ...

  9. Html Table用JS导出excel格式问题 导出EXCEL后单元格里的000412341234会变成412341234 7-14 会变成 2018-7-14(7月14) 自定义格式 web利用table表格生成excel格式问题 js导出excel增加表头、mso-number-format定义数据格式 数字输出格式转换 mso-number-format:&quot;\@&quot;

    Html Table用JS导出excel格式问题 我在网上找的JS把HTML Tabel导出成EXCEL.但是如果Table里的数字内容为0开的的导成Excel后会自动删除0,我想以text的格式写入 ...

随机推荐

  1. html常用的综合体

    clip:rect(20px 100px 50px 20px); clip属性中的rect,clip:rect(y1 x2 y2 x1)参数说明如下: y1=定位的y坐标(垂直方向)的起点 x1=定位 ...

  2. 【C语言入门教程】2.8 C 语言的预处理命令

    预处理命令是在程序编译阶段进行执行的命令,用于编译与特定环境相关的可执行文件.预处理命令扩展了 C 语言,本节将选择其中一些常用的预处理命令进行讲解. 2.8.1 宏替换命令 宏替换命令的作用类似于对 ...

  3. Lucene 对文档打分的规则整理记录

    摘引自:http://www.cnblogs.com/forfuture1978/archive/2010/02/08/1666137.html Lucene的搜索结果默认按相关度排序,这个相关度排序 ...

  4. 封装一些数据库SQLCipher的方法(增、删、改、查)

    上一篇随笔只是简单的说了一下使用SQLCipher框架,介绍的比较笼统,可能看一遍之后更加蒙圈了,为了更好的使用这个数据库,整理了我在公司项目的需要用的方法,包括创建表,插入数据,更新数据,搜索查询数 ...

  5. verilog中=和&lt;=的区别

    一般情况下使用<=,组合逻辑使用=赋值,时序逻辑使用<=赋值: 举个例子:初始化m=1,n=2,p=3:分别执行以下语句 1.begin m=n:n=p:p=m: end 2.begin ...

  6. SICP 习题 (1.10)解题总结

    SICP 习题 1.10 讲的是一个叫“Akermann函数”的东西,去百度查可以查到对应的中文翻译,叫“阿克曼函数”. 就像前面的解题总结中提到的,我是一个数学恐惧者,看着稍微复杂一点的什么函数我就 ...

  7. javascript如何自动去除所有空格?

    1.jquery自带了trim方法:    $.trim(" abc ") // abc 2.自己写方法: function trim(str) { return str.repl ...

  8. 2018最新版本Sublime Text3注册码(仅供测试交流使用)

    -– BEGIN LICENSE -– TwitterInc 200 User License EA7E-890007 1D77F72E 390CDD93 4DCBA022 FAF60790 61AA ...

  9. CentOS 安装 Ansible 以及连接Windows server的办法

    1. CentOS机器上面按住那ansible yum install ansible 2. 安装 pywinrm  如果不安装 这个的话  ansible 会提示 没有 winrm 模块 注意需要先 ...

  10. JMeter 如何把上一个请求的结果作为下一个请求的参数 —— 使用正则提取器

    有这样一个压力测试环境,有一个上传页面,上传成功之后服务器会返回一些上传信息(比如文件的 id 或者保存路径之类的信息),然后压力机会继续下一个请求,比如调整 id 为 xx 的文件的一些信息等等.问 ...