关于Excel表格导出方法--application/vnd.ms-excel

本文介绍了一种使用JSP页面将数据导出为Excel表格的方法,通过设置响应头和内容类型,实现在浏览器中直接下载Excel文件的功能。代码示例展示了如何生成包含文本和数字数据的表格,并提供了导出链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于Excel表格导出方法--application/vnd.ms-excel 

    由于本人所做的项目中需要用到两种将JSP页面table导出到Excel表格的方法(老板也是坑爹),一种是在后台操作数据库来实现,比较简单。由于本人对JSP页面导出方法不了解,所以在此做个笔记,也希望对各位有帮助,下面将完整JSP代码贴出来:

 

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Export to Excel - Demo</title>
</head>
<body>
    <%
        String exportToExcel = request.getParameter("exportToExcel");
        if (exportToExcel != null
                && exportToExcel.toString().equalsIgnoreCase("YES")) {
            response.setContentType("application/vnd.ms-excel");
            response.setHeader("Content-Disposition", "inline; filename="
                    + "excel.xls");
 
        }
    %>
    <table align="left" border="2">
        <thead>
            <tr bgcolor="lightgreen">
                <th>Sr. No.</th>
                <th>Text Data</th>
                <th>Number Data</th>
            </tr>
        </thead>
        <tbody>
            <%
                for (int i = 0; i < 10; i++) {
            %>
            <tr bgcolor="lightblue">
                <td align="center"><%=i + 1%></td>
                <td align="center">This is text data <%=i%></td>
                <td align="center"><%=i * i%></td>
            </tr>
            <%
                }
            %>
        </tbody>
    </table>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
            
    <%
        if (exportToExcel == null) {
    %>
    <a href="text.jsp?exportToExcel=YES">Export to Excel</a><!--注意这里的href链接页面就是你当前JSP页面的名字-->
    <%
        }
    %>
</body>
</html>

转载于:https://my.oschina.net/demons99/blog/2247107

### 下载 MIME 类型 `application/vnd.ms-excel` 文件 为了实现浏览器在访问特定 URL 后自动弹出文件下载对话框并指定文件名为 Excel 文档,服务器端需要设置 HTTP 响应头中的 Content-Type 和 Content-Disposition 字段。 对于 MIME 类型为 `application/vnd.ms-excel` 的文件,可以通过如下方式配置响应头部: ```http HTTP/1.1 200 OK Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache/2.2.14 (Win32) Content-Type: application/vnd.ms-excel Content-Disposition: attachment; filename=example.xls Content-Length: 1024 ``` 其中: - **Content-Type**: 设置为 `application/vnd.ms-excel` 表明这是一个 Microsoft Excel 文件。 - **Content-Disposition**: 使用 `attachment` 参数告知客户端应该作为附件处理该资源;而 `filename` 则指定了建议保存的文件名[^1]。 如果是在 PHP 中实现这一功能,则可以编写类似的脚本代码来发送这些头部信息以及实际的数据流给浏览器: ```php <?php // 定义变量存储要导出的内容 $data = "A1\tB1\nA2\tB2"; header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="exported_data.xls"'); header('Cache-Control: max-age=0'); echo $data; ?> ``` 此段 PHP 脚本会告诉用户的 Web 浏览器准备接收一个 Excel 格式的电子表格,并提示用户将其另存为本地磁盘上的文件。注意这里简单地用制表符分隔列数据,换行符区分不同行记录的方式构建了一个非常基础的 CSV 风格字符串表示形式,适用于简单的场景下模拟 .xls 文件结构。 当涉及到更复杂的 HTML 页面转成 Excel 文件的情况时,可能还需要考虑特殊字符编码、样式应用等问题。例如,在 HTML `<table>` 结构转换过程中遇到日期格式化问题时,可以在单元格内加入自定义样式属性以控制其显示效果[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值