C#常见数据格式导出
首先定义一个实体类
/// <summary>
/// 用户实体类
/// </summary>
public class User
{
/// <summary>
/// 编号
/// </summary>
public int UserId { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 邮箱
/// </summary>
public string Email { get; set; }
/// <summary>
/// 手机
/// </summary>
public string Phone { get; set; }
}
然后初始化一个List<User>
private List<User> userList = new List<User>
{
new User{UserId = , UserName="Johh",Email="123456@qq.com",Phone=""},
new User{UserId = , UserName="Mark",Email="123456@qq.com",Phone=""},
new User{UserId = , UserName="July",Email="123456@qq.com",Phone=""},
new User{UserId = , UserName="Shark",Email="123456@qq.com",Phone=""}
};
导出Text格式
protected void ExportText(string fileName)
{
StringBuilder sb = new StringBuilder();
//添加列名
sb.Append("编号\t");
sb.Append("姓名\t");
sb.Append("邮箱\t");
sb.Append("手机\t");
sb.Append(Environment.NewLine);
//循环添加行
foreach (User user in userList)
{
sb.Append(string.Format("{0}\t", user.UserId));
sb.Append(string.Format("{0}\t", user.UserName));
sb.Append(string.Format("{0}\t", user.Email));
sb.Append(string.Format("{0}\t", user.Phone));
sb.Append(Environment.NewLine);
}
//定义Text编码格式
Encoding myEncoding = Encoding.GetEncoding("GBK");
//把内容转换成字节序列
byte[] byteContent = myEncoding.GetBytes(sb.ToString());
//定义一个内存流
MemoryStream stream = new MemoryStream(byteContent);
byte[] byteStream = new byte[stream.Length];
stream.Seek(, SeekOrigin.Begin);
//从当前流中读取内容写入缓存
stream.Read(byteStream, , Convert.ToInt32(byteStream.Length));
//清空缓存区流的内容
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlDecode(fileName) + ".txt");
Response.AddHeader("Content-Length", byteStream.Length.ToString());
//定义内容类型为二进制
Response.ContentType = "application/octet-stream";
//关闭流并释放资源
Response.Filter.Close();
//向客户端写入内容
Response.OutputStream.Write(byteStream, , byteStream.Length);
//向客户端发送当前缓存的输出
Response.Flush();
//关闭连接
Response.Close();
//释放MemoryStream
stream.Dispose();
}
导出excel格式,先引用外部组件aspose.cells.dll
protected void ExportExcel(string fileName)
{
//定义一个Excel
Workbook workbook = new Workbook();
//定义Excel里面的一页表单
Worksheet worksheet = workbook.Worksheets[];
worksheet.Name = "用户列表";
//往worksheet添加数据
worksheet.Cells.ImportCustomObjects(userList, null, true, , , userList.Count, true, "yyyy-MM-dd hh:mm:ss", false);
int i = ;
//循环替换列名
foreach (Cell cell in worksheet.Cells)
{
string cellValue = worksheet.Cells[, i].Value.ToString();
switch (cellValue)
{
case "UserId":
cellValue = "编号";
break;
case "UserName":
cellValue = "姓名";
break;
case "Email":
cellValue = "邮箱";
break;
case "Phone":
cellValue = "手机";
break;
default:
break;
}
}
//冻结第一行
worksheet.FreezePanes(, , , );
//自动设置列宽
worksheet.AutoFitColumns();
//定义一个内存流
MemoryStream stream = new MemoryStream();
//保存workbook到流中并定义格式
workbook.Save(stream, SaveFormat.Excel97To2003);
//获取字节序列
byte[] byteStream = stream.GetBuffer();
//清空缓存区流的内容
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlDecode(fileName) + ".xls");
Response.AddHeader("Content-Length", byteStream.Length.ToString());
//定义内容类型为二进制
Response.ContentType = "application/octet-stream";
//写入内容
Response.OutputStream.Write(byteStream, , byteStream.Length);
//关闭连接
Response.End();
}
C#常见数据格式导出的更多相关文章
- MapInfo常见数据格式
在MapInfo 中所指的表是单纯的数据表或是图形与数据的结合.一个典型的MapInfo表将主要由*.tab.*.dat.*.wks.*.dbf.*.xls.*.map.*.id.*.ind文件格式组 ...
- POST提交数据时四种常见的数据格式
最近项目部署到新环境tomcat+mysql,想看看项目部署成功没有,就用soupui调对应接口开测试,soupui使用比较简单,给上接口地址,入参xml报文,把入参的media Type设置为app ...
- Guitar Pro怎么导出乐谱
使用Guitar Pro可以自由创作乐谱,也能根据演示效果来作出相应调整,算得上是公认的良心吉他谱制作软件.除了系统演示功能外,Guitar Pro还能给用户的实际练习提供便利.必要时,用户能将软件内 ...
- 【http】四种常见的 POST 提交数据方式
来源:http://www.cnblogs.com/aaronjs/p/4165049.html HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT ...
- 四种常见的 POST 提交数据方式
HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文 ...
- 四种常见的 POST-------- content-type数据提交方式
HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文 ...
- Web 四种常见的POST提交数据方式
HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文 ...
- (转)四种常见的 POST 提交数据方式
四种常见的 POST 提交数据方式(转自:https://imququ.com/post/four-ways-to-post-data-in-http.html) HTTP/1.1 协议规定的 HTT ...
- !!!四种常见的 POST 提交数据方式(含application/json)
HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文 ...
随机推荐
- yum局域网软件源搭建
之前的Demo算是告一段落了,期末的各种考试报告也结束了. 暑假的一项任务就是和其他几个同学一起,在若干台服务器上安装openstack,虚拟出更多的机器,对各种分布式/并行数据分析平台进行测试. 目 ...
- java中的public,protected,private权限修饰
public和private基本没问题,主要是默认的和protected之间的区别 同一包中默认的和protected一样,所以来看看不同包的情况 看下如下代码,两个类位于不同包: public cl ...
- mysql数据库 触发器简单实例
触发器(trigger):监视某种情况,并触发某种操作. 触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/befo ...
- angularJs中自定义directive的数据交互
首先放官方文档地址:https://docs.angularjs.org/guide/directive 就我对directive的粗浅理解,它一般用于独立Dom元素的封装,应用场合为控件重用和逻辑模 ...
- [ios2]警告:Block的Retain Cycle的解决方法 【转】
<span style="background-color: rgb(248, 248, 248); font-family: 'PT Sans', Geogia, Baskervil ...
- 用友金蝶SQL数据库误格式化恢复 SQL数据库修复 SQL数据库恢复 工具 方法
用友金蝶SQL数据库误格式化恢复 SQL数据库修复 SQL数据库恢复 硬盘误格式化.重分区.重装操作系统覆盖 SQL数据解决方法 [客户名称]:贵州铜仁市开天驾驶人培训中心 [软件名称]:用友T3普及 ...
- (二)Harbor WEB的使用
接上一篇<安装Harbor>,安装好之后,接下来我们就进行Harbor web界面的操作吧! 转载请标明出处:http://www.cnblogs.com/huangjc/p/62704 ...
- IntelliJ IDEA新建JAVA WEB项目(转载)
IntelliJ IDEA是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.各类版本控制工具(git.svn ...
- delphi用TAdoStoredProc调用存储过程,兼容sql2005、2008、2014的远程事务问题
delphi7写的程序,在sql2000里没问题,调用sql2008.2014里的存储过程时,如果存储过程里操作了大量数据,很容易会莫名其妙的自己撤销掉,但是程序还识别不到,认为还在正常执行.今天尝试 ...
- 修改html 属性,css样式。
一 通过修改标签属性来改变它的样式 js设置和获取标签的属性 <script type="text/javascript"> window.onload = func ...