ASP.NET DataGrid导出Excel/Word

DataGrid 的导出功能做得比较全,支持直接导出到 Excel 或 Word。用的是 ASP.NET 自带的 Response 输出流方式,配合HtmlTextWriterStringWriter来写 HTML 结构,再通过设置ContentType和编码头让浏览器认成 Excel 或 Word 文档。整个过程不复杂,代码结构也清晰,适合初学者上手练手。

导出逻辑的关键是用Response.AppendHeaderContentEncoding控制浏览器下载行为。你只要记得把CharSet设成GB2312(或者 UTF-8),浏览器打开就不会乱码。另外Response.End()别忘了,负责终止输出。

数据来源是 DataGrid 绑定的DataSet,里面通过MakeTable()CreateDataSet()构造数据结构。说白了,就是你把数据装到 DataGrid 里,它来帮你搞成能下的文档。

这种方式虽然简单,但适合小规模导出,数据太多的话效率会低一些。你要是对样式要求高点,或者想兼容性好一些,也可以看下文末推荐的基于NPOI或者Aspose的方案。

几个还不错的相关文章也一并推荐:

如果你用的是老 ASP.NET 项目,又不想引入太多第三方依赖,这种方式还挺实用的;要是数据量大、格式复杂,建议直接上 NPOI 或者 Aspose,效率高,样式也能自定义。

doc 文件大小:24.5KB