首先定义一个实体类

/// <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#常见数据格式导出的更多相关文章

  1. MapInfo常见数据格式

    在MapInfo 中所指的表是单纯的数据表或是图形与数据的结合.一个典型的MapInfo表将主要由*.tab.*.dat.*.wks.*.dbf.*.xls.*.map.*.id.*.ind文件格式组 ...

  2. POST提交数据时四种常见的数据格式

    最近项目部署到新环境tomcat+mysql,想看看项目部署成功没有,就用soupui调对应接口开测试,soupui使用比较简单,给上接口地址,入参xml报文,把入参的media Type设置为app ...

  3. Guitar Pro怎么导出乐谱

    使用Guitar Pro可以自由创作乐谱,也能根据演示效果来作出相应调整,算得上是公认的良心吉他谱制作软件.除了系统演示功能外,Guitar Pro还能给用户的实际练习提供便利.必要时,用户能将软件内 ...

  4. 【http】四种常见的 POST 提交数据方式

    来源:http://www.cnblogs.com/aaronjs/p/4165049.html HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT ...

  5. 四种常见的 POST 提交数据方式

    HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文 ...

  6. 四种常见的 POST-------- content-type数据提交方式

    HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文 ...

  7. Web 四种常见的POST提交数据方式

    HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文 ...

  8. (转)四种常见的 POST 提交数据方式

    四种常见的 POST 提交数据方式(转自:https://imququ.com/post/four-ways-to-post-data-in-http.html) HTTP/1.1 协议规定的 HTT ...

  9. !!!四种常见的 POST 提交数据方式(含application/json)

    HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文 ...

随机推荐

  1. 应用程序启动后修改自身EXE文件或自删除EXE文件(附VC++6.0源码)

    在CSDN论坛看到这么一个问题:如何为第三方工具加上使用限制次数?问题的答案很简单,重新做一个应用程序,将第三方程序打包进这个应用程序,启动应用程序时可以检查第三方工具的使用次数,检查通过,可运行第三 ...

  2. 捕鱼达人代码例子下载地址 Win版

    捕鱼达人代码例子下载地址 Win版:: http://pan.baidu.com/share/link?shareid=1601576904&uk=3189484501

  3. C语言之原码、反码和补码

    原码.反码和补码 1).数据在内存中存储的时候都是以二进制的形式存储的. int num = 10; 原码.反码.补码都是二进制.只不过是二进制的不同的表现形式. 数据是以补码的二进制存储的. 2). ...

  4. [ios3-地图] 如何在iOS地图上高效的显示大量数据 [转]

    [转至:http://blog.csdn.net/pjk1129/article/details/17358337] 原文:How To Efficiently Display Large Amoun ...

  5. 关于Ueditor 前后端分离实现文件上传到独立服务器的问题 望大神们赐教

    最近,由于网站实现多台服务器负载均衡,导致编辑器上传文件需要同步,可是使用同步软件太慢,不太现实,所以想到实现编辑器上传文件直接上传到独立文件服务器.可是没想到遇到坑了. 1.在本地IIS 中添加网站 ...

  6. NHibernate联合主键详细示例

    使用NHibernate实现一对多,多对一的关联很是简单,可如果要用复合主键实现确实让人有些淡淡的疼.虽然很淡疼但还是要去抹平这个坑,在下不才,愿意尝试. 以示例进入正文,源码下载地址: 一.数据表关 ...

  7. 【CentOS如何最小化安装】

    近来发现越来越多的运维小伙伴们都有最小化安装系统的洁癖,因此,找老男孩来咨询,这个"洁癖"好习惯啊,必须支持,,因此发布本文和大家分享下. (1)系统安装类型选择及自定义额外包组 ...

  8. ListView控制消息

    ListView控制消息 ListView控制消息是提供给父窗口或其他窗口通过发消息来控制ListView窗口本身. ListView控件提供给了以下消息来让外部程序控制自身: ListView_Ap ...

  9. Some Error

    0x01 E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution). sudo ...

  10. linux xfce4普通用户 mount usb提示: Not authorized to perform operation

    问题:xfce4下,USB 硬盘能自动挂载并显示,但是普通用户操作时,提示:Not authorized to perform operation. 时间:20160928 os:gentoo + x ...