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. 0523 Scrum 项目6.0

    团队名称:√3 团队目标:全力完成这次的项目 团队口号:我要改变世界,改变自己!!! 演讲稿:我们的产品 鸡汤精选 是为了解决 当下社会出现的太多的负能量使得人们的内心十分 的痛苦, 他们需要强大的正 ...

  2. paper 100:何恺明经典去雾算法

    一:由简至美的最佳论文(作者:何恺明  视觉计算组) [视觉机器人:个人感觉学习他的经典算法固然很重要,但是他的解决问题的思路也是非常值得我们学习的] 那是2009年4月24日的早上,我收到了一封不同 ...

  3. Openstack的keystone的user-role-list命令的使用

    直接在shell模式下执行 [root@node-5 ~]# keystone user-role-list WARNING: Bypassing authentication using a tok ...

  4. mongo的安装

    windows: 1 安装scons (1): 下载python2.7, 使用x86_32位,因为scons只有32位安装包可用, http://www.python.org/download/rel ...

  5. 一个用php写的人民币数字转人民币大写的函数

      function num2rmb ($num) {     $c1 = "零壹贰叁肆伍陆柒捌玖";     $c2 = "分角元拾佰仟万拾佰仟亿";     ...

  6. flexigrid随手记

    最近要用到flexigrid做表格,随手记一些知识点. 引入了两个jquery库(jquery.js和jquery-1.7.1.min.js),发生冲突,只保留一个 $("#gridTabl ...

  7. Viking Village维京村落demo中的粒子距离消隐

    Custom/DistanceFade shader 粒子雾似乎可以使用.尝试给面片套用该效果,但由于有顶点变形,效果不太好,要做些改动

  8. JAVA线程同步辅助类Exchanger-交换

    可以在对中对元素进行配对和交换的线程的同步点.每个线程将条目上的某个方法呈现给 exchange 方法,与伙伴线程进行匹配,并且在返回时接收其伙伴的对象.Exchanger 可能被视为 Synchro ...

  9. [问题2014A07] 复旦高等代数 I(14级)每周一题(第九教学周)

    [问题2014A07]  设 \(A\) 是有理数域 \(\mathbb{Q}\) 上的 4 阶方阵, \(\alpha_1,\alpha_2,\alpha_3,\alpha_4\) 是 \(\mat ...

  10. jQuery表单元素非空验证

    <script type="text/javascript">                $(function(){          /************* ...