我有一个excel文件,并希望在jsp页面中显示相同的内容。我使用下面的代码来显示相同的内容
<%
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition","attachment;filename=Data.xlsx")%>
当我尝试单击jsp链接时,会自动下载excel工作表。但是我想让excel表格显示在浏览器的jsp页面中。
在上述方面的任何帮助都是非常感谢的。
发布于 2016-08-03 07:57:29
对于我来说,您应该将文件流式传输到来自servlet的响应中,如下所示:
transfert(yourFile.getInputStream(),response.getOutputStream(), true);
public static void transfert(InputStream in , OutputStream out, boolean closeOnExit ) throws Exception{
try{byte buf[] = new byte[1024];
int n;
while((n=in.read(buf))!=-1){
out.write(buf,0,n);
out.flush();}
}
catch(Exception e){
e.getMessage();
}
}
发布于 2016-08-03 08:00:28
可以有两种方法。
如果您在使用第三方服务(如services.
embedded html
代码。另一种方法是使用某些库(如apache-poi
)处理excel文件,并将其呈现在jsp页面上。发布于 2017-06-01 04:16:37
我使用下面的代码在jsp页面中显示excel文件。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Excel Web View</title>
<%@ page import="java.io.FileInputStream" %>
<%@ page import="org.apache.poi.ss.usermodel.DataFormatter" %>
<%@ page import="org.apache.poi.xssf.usermodel.*" %>
<%@page import="org.apache.poi.hssf.usermodel.*"%>
</head>
<body>
<table border="1">
<%
String filename="C:\\Users\\User01\\Desktop\\hello.xls"
String extension = "";
int i = filename.lastIndexOf('.');
if (i >= 0) {
extension = filename.substring(i+1);
}
if(extension !=null && extension.contains("xlsx"))
{
if(filename != null && !filename.equals("")){
try{
FileInputStream fs =new FileInputStream(filename);
XSSFWorkbook wb = new XSSFWorkbook (fs);
for(int k = 0; k < wb.getNumberOfSheets(); k++){
XSSFSheet sheet = wb.getSheetAt(k);
int rows = sheet.getPhysicalNumberOfRows();
DataFormatter formatter = new DataFormatter();
for(int r = 0; r < rows; r++){
XSSFRow row = sheet.getRow(r);
int cells = row.getPhysicalNumberOfCells();
%><tr><%
for(int n=0;n<cells;n++)
{
%><td><%
=formatter.formatCellValue(row.getCell(n))
%></td><%
}
%></tr><%
}
}
}
catch(Exception e){
System.out.println(e);
}
}
}
else {
if(filename != null && !filename.equals("")){
try{
FileInputStream fs =new FileInputStream(filename);
HSSFWorkbook wb = new HSSFWorkbook (fs);
for(int k = 0; k < wb.getNumberOfSheets(); k++){
HSSFSheet sheet = wb.getSheetAt(k);
int rows = sheet.getPhysicalNumberOfRows();
DataFormatter formatter = new DataFormatter();
for(int r = 0; r < rows; r++){
HSSFRow row = sheet.getRow(r);
int cells = row.getPhysicalNumberOfCells();
%><tr><%
for(int n=0;n<cells;n++){
%><td><%
=formatter.formatCellValue(row.getCell(n))
%></td><%
}
%></tr><%
}
}
}
catch(Exception e){
System.out.println(e);
}
}
}
%>
</table>
</body>
</html>
并在pom.xml文件中添加依赖项
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.16</version>
</dependency>
https://stackoverflow.com/questions/38737581
复制相似问题