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 一般用来向服务端提交数据,本文 ...
随机推荐
- 关于SQL 数据表中的密码加密
首先,都知道一个字节(byte)等于八位二进制数.在数据表中将密码字段设置为binary类型,再结合哈希散列运算可以实现密码加密. 下面介绍下binary 和 varbinary: binary 和 ...
- C++虚函数实现多态原理(转载)
一.前言 C++中的虚函数的作用主要是实现了多态的机制.关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数.这种技术可以让父类的指针有"多种形态 ...
- Mybatis学习笔记(一) 之框架原理
原生态JDBC编程中问题总结 1.单独使用jdbc连接数据库 maven依赖包: <!-- mysql --> <dependency> <groupId>mysq ...
- Oracle 列操作(增加列,修改列,删除列)
1.增加一列: Alter table 表名 add 列名 varchar2(10); 2.修改一列: Alter table 表名 modify 列名 varchar2(20); 3.删除一列: A ...
- 传统flv网页视频(flvplayer)--兼容
1.flv网页视频 项目中需要web打开视频,百度搜了好几个插件,本来是打算用H5 vedio,但是客户的浏览器用的比较老,如果用H5标签的话,IE9以下的浏览器是不支持的.所以费劲又去找了其他插件. ...
- 转:Monoids and Finger Trees
转自:http://apfelmus.nfshost.com/articles/monoid-fingertree.html This post grew out of the big monoid ...
- ASP.NET Core: Getting Started with ASP.NET MVC Core
1. ASP.NET Core the Unified Framework ASP.NET Core的统一框架 2. New Solution Project 新的解决方案项目 src folder: ...
- python 算法练习
根据给定的线性函数来确定函数的表达形式: examples: get_function([0,1,2,3,4]) => f(x)=x get_function([1,4,7,10,13]) =& ...
- 极光推送Demo
<?php //极光推送的类 //文档见:http://docs.jpush.cn/display/dev/Push-API-v3 /***使用示例***/ ...
- 跑github上的Symfony项目遇到的问题
Loading composer repositories with package information Installing dependencies (including require-de ...