另类导出EXCEL方法,使用jsp构建table设定Content-Disposition

基本方法:在jsp中构建类似 excel 的table格式,并设置 requestHeader标识,该文件以excel下载。

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page contentType="application/vnd.ms-excel; charset=utf-8" %>
<!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>
	<!-- <meta http-equiv="Content-Type" content="application/vnd.ms-excel; charset=utf-8" /> -->
    <title></title>
    

    <style type="text/css">
	table{
		border: 0.5pt solid #000000;
	}    
	table th{
		border: 0.5pt solid #000000;
	}
	table td{
		border: 0.5pt solid #000000;
	}
  	a{
    	color: #000000;
    	text-decoration: none;
    }
    </style>
</head>
<body> 
<%
response.setContentType("application/vnd.ms-excel");
String titlename="招标需fsdfds求表";
  response.setHeader("Content-Disposition", "attachment;filename="+new String((titlename).getBytes("gbk"),"iso8859-1")+".xlsx");
%>
<center>
		<h2>大大大大fsdfsd大大</h2>
		<div>打算打萨达萨达是</div>
		<div id="maingrid" style="margin:0; padding:0">
			<table><tr><td>21321312</td></tr></table>
			</div>
</center>
</body>
</html>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在JavaScript中获取`Content-Disposition`首部可以通过从HTTP响应头中获取该首部来实现。 以下是一种获取`Content-Disposition`首部的示例方法: ```javascript // 假设 response 是一个 XMLHttpRequest 对象或者 Fetch API 返回的 Response 对象 const contentDispositionHeader = response.headers.get('Content-Disposition'); if (contentDispositionHeader) { // contentDispositionHeader 的值可能是 "attachment; filename=example.txt" // 在这里你可以提取出文件名 example.txt,用于后续的操作 } ``` 在这个例子中,我们通过 `headers.get('Content-Disposition')` 方法来获取HTTP响应头中的`Content-Disposition`首部。如果该首部存在,我们可以对其进行解析以获取有用的信息。 请注意,获取HTTP响应头中的任何首部都需要注意跨域问题和CORS策略。如果HTTP响应不允许JavaScript从另一个域获取该首部,则此方法可能无法正常工作。 ### 回答2: 使用JavaScript获取Content-Disposition的步骤如下: 1. 发送HTTP请求:使用XMLHttpRequest或fetch等方法发送HTTP GET或POST请求获取文件的内容。 2. 获取HTTP响应头信息:获取响应头信息,包括Content-Disposition头部。 3. 解析Content-Disposition使用正则表达式或字符串处理方法来从响应头中提取Content-Disposition的值。 4. 提取文件名:根据Content-Disposition的值,提取文件名部分。 5. 进一步处理:根据需要进行进一步的处理,例如对文件名进行编码转换或其他操作。 下面是一个基本的JavaScript函数示例,用于获取Content-Disposition的文件名部分: ```javascript function getFileNameFromContentDisposition(contentDisposition) { var match = contentDisposition.match(/filename\*?=([^;]+)/i); if (match && match[1]) { // 文件名包含在filename*或filename字段中 var fileName = match[1].trim(); // 检查是否包含编码信息 if (fileName.startsWith("UTF-8''")) { // 去除编码信息,并进行解码 fileName = decodeURIComponent(fileName.substring(7)); } return fileName; } else { // 直接从Content-Disposition中提取文件名 var startIndex = contentDisposition.indexOf("filename=") + 9; var endIndex = contentDisposition.length; var encodedFileName = contentDisposition.substring(startIndex, endIndex).trim(); var fileName = decodeURIComponent(encodedFileName); return fileName; } } // 示例用法 var contentDisposition = "attachment; filename*=UTF-8''%E6%B5%8B%E8%AF%95.txt"; var fileName = getFileNameFromContentDisposition(contentDisposition); console.log(fileName); // 输出:测试.txt ``` 在上述示例中,我们定义了一个名为getFileNameFromContentDisposition的函数,该函数接受Content-Disposition的值作为参数,并返回文件名部分。函数内部使用正则表达式和字符串处理方法来解析Content-Disposition,并从中提取文件名。如果文件名包含编码信息,则会进行相应的解码。最后,在示例用法中,我们传入一个Content-Disposition的示例值,然后打印解析得到的文件名。 ### 回答3: 在JavaScript中可以使用XMLHttpRequest对象来获取服务器的响应头信息,包括content-disposition。 首先,创建一个XMLHttpRequest对象: ```javascript var xhr = new XMLHttpRequest(); ``` 然后,使用open方法来指定请求的方法和URL: ```javascript xhr.open('GET', 'your_url_here', true); ``` 接下来,设置响应类型为arraybuffer或blob,以便能够获取到完整的响应内容: ```javascript xhr.responseType = 'arraybuffer'; // 或者 'blob' ``` 然后,发送请求: ```javascript xhr.send(); ``` 当请求完成时,可以通过xhr的getResponseHeader方法来获取指定的响应头信息,例如content-disposition: ```javascript var contentDisposition = xhr.getResponseHeader('content-disposition'); ``` 注意:由于涉及到跨域请求,如果服务器端没有正确设置Access-Control-Allow-Origin头信息,浏览器会阻止获取到响应头信息。 另外,如果使用的是fetch API进行网络请求,可以使用第二个then回调函数获取响应对象,并通过响应对象的headers属性获取到相应的头信息: ```javascript fetch('your_url_here').then(function(response) { var contentDisposition = response.headers.get('content-disposition'); }); ``` 总结起来,通过创建XMLHttpRequest对象或使用fetch API,然后发送请求,最后通过相应的方法或属性来获取content-disposition信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值