public ActionResult ExportAgentBooking(string Company_Id, string Company_Name)//Altman.Web.BCDAdmin.Models.CompanyInfo argCompanyInfo)
{
if (string.IsNullOrWhiteSpace(Company_Id) || string.IsNullOrWhiteSpace(Company_Name))
{
return View();
} Dictionary<string, object> vDic = new Dictionary<string, object>();
vDic.Add("argCompanyId", Company_Id);//argCompanyInfo.Company_Id);
vDic.Add("argStatus", (int)Altman.Web.Common.Utility.State.Active);
vDic.Add("argGroupType", (int)Altman.Web.Common.Utility.GroupType.AgentBookingGroup); ClientResponse vUserInGroup = ExcuteService("Altman.Services.BCDAdmin.Group", "GetAgentBookingUser", vDic);
DataTable vDT = vUserInGroup["DtUsers"] as DataTable; Common.ExcelHelper vExcelHelper = new ExcelHelper();
MemoryStream vStream = vExcelHelper.ExeportAgentBookingData(vDT);
if (vStream == null)
{
return View();
}
string vFileName = string.Concat(Company_Name, ".xls");
return File(vStream.ToArray(), CONTENTTYPE, vFileName);
}

EXCEL处理类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; using System.IO;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System.Data;
namespace Altman.Web.BCDAdmin.Common
{ public class ExcelHelper
{
public MemoryStream ExeportAgentBookingData(DataTable vDt)
{
vDt.DefaultView.Sort = "Group_Name desc,Agent_User_Id desc";
vDt = vDt.DefaultView.ToTable();
MemoryStream file = new MemoryStream();
if (vDt == null || vDt.Rows.Count == )
{
return null;
} int vRowIndex = ;
HSSFWorkbook vHssfworkbook = new HSSFWorkbook();
ISheet vSheet1 = vHssfworkbook.CreateSheet();//.GetSheetAt(0);
IRow rowFirst = vSheet1.CreateRow(vRowIndex);
rowFirst.CreateCell().SetCellValue("组名");
rowFirst.CreateCell().SetCellValue("代订人 ");
rowFirst.CreateCell().SetCellValue("被代订人 ");
rowFirst.CreateCell().SetCellValue("Email"); //设置sheet的属性
for (int colCount = ; colCount < ; colCount++)
{
vSheet1.SetColumnWidth(colCount, * );
} vRowIndex++;
foreach(DataRow vRow in vDt.Rows)
{
IRow row = vSheet1.CreateRow(vRowIndex);
string vUser_ID = vRow["User_ID"].AsString();
string vAgent_User_Id = vRow["Agent_User_Id"].AsString();
if (string.IsNullOrWhiteSpace(vUser_ID) && string.IsNullOrWhiteSpace(vAgent_User_Id))
{
continue;
}
row.CreateCell().SetCellValue(vRow["Group_Name"].AsString());
if(!string.IsNullOrWhiteSpace(vUser_ID))//被代订人
{
row.CreateCell().SetCellValue(vRow["User_Name"].AsString());
}
if(!string.IsNullOrWhiteSpace(vAgent_User_Id))//代订人
{
row.CreateCell().SetCellValue(vRow["User_Name"].AsString());
}
row.CreateCell().SetCellValue(vRow["User_Email"].AsString());
vRowIndex++;
}
if (vRowIndex == )
{
return null;
}
vHssfworkbook.Write(file);
return file;
}
}
}

生成Excel直接以流或字节形式发给客户端,无需在服务生成一个实体文件。的更多相关文章

  1. ean13码的生成,python读取csv中数据并处理返回并写入到另一个csv文件中

    # -*- coding: utf-8 -*- import math import re import csv import repr def ean_checksum(eancode): &quo ...

  2. 在.NET中使用EPPlus生成Excel报表 .

    --摘抄自:http://blog.csdn.net/zhoufoxcn/article/details/14112473 在开发.NET应用中可能会遇到需要生成带图表(Chart)的Excel报表的 ...

  3. java 写 Excel(不生成实体文件,写为流的形式)

    java 写 Excel(不生成实体文件,写为流的形式) public String exportReportExcel(String mediaCode, List<SimpleMediaRe ...

  4. Java写Excel(不生成实体文件,写为流的形式)

    java 写 Excel(不生成实体文件,写为流的形式) public String exportReportExcel(String mediaCode, List<SimpleMediaRe ...

  5. npoi生成excel流并在客户端下载(html+后台 )

    //前端页面 <body> <input type="button" value="导出Excel" class="button&q ...

  6. POI导出excel并下载(以流的形式在客户端下载,不保存文件在服务器上)

    import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; i ...

  7. ExcelHelper----根据指定样式的数据,生成excel(一个sheet1页)文件流

    /// <summary> /// Excel导出类 /// </summary> public class ExcelHelper { /// <summary> ...

  8. 两种方式实现java生成Excel

    Web应用中难免会遇到需要将数据导出并生成excel文件的需求.同样,对于本博客中的总结,也是建立在为了完成这样的一个需求,才开始去了解其实现形式,并且顺利完成需求的开发,先将实现过程总结于此.本博文 ...

  9. phpexcel生成excel并下载

    Loader::import('PHPExcel.Classes.PHPExcel'); // tp5中只需将phpexcel文件放入extend文件夹中,即可采用该方法引入,需要先 use thin ...

随机推荐

  1. Datagridview中数字格式列 不显示小数点前面的0

    用代码设置DataGridView中某列为数字格式,但当小数为0.*的时候,前面的0却不显示.只显示.*. 看网上有说: 调整本地设置,控制面板-区域和语言选项,在弹出框的区域选项卡中,选择自定义,在 ...

  2. 使用eclipse和maven创建activiti项目基础配置

    项目组最近的项目使用到了activiti工作流,到处查找了一些资料后,初步完成任务.但是我所做的事只是在搭好的环境中调用接口和方法操作,因此自己尝试着也从搭建环境入手,以下是成功实现以后的记录. 实现 ...

  3. 【转】 远程到服务器安装visualSVN server,出现Service 'VisualSVN Server' failed to start的解决方法

    在帮助远程到服务器上安装visualSVN server的时候,出现Service 'VisualSVN Server' failed to start. 解决方法(先不要关闭安装弹出的错误窗口): ...

  4. 黄聪:C# 开发Chrome内核浏览器(WebKit.net)

    WebKit.net是对WebKit的.Net封装,使用它.net程序可以非常方便的集成和使用webkit作为加载网页的容器.这里介绍一下怎么用它来显示一个网页这样的一个最简单的功能. 第一步: 下载 ...

  5. FB Flash Builder 安装错误 ERROR: DW050: - Microsoft Visual C++ 2010 Redistributable Package (x86): Install failed

    这个问题很可能是你的 Microsoft Visual C++ 2010 Redistributable Package (x86) 太新的缘故,所以无法安装成功,导致最终的失败. 在控制面板-程序和 ...

  6. Segment fault及LINUX core dump详解

    源自:http://andyniu.iteye.com/blog/1965571 core dump的概念: A core dump is the recorded state of the work ...

  7. wcf Svcutil用法

    [转] WCF中可以使用SVCUtil.exe生成客户端代理类和配置文件 1.找到如下地址“C:\Windows\System32\cmd.exe”  命令行工具,右键以管理员身份运行(视系统是否为w ...

  8. 转-android图片降低图片大小保持图片清晰的方法

    http://i.cnblogs.com/EditPosts.aspx?opt=1 android里面对于图片的处理一直是个比较烦人的问题,烦人之处在于一个不小心,就有可能造成OOM. 最近碰到一个关 ...

  9. 转载—— android 瀑布流的实现详解,附源码

    介绍 参考自:https://github.com/dodola/android_waterfall,因为原来的代码封装不好,所以,我根据源码的思路,重新写了一遍,所以有了现在这个项目:https:/ ...

  10. js 回车提交表单的实现

    我们有时候希望回车键敲在文本框(input element)里来提交表单(form),但有时候又不希望如此.比如搜索行为,希望输入完关键词之后直接按回车键立即提交表单,而有些复杂表单,可能要避免回车键 ...