前段时间做的mvc导出excel

老大说要进行优化,我原来导出是用npoi插件进行导出,格式是将数据放入到datatable中,然后进行导出。

说要优化的时候就想着将datatable数据导出格式改为list集合进行导出效率会好一点

所以就将所有datatable 改为list集合

用datatable 有一个缺点是我在excel显示中的顺序是跟我返回的实体定义的属性的顺序一样的,这样就有点局限性了,想要excel中改变显示顺序就要修改实体中属性的顺序

首先创建excel文件  new hssfworkbook();

创建sheet1  book.createsheet("")

创建row   sheet1.createrow(0)

最后给row赋值  row.createcell(0).setcellvalue("")

  //创建Excel文件的对象
NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
string strdate = DateTime.Now.ToString("yyyyMMddHHmmss");//获取当前时间 if ((orders != null && orders.Count > ) || (bookingorders != null && bookingorders.Count > ))
{
#region sheet1本地数据
//添加一个sheet1 本地的数据导出为excel
NPOI.SS.UserModel.ISheet sheet1 = book.CreateSheet("本地数据");
//给sheet1添加第一行的头部标题
NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow();
if (request.OrderType == "") //挂号
{
row1.CreateCell().SetCellValue("患者ID");
row1.CreateCell().SetCellValue("医院流水号"); //ReturnHisOrderId
row1.CreateCell().SetCellValue("公众服务平台订单号"); //BookOrderId
row1.CreateCell().SetCellValue("支付平台流水号"); // PayOrderId
row1.CreateCell().SetCellValue("退款流水号"); //BookOrderId
//row1.CreateCell(6).SetCellValue("支付平台代码"); //AgtCode
row1.CreateCell().SetCellValue("支付方式"); //paysource
row1.CreateCell().SetCellValue("支付时间"); //PayTime
row1.CreateCell().SetCellValue("支付金额");
row1.CreateCell().SetCellValue("就诊卡号");
row1.CreateCell().SetCellValue("科室");
row1.CreateCell().SetCellValue("医生");
row1.CreateCell().SetCellValue("就诊费用");
row1.CreateCell().SetCellValue("建议就诊时间");
row1.CreateCell().SetCellValue("出诊身份");
row1.CreateCell().SetCellValue("退费");
row1.CreateCell().SetCellValue("退款时间");
for (int i = ; i < bookingorders.Count; i++)
{
NPOI.SS.UserModel.IRow row2 = sheet1.CreateRow(i + );
row2.CreateCell().SetCellValue(bookingorders[i].PatId);
row2.CreateCell().SetCellValue(bookingorders[i].RtnHisOrderId);
row2.CreateCell().SetCellValue(bookingorders[i].BKOrderId);
row2.CreateCell().SetCellValue(bookingorders[i].PayOrderId);
row2.CreateCell().SetCellValue(bookingorders[i].RtnOrderId);
row2.CreateCell().SetCellValue(bookingorders[i].PaySource);
row2.CreateCell().SetCellValue(bookingorders[i].PayTime.ToString());
row2.CreateCell().SetCellValue(bookingorders[i].PayFee.ToString());
row2.CreateCell().SetCellValue(bookingorders[i].VisitingCard);
row2.CreateCell().SetCellValue(bookingorders[i].DeptName);
row2.CreateCell().SetCellValue(bookingorders[i].DoctorName);
row2.CreateCell().SetCellValue(bookingorders[i].ClinicFee.ToString());
row2.CreateCell().SetCellValue(bookingorders[i].AdviceTime);
row2.CreateCell().SetCellValue(bookingorders[i].ClincName);
row2.CreateCell().SetCellValue(bookingorders[i].RtnFee.ToString());
row2.CreateCell().SetCellValue(bookingorders[i].ReturnTime.ToString());
} //将数据逐步写入sheet1各个行
}
else if (request.OrderType == "") //门诊
{
row1.CreateCell().SetCellValue("患者ID");
row1.CreateCell().SetCellValue("医院流水号"); //ReturnHisOrderId
row1.CreateCell().SetCellValue("公众服务平台订单号"); //BookOrderId
row1.CreateCell().SetCellValue("支付平台流水号"); // PayOrderId
row1.CreateCell().SetCellValue("退款账号"); //BookOrderId
row1.CreateCell().SetCellValue("时间"); //paysource
row1.CreateCell().SetCellValue("金额"); //BookOrderId
for (int i = ; i < orders.Count; i++)
{
NPOI.SS.UserModel.IRow row2 = sheet1.CreateRow(i + );
row2.CreateCell().SetCellValue(orders[i].PatientID);
row2.CreateCell().SetCellValue(orders[i].HISReceiptSn);
row2.CreateCell().SetCellValue(orders[i].HisOrderId);
row2.CreateCell().SetCellValue(orders[i].TransactionId);
row2.CreateCell().SetCellValue(orders[i].OutTradeNo);
row2.CreateCell().SetCellValue(orders[i].PayTime.ToString());
row2.CreateCell().SetCellValue(orders[i].HisPayFee);
}
}

mvc导出excel 之 新的更多相关文章

  1. Mvc 导出 Excel

    Mvc 导出 Excel 之前接触过Webform,winfrom 的导出Excel方法 ,优点:省事.缺点:服务器必须安装Office 这几天做项目 和 大牛学习了一下 新的方法,自己加以总结.希望 ...

  2. ASP.NET MVC导出excel

    ASP.NET MVC导出excel 要在ASP.NET MVC站点上做excel导出功能,但是要导出的excel文件比较大,有几十M,所以导出比较费时,为了不影响对界面的其它操作,我就采用异步的方式 ...

  3. MVC 导出Excel 的其中一方法(View导出excel)

    场景:mvc下导出excel 思路:使用View导出excel 步骤: 1.导出标签添加事件 $("#export_A").click(function(){ //省略代码.... ...

  4. ASP.NET MVC导出excel(数据量大,非常耗时的,异步导出)

    要在ASP.NET MVC站点上做excel导出功能,但是要导出的excel文件比较大,有几十M,所以导出比较费时,为了不影响对界面的其它操作,我就采用异步的方式,后台开辟一个线程将excel导出到指 ...

  5. 三层+MVC导出Excel(2)

    背景: 出门在外,一切以健康为主,学习为辅,健康搞好了,学习也不能拉下,在外工作期间,我们在做数据导出的时候,自己封了一个类,利用NPOI进行数据导出Excel,自我感觉良好,特给大家分享一下,希望对 ...

  6. MVC导出Excel,提供下载Excel

    类1: using System.Collections.Generic;using System.Data;using System.Web.Mvc;using System.IO;using Sy ...

  7. MVC学习笔记---MVC导出excel(数据量大,非常耗时的,异步导出)

    要在ASP.NET MVC站点上做excel导出功能,但是要导出的excel文件比较大,有几十M,所以导出比较费时,为了不影响对界面的其它操作,我就采用异步的方式,后台开辟一个线程将excel导出到指 ...

  8. spring mvc 导出 excel

    // js 触发导出 excel 方法 导出当前页的数据 含有条件查询的结果 // js 框架使用的 是 easyui function doExport(){ var optins = $(&quo ...

  9. mvc导出EXCEL

    /// <summary> /// 导出EXCEL /// </summary> /// <returns></returns> public Acti ...

随机推荐

  1. 对Android开发者有益的40条优化建议

    下面是开始Android编程的好方法: 找一些与你想做事情类似的代码 调整它,尝试让它做你像做的事情 经历问题 使用StackOverflow解决问题 对每个你像添加的特征重复上述过程.这种方法能够激 ...

  2. z-index深入理解

    [CSS深入理解之z-index]听课总结 (http://www.imooc.com/learn/643)   一.z-index基础知识 1.z-index的含义 z-index属性指定了元素及其 ...

  3. (46) odoo核心文档分享

    *前言: 要掌握一个系统,还得有扎实的基础,最好的方法,阅读核心文档 然后去实践. *核心文档列表如下: odoo8官方参考.pdf                      链接: http://p ...

  4. category - junit用例分组执行

    一.category 和 testSuite的比较 (1)testSuite是类级分组(xx.class) (2)category是用例级分组(@Test) (3)category是testSuite ...

  5. centos mongodb cluster install 完全版

    分享一则用yum安装的mongodb初始化脚本. install_mongodb.sh会安装mongodb所需的基本环境. 配置副本集的时候会需要辅助文件hosts.conf. 说明:该示例为一主一丛 ...

  6. MergeRecord_C++中map的使用

    //============================================================================ // Name : TTTest.cpp ...

  7. 学习solr

    1.下载地址 http://apache.opencas.org/lucene/solr/

  8. 解析提高PHP执行效率的50个技巧

    1.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的”函数”(译注:PHP手 ...

  9. Nehe Opengl

    http://nehe.gamedev.net/tutorial/lessons_01__05/22004/ Nehe Opengl,据说从基础到高端进阶都是很好的教程,准备学习这个序列,顺便记录下随 ...

  10. Kingsoft Office Writer 2012 8.1.0.3385 - (.wps) Buffer Overflow Exploit (SEH)

    #!/usr/bin/python # Exploit Title: Kingsoft Office Writer v2012 8.1.0.3385 .wps Buffer Overflow Expl ...