首先定义一个实体类

/// <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. Power BI官方视频(4) Power BI Desktop 2017年首次更新先睹为快

    在过去的2016年,Power BI Desktop在功能上进行了很多改进和更新,产品迭代速度非常快,基本是每个月一个版本.过去的一年,我们期待的Power BI中国区服务已经可以在世纪互联购买和使用 ...

  2. Java synchronized 详解

    Java synchronized 详解 Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 1.当两个并发线程访问同一个对象object ...

  3. Kafka consumer处理大消息数据问题

    案例分析 处理kafka consumer的程序的时候,发现如下错误: ERROR [2016-07-22 07:16:02,466] com.flow.kafka.consumer.main.Kaf ...

  4. java类构造器的理解

    子类不能继承父类的构造器(构造方法或者构造函数),但是父类的构造器带有参数的,则必须在子类的构造器中显式地通过super关键字调用父类的构造器并配以适当的当属列表. 如果父类有无参构造器,则在子类的构 ...

  5. quagga源码分析--路由信息处理zebra-rib

    对于各个协议生成的路由信息的处理属于quagga中非常重要的一个功能,如何在内核进行路由增加,更新,删除是一个复杂的过程. quagga在thread任务调度中加入了一种工作队列,work_queue ...

  6. CSS之纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)

    图形包括基本的矩形.圆形.椭圆.三角形.多边形,也包括稍微复杂一点的爱心.钻石.阴阳八卦等.当然有一些需要用到CSS3的属性,所以在你打开这篇文章的时候,我希望你用的是firefox或者chrome, ...

  7. 曲演杂坛--SQLCMD下执行命令失败但没有任何错误提示的坑

    今天使用SQLCMD导入到SQL SERVER数据库中,看着数据文件都成功执行,但是意外发现有一个文件数据没有成功导入,但执行不报错,很容易导致问题被忽略. 使用存在问题的文件做下测试,从界面上看几行 ...

  8. 安装oracle11数据库时,先决条件都失败怎么处理?

    安装oracle11数据库时,先决条件都失败怎么处理?

  9. Python第一天——入门Python(3)列表

    列表,也是一种序列类型. 如何定义列表? 用" [ ] "(中括号进行定义) 列表的索引操作 例如 # hobby_list=['basketball','football','p ...

  10. 学习笔记之html5相关内容

    写一下昨天学习的html5的相关内容,首先谈下初次接触html5的感受.以前总是听说html5是如何的强大,如何的将要改变世界.总是充满了神秘感.首先来谈一下我接触的第一个属性是  input的里面的 ...