首先定义一个实体类

/// <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. scipy cluster聚类 ---Python3

    官方文档: https://docs.scipy.org/doc/scipy/reference/cluster.vq.html

  2. 第10章:DOM

  3. 距离VR时代的真正到来还有多久?

    2016年被称为是VR元年,各大VR设备商的宣传攻势铺天盖地,众VR产品看的人眼花缭乱.随着平民化进程不断推进以及渗透率的提升,VR成为近两年来最引人关注的焦点,在众多领域的共同作用下,VR时代是否即 ...

  4. leetcode 024

    Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1->2-&g ...

  5. Aspose系列实现docx转PDF,PPT转PDF,EXCEL转PDF

    没有什么营养,就是调用一下这个组件.其实一开始用的是Microsoft.Office.Interop.Excel;Microsoft.Office.Interop.Word 但是在服务器要注意,服务器 ...

  6. console.dir()和console.log()的区别

    console.log()可以取代alert()或document.write(),在网页脚本中使用console.log(data)时,会在控制台打印出数据. console.dir()可以显示一个 ...

  7. centos搭建svn服务器

    1.在centos6.5上面搭建svn服务器,安装svn服务器:yum install subversion 2.在任意目录下创建仓库目录,这里放在/data/mypros目录下 3.执行命令:svn ...

  8. C#调用winhttp组件 POST登录迅雷

    下面是封装好的winhttp类 using System; using System.Collections.Generic; using System.Linq; using System.Text ...

  9. mysql 查看数据库中所有表的记录数

    use information_schema; SELECT DISTINCT t.table_name, t.engine '表引擎', t.table_rowsFROM TABLES tWHERE ...

  10. CentOS7安装Zabbix

    一.Zabbix简介 Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系 ...