public FileResult ExportExcels(string StartTime, string EndTime, string SendType)
{

List<SMSSExportExcelsModel> list = new UserReturnSMSBLL().SMSStatistics(SendType, StartTime, EndTime);

byte[] fileContents = GetExcel(list);
return File(fileContents, "application/vnd.ms-excel", "测试名字" + DateTime.Now.ToString("yyyMMddhhmmssms") + ".xls");
}
public byte[] GetExcel(List<SMSSExportExcelsModel> list)
{
HSSFWorkbook hssfworkbook;
if (list.Count() > 0)
{
hssfworkbook = new HSSFWorkbook();
ISheet sheet = hssfworkbook.CreateSheet("用户回流");
sheet.SetColumnWidth(0, 20 * 200);//列宽
sheet.SetColumnWidth(1, 20 * 200);//列宽

ICellStyle style1 = hssfworkbook.CreateCellStyle();//样式
IFont font1 = hssfworkbook.CreateFont();//字体
font1.Color = HSSFColor.Black.Index;//字体颜色
font1.Boldweight = (short)FontBoldWeight.Bold;//字体加粗样式
style1.SetFont(font1);//样式里的字体设置具体的字体样式
style1.Alignment = HorizontalAlignment.Right;//文字水平对齐方式
style1.VerticalAlignment = VerticalAlignment.Center;//文字垂直对齐方式

IRow row = sheet.CreateRow(0);
row.Height = 400;//行高

var lstTitle = new List<string> {"推送手机号码", "类型", "奖品", "短信内容", "最后一次打开时间", "推送时间" };
for (int i = 0; i < lstTitle.Count; i++)
{
ICell cel0 = row.CreateCell(i);
cel0.SetCellValue(lstTitle[i].ToString());
cel0.CellStyle.Alignment = HorizontalAlignment.Right;//设置对齐
cel0.CellStyle = style1;//单元格式设置样式
}
int j = 1;
for (int i = 0; i < list.Count; i++)
{
IRow rows = sheet.CreateRow(j);
rows.Height = 330;//行高
j++;
ICell cell0 = rows.CreateCell(0);
cell0.SetCellValue(list[i].u_phone);
ICell cell1 = rows.CreateCell(1);
cell1.SetCellValue(list[i].u_push_days);
ICell cell2 = rows.CreateCell(2);
cell2.SetCellValue(list[i].u_prize);
ICell cell3 = rows.CreateCell(3);
cell3.SetCellValue(list[i].u_content);
ICell cell4 = rows.CreateCell(4);
cell4.SetCellValue(list[i].u_open_app_time.ToString());
ICell cell5 = rows.CreateCell(5);
cell5.SetCellValue(list[i].c_addtime.ToString());
}
MemoryStream stream = new MemoryStream();
hssfworkbook.Write(stream);
stream.Seek(0, SeekOrigin.Begin);
byte[] file = stream.ToArray();
stream.Close();
return file;
}
return null;
}

第二种 这种容易出现乱码

List<SMSSExportExcelsModel> list = new UserReturnSMSBLL().SMSStatistics(SendType, StartTime, EndTime);
#region

var sbHtml = new StringBuilder();
 sbHtml.Append("<table border='1' cellspacing='0' cellpadding='0'>");
sbHtml.Append("<tr>");
var lstTitle = new List<string> { "推送手机号码", "类型", "奖品", "短信内容", "最后一次打开时间", "推送时间" };
foreach (var item in lstTitle)
{
 sbHtml.AppendFormat("<td style='font-size: 14px;text-align:center;background-color: #DCE0E2; font-weight:bold;' height='25'>{0}</td>", item);
}
sbHtml.Append("</tr>");
for (int i = 0; i < list.Count; i++)
{
 sbHtml.Append("<tr>");
 sbHtml.AppendFormat("<td style='font-size: 12px;height:20px;'>{0}</td>", list[i].u_phone);
 sbHtml.AppendFormat("<td style='font-size: 12px;height:20px;'>{0}</td>", list[i].u_push_days);
 sbHtml.AppendFormat("<td style='font-size: 12px;height:20px;'>{0}</td>", list[i].u_prize);
 sbHtml.AppendFormat("<td style='font-size: 12px;height:20px;'>{0}</td>", list[i].u_content);
 sbHtml.AppendFormat("<td style='font-size: 12px;height:20px;'>{0}</td>", list[i].u_open_app_time);
 sbHtml.AppendFormat("<td style='font-size: 12px;height:20px;'>{0}</td>", list[i].c_addtime);
 sbHtml.Append("</tr>");
}
sbHtml.Append("</table>");

//第一种:使用FileContentResult
byte[] fileContents = Encoding.Default.GetBytes(sbHtml.ToString());
return File(fileContents, "application/vnd.ms-excel", "用户回流" + DateTime.Now.ToString("yyyMMddhhmmssms") + ".xls");

//第二种:使用FileStreamResult
////var fileStream = new MemoryStream(fileContents);
////return File(fileStream, "application/ms-excel", "fileStream.xls");
#endregion

C#导出excel的更多相关文章

  1. C#使用Aspose.Cells导出Excel简单实现

    首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...

  2. 利用poi导出Excel

    import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.r ...

  3. [django]数据导出excel升级强化版(很强大!)

    不多说了,原理采用xlwt导出excel文件,所谓的强化版指的是实现在网页上选择一定条件导出对应的数据 之前我的博文出过这类文章,但只是实现导出数据,这次左思右想,再加上网上的搜索,终于找出方法实现条 ...

  4. NPOI导出Excel

    using System;using System.Collections.Generic;using System.Linq;using System.Text;#region NPOIusing ...

  5. ASP.NET Core 导入导出Excel xlsx 文件

    ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...

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

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

  7. Aspose.Cells导出Excel(1)

    利用Aspose.Cells导出excel 注意的问题 1.DataTable的处理 2.进行编码,便于中文名文件下载 3.别忘了Aspose.Cells.dll(可以自己在网上搜索) public ...

  8. 前端导出Excel兼容写法

    今天整理出在Web前端导出Excel的写法,写了一个工具类,对各个浏览器进行了兼容. 首先,导出的数据来源可能有两种: 1. 页面的HTML内容(一般是table) 2. 纯数据 PS:不同的数据源, ...

  9. JS导出excel 兼容ie、chrome、firefox

    运用js实现将页面中的table导出为excel文件,页面显示如下: 导出的excel文件显示如下: 实现代码: <!DOCTYPE html> <html> <head ...

  10. Oracle导出excel

    oracle导出excel(非csv)的方法有两种,1.使用sqlplus  spool,2.使用包体 现将网上相关代码整理后贴出以备不时之需: 使用sqlplus: 使用sqlplus需要两个文件: ...

随机推荐

  1. biztalk重新发布

    前提:在vs2013中,项目属性:重新部署设置为true,重新启动主机实例:设置为true,或者在最后重新部署完以后手动重启主机实例 下面是具体的步骤: 1. 项目修改完重新生成.. 2. 转到biz ...

  2. paper 111:图像分类物体目标检测 from RCNN to YOLO

    参考列表 Selective Search for Object Recognition Selective Search for Object Recognition(菜菜鸟小Q的专栏) Selec ...

  3. android 手风琴

    引用:http://note.youdao.com/share/?id=994df799c2dcc8d83a8909173e42f80d&type=note 先看效果,过瘾一番. 源码下载:h ...

  4. 阿里云OneinStack数据库相关

    阿里云OneinStack数据库相关必须进入oneinstack目录下执行相关命令 ===================================源码安装目录: Nginx:/usr/loca ...

  5. 打包app命令行

    $ cd myApp $ ionic platform add android $ ionic build android $ ionic emulate android

  6. llinux 压缩 解压

    1.zip  1) 将文件夹 mydir 压缩为 mydir.zip zip -r mydir.zip mydir 2) 将文件 one.two 压缩到 ot.zip zip -r ot.zip on ...

  7. consul笔记-集群加入的问题

    加入集群的问题 1 只有2个server的时候,一个挂掉,不会选举出新的leader. 2 使用 -bootstrap 可以直接启动为leader,这和-bootstrap-expect 是有区别的 ...

  8. 小白菜初探nodejs

    记得大四那年实习的时候出去找工作,就常常听见大家说node.从那以后,悄然埋下了一颗学习nodejs的心.不过由于基础太薄弱,一直没有学习.加之工作上没有相关应用,就一直搁置到现在. 年会的时候,老大 ...

  9. [poj3321]Apple Tree(dfs序+树状数组)

    Apple Tree Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 26762   Accepted: 7947 Descr ...

  10. Scrum Meeting 9-20151211

    任务安排 姓名 今日任务 明日任务 困难 董元财 请假(参加编译测试) 无 胡亚坤 首页界面优化 无 刘猛 请假(参加编译测试) 无 马汉虎 请假(参加编译测试) 无 赖彦俞 请假(参加编译测试) 无 ...