我们如何将JSP中的数据导出到excel表?

时间:2011-09-15 11:55:39

标签: excel jsp

我正在将数据导出到JSP中的Excel工作表。

<%@page import="java.io.*"%>
<%@page import="org.apache.poi.hssf.usermodel.HSSFSheet"%>
<%@page import="org.apache.poi.hssf.usermodel.HSSFWorkbook"%>
<%@page import="org.apache.poi.hssf.usermodel.HSSFRow"%>
<%@page import="org.apache.poi.hssf.usermodel.HSSFCell"%>
<% 
  String inj1=request.getParameter("inj"); 
  String ob=request.getParameter("ob"); 
  HSSFWorkbook wb = new HSSFWorkbook();
  HSSFSheet sheet = wb.createSheet("Excel Sheet"); 
  HSSFRow rowhead = sheet.createRow((short)0);
  rowhead.createCell((short)0).setCellValue("Injections");
  rowhead.createCell((short)1).setCellValue("OB");
  HSSFRow row = sheet.createRow((short)1);
  row.createCell((short)0).setCellValue(inj1);
  row.createCell((short)1).setCellValue(ob);
  FileOutputStream fileOut = new FileOutputStream("c:\\Injection_Details.xls");
  wb.write(fileOut);
  fileOut.close();
  out.println("Data is saved in excel file.");
%>

我收到错误

  

无法将HSSFWorkbook解析为类型

  

只能导入一种类型。 org.apache.poi.hssf.usermodel.HSSFSheet解析为包。

这是如何引起的?如何解决?

2 个答案:

答案 0 :(得分:1)

  

无法将HSSFWorkbook解析为类型

这只是一个编译错误。类路径中缺少所提到的类。在这种特殊情况下,您需要确保在webapp的/WEB-INF/lib文件夹(属于webapp的类路径)中删除了必需的Apache POI HSSF JAR文件。

此问题与JSP无关。在普通的Java类中,您将遇到完全相同的问题,其中所有Java代码实际上都是

答案 1 :(得分:0)

一个简单的Excel导出,没有任何其他库:

  1. 将您的ResultSet写为JSP中的逗号分隔数据
  2. 在对Excel的响应中设置ContentType。
  3. JSP代码;请注意JSP中没有换行符,因为这会破坏CSV到Excel的翻译:

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><% response.setContentType("application/vnd.ms-excel");response.setHeader("Content-disposition","attachment;filename=export.csv"); %>
    message_name,subject,sent_count,open_count,original_href,link_uuid,link_click_count
    <c:forEach var="item" items="${myResultSet}">"<c:out value="${item.field1}" />","<c:out value="${item.field2}" />","<c:out value="${item.field3}" />"