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. 防止SQL注入的方法

    方法1⃣️addslashes(); $username=addslashes($_POST['username']); 方法2⃣️mysql_escape_string(); 方法3⃣️开启魔术引号 ...

  2. oracle数据库从入门到精通之二

    重点关注表的创建与操作语法(如何创建与设计表是后话)常用数据类型表本质上是数据的集合操作数据类型:不管扩展多少种数据类型,常用的就以下几种字符串    varchar2(其它数据库是varchar)来 ...

  3. jquery mobile radio,checkbox button 样式设置

    <label><input type=checkbox ></label>,<input type=checkbox id="checkbox &q ...

  4. iOS 第三方自定义Alertview项目MBProcessHud中的重要代码分析

    做ios,弹出一个自定义的alertview挺常见的.ios7以前,我们可以对系统的UIAlertView进行一点操作,实现一点简单的定制,但是ios7不再允许我们这样做了.因此,我们需要自己创建一个 ...

  5. 数据结构(线段树):CodeForces 85D Sum of Medians

    D. Sum of Medians time limit per test 3 seconds memory limit per test 256 megabytes input standard i ...

  6. Duplicate entry &amp;#39;97112&amp;#39; for key 1

    1.错误描写叙述 2014-07-08 10:27:13,939 ERROR(com.you.conn.JDBCConnection:104) -com.mysql.jdbc.exceptions.j ...

  7. Docker三十分钟快速入门(下)

    一.背景 上篇文章我们进行了Docker的快速入门,基本命令的讲解,以及简单的实战,那么本篇我们就来实战一个真实的项目,看看怎么在产线上来通过容器技术来运行我们的项目,来达到学会容器间通信以及dock ...

  8. 《团队-OldNote-项目总结》

    我们小组做的是手机便签的app---OldNote 最开始我们想解决普通手机便签无法进行语音和照片的备忘这一问题,但是由于没有做过拍照和录音的经验怕由于技术原因无法达成目的,就没敢写在需求分析中.当完 ...

  9. bisect 二分查找

    先说明的是,使用这个模块的函数前先确保操作的列表是已排序的. 先看看 insort  函数: 其插入的结果是不会影响原有的排序. 再看看 bisect  函数: 其目的在于查找该数值将会插入的位置并返 ...

  10. Day20 Ajax

    Ajax准备知识:json 什么是json? 定义: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w ...