当我还在之前的公司时(那时刚毕业,我在之前的公司干了三年)领导让我能够将 GridView 显示出来的数据导出成 Excel 和 TXT 文件。本来这是一个很简单的功能,但是在实现过程中,还是经历了很多波折,期间还发现了一个很有趣的现象——原来微软的 Word 和 Excel 文件可以识别 HTML 标记。

 

本文内容

  • GridView 导出
  • 导出分析
  • 多 sheet 的 Excel
  • 补充

 

导出

本文旨在说明微软的 Word 和 Excel 文件可以识别 HTML 标记,它们的内部实现也是使用 HTML 标记。因此,只是简单说明一下。

对于导出时,涉及的一些问题,暂不考虑,如:

  • 导出的编码,否则,导出的 Excel 文件会乱码;
  • 要重构 VerifyRenderingInServerForm 方法,否则,会出现如下错误信息:

错误备忘_ASP.NET_ASP.NET GridView 导出 Excel 时发现的有趣现象

  • 导出时的文件名应为 ".xls",而不能是 ".xlsx",这样,Word 2003 和 2007 都能打开。

导出 GridView 的数据代码如下:

 
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.IO" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
 
    <script runat="server">
>
 
</head>
<body>
    <form id="form1" runat="server">
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
        <Columns>
            <asp:BoundField DataField="EMPNO" HeaderText="员工编号" />
            <asp:BoundField DataField="ENAME" HeaderText="员工姓名" />
            <asp:BoundField DataField="JOB" HeaderText="职位" />
            <asp:BoundField DataField="MGR" HeaderText="上级编号" />
            <asp:BoundField DataField="HIREDATE" HeaderText="出生日期" />
            <asp:BoundField DataField="SAL" HeaderText="工资" />
            <asp:BoundField DataField="DEPTNO" HeaderText="部门" />
        </Columns>
    </asp:GridView>
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="导出" />
    </form>
</body>
</html>

相关文章:

  • 2021-07-11
  • 2021-04-30
  • 2021-09-30
  • 2021-06-01
  • 2021-12-11
  • 2021-04-26
  • 2022-02-07
  • 2021-06-01
猜你喜欢
  • 2021-09-19
  • 2022-12-23
  • 2022-01-02
相关资源
相似解决方案