C#实现将数据导出为Excel:Print Excel功能详解

需积分: 10 1 下载量 94 浏览量 更新于2024-09-11 收藏 5KB TXT 举报
这段代码展示了如何使用C#语言在ASP.NET应用程序中将数据导出到Excel文件并实现下载。以下是详细的步骤和知识点: 1. 连接数据库: 首先,通过`SqlConnection`对象连接到数据库,使用配置文件中的数据库连接字符串(AppSettings["conn"])。这一步确保了与数据库的可靠连接。 2. 执行SQL查询: 使用`SqlDataAdapter`执行SQL查询("select * from tb1"),目的是获取tb1表中的所有数据。查询结果存储在`DataSet`对象的`table1`表中。 3. 处理数据: 创建一个名为`DataTable`的变量,将查询结果填充到这个数据表中。接下来,定义一个字符串变量`name`,用于存储导出文件的路径,包括日期和随机数以确保文件名的唯一性。这一步是为文件下载提供一个可识别的文件名。 4. 创建输出流: 创建一个`FileStream`对象,指定文件名和写入模式(Create),然后创建一个`StreamWriter`对象,指定编码为GBK,用于写入CSV格式的数据。 5. 数据行遍历与写入: 使用`foreach`循环遍历`DataTable`中的每一行(DataRow),并将其ID、vName和iAge字段值以逗号分隔的形式写入到CSV文件中,每一行末尾添加换行符。 6. 设置响应头: 在响应中设置“Content-Disposition”头,指示浏览器将接收到的内容作为附件下载,并指定文件名(经过URL编码)以防止特殊字符导致的问题。 7. 设置响应类型: 将响应类型设置为“application/vnd.ms-excel”,表明返回的是Excel文件。 8. 写入文件: 使用`Response.WriteFile`方法将生成的CSV文件内容写入到HTTP响应中,从而让用户可以直接下载。 9. 结束响应: 最后,调用`Response.End()`方法立即结束HTTP响应,不再发送后续内容,确保完整且正确的文件下载。 10. 导出方法封装: 提供了一个公共方法`Out2Excel`,接受表名和URL参数,可以方便地用于其他地方调用,将数据以Excel形式输出。 这段代码展示了如何利用C#在ASP.NET环境中通过ADO.NET操作数据库,将查询结果转换为Excel文件,并通过HTTP响应直接提供给用户下载。这对于处理和分享数据非常实用,尤其是当需要定期更新或批量导出数据时。