C#导出excel
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的更多相关文章
- C#使用Aspose.Cells导出Excel简单实现
首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...
- 利用poi导出Excel
import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.r ...
- [django]数据导出excel升级强化版(很强大!)
不多说了,原理采用xlwt导出excel文件,所谓的强化版指的是实现在网页上选择一定条件导出对应的数据 之前我的博文出过这类文章,但只是实现导出数据,这次左思右想,再加上网上的搜索,终于找出方法实现条 ...
- NPOI导出Excel
using System;using System.Collections.Generic;using System.Linq;using System.Text;#region NPOIusing ...
- ASP.NET Core 导入导出Excel xlsx 文件
ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...
- asp.net DataTable导出Excel 自定义列名
1.添加引用NPOI.dll 2.cs文件头部添加 using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using System.IO; 3.代码如 ...
- Aspose.Cells导出Excel(1)
利用Aspose.Cells导出excel 注意的问题 1.DataTable的处理 2.进行编码,便于中文名文件下载 3.别忘了Aspose.Cells.dll(可以自己在网上搜索) public ...
- 前端导出Excel兼容写法
今天整理出在Web前端导出Excel的写法,写了一个工具类,对各个浏览器进行了兼容. 首先,导出的数据来源可能有两种: 1. 页面的HTML内容(一般是table) 2. 纯数据 PS:不同的数据源, ...
- JS导出excel 兼容ie、chrome、firefox
运用js实现将页面中的table导出为excel文件,页面显示如下: 导出的excel文件显示如下: 实现代码: <!DOCTYPE html> <html> <head ...
- Oracle导出excel
oracle导出excel(非csv)的方法有两种,1.使用sqlplus spool,2.使用包体 现将网上相关代码整理后贴出以备不时之需: 使用sqlplus: 使用sqlplus需要两个文件: ...
随机推荐
- C# 窗体
窗体的事件:删除事件:先将事件页面里面的挂好的事件删除,再删后台代码里面的事件 Panel是一个容器 1.Label -- 文本显示工具Text:显示的文字取值.赋值:lable1.Text 2.Te ...
- windows安装TortoiseGit详细使用教程
标签:tortoisegit 环境:win8.1 64bit 安装准备: 首先你得安装windows下的git msysgit1.9.5 别下载错,不习惯英文的朋友,也可以下个语言包] 一.安装图解: ...
- 旋转toast 自定义toast方向,支持多个方向的显示,自定义View
package com.example.canvasdemo; import java.security.InvalidAlgorithmParameterException; import andr ...
- (九)串行口方式0 拓展并行输出端口 02 74LS164芯片
1.先讲解74LS164 移位芯片: 74HC164.74HCT164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出. 数据通过两个输入端(DSA 或 DSB)之一串行输入:任一输入端可 ...
- 关于Beta分布、二项分布与Dirichlet分布、多项分布的关系
在机器学习领域中,概率模型是一个常用的利器.用它来对问题进行建模,有几点好处:1)当给定参数分布的假设空间后,可以通过很严格的数学推导,得到模型的似然分布,这样模型可以有很好的概率解释:2)可以利用现 ...
- 新建Java文件的 文档注释
/** * <br> * ============================================= * * @author : Liuyc * @company : 版权 ...
- 几个精彩的DMV
--统计表的增删改次数,反映表的使用程度 SELECT DB_NAME([database_id]) AS [Database] ,iops.[object_id] AS [ObjectID] ,QU ...
- 关于block使用的5点注意事项
1.在使用block前需要对block指针做判空处理. 不判空直接使用,一旦指针为空直接产生崩溃. if (!self.isOnlyNet) { if (succBlock == NULL) { // ...
- 33、mybatis(二)
第十六章回顾SQL99中的连接查询 1)内连接 2)外连接 3)自连接 第十七章回顾hibernate多表开发 1)一对一 2)一对多 3)多对多 第十八章 mybatis一对一映射[学生与身份证] ...
- Just a Hook(HDU1698 线段树的简单应用)
Just a Hook Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Prob ...