2012-07-06 6 views
-3

파일을 엑셀로 보내기 위해 MySQL 데이터베이스에서 데이터를 쓰는 데 다음 코드가 있습니다. 이를 위해유형 예외 : 내부 오류()

나는 패키지를 org.apache.poi 다운로드 나는 수업

<%@ page import="java.io.*"%> 
<%@ page import="java.sql.*"%> 
<%@ page import="java.io.*"%> 
<%@ page import="java.util.ArrayList"%> 
<%@ page import="java.util.Hashtable"%> 
<%@ page import="javax.servlet.http.*,javax.servlet.*"%> 
<%@ page import="java.lang.*"%> 
<%@ page import="java.util.*"%> 
<%@ page import="java.sql.ResultSet"%> 
<%@ page import="java.sql.ResultSetMetaData"%> 
<jsp:directive.import></jsp:directive.import> 
<jsp:directive.import></jsp:directive.import> 
<jsp:directive.import></jsp:directive.import> 
<jsp:directive.import></jsp:directive.import> 
<jsp:directive.import></jsp:directive.import> 
<% 
    try{ 
    String filename="D:/data.xls" ; 
    HSSFWorkbook hwb=new HSSFWorkbook(); 
    HSSFSheet sheet = hwb.createSheet("new sheet"); 

    HSSFRow rowhead= sheet.createRow((short)0); 
    rowhead.createCell((short) 0).setCellValue("BID"); 
    rowhead.createCell((short) 1).setCellValue("BELONGING_TYPE"); 
    rowhead.createCell((short) 2).setCellValue("BELONGING_TEXT"); 

    Class.forName("com.mysql.jdbc.Driver"); 
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/yatin", "root", "root"); 
    Statement st=con.createStatement(); 
    ResultSet rs=st.executeQuery("Select * from tm_belonging"); 
    int i=1; 
    while(rs.next()){ 
    HSSFRow row= sheet.createRow((short)i); 
    row.createCell((short) 0).setCellValue(rs.getInt("BID")); 
    row.createCell((short) 1).setCellValue(rs.getString("BELONGING_TYPE")); 
    row.createCell((short) 2).setCellValue(rs.getString("BELONGING_TEXT")); 
    i++; 
    } 
    FileOutputStream fileOut = new FileOutputStream(filename); 
    hwb.write(fileOut); 
    fileOut.close(); 
    out.println("Your excel file has been generated!"); 

    } catch (Exception ex) { 
     System.out.println(ex); 
     ex.printStackTrace(); 

    } 
%> 

톰캣

의 루트 디렉토리에 폴더 있음을 넣어하지만 다음과 같은 오류

을 얻고있다

이 뭐가 잘못 말해

유형 예외 보고서 메시지 :

설명 서버는 내가 발생 이 요청을 수행하지 못하게하는 내부 오류()

는 예외 : 내가 감지 할 수

org.apache.jasper.JasperException: /ExcelReport.jsp(11,4) Invalid directive 
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40) 
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407) 
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88) 
    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:472) 
    org.apache.jasper.compiler.Parser.parseFileDirectives(Parser.java:1748) 
    org.apache.jasper.compiler.Parser.parse(Parser.java:127) 
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255) 
    org.apache.jasper.compiler.ParserController.parseDirectives(ParserController.java:120) 
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:180) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:347) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:327) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:314) 
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
+1

'<% @ import = "org.apache.poi.hssf.usermodel. *"%>'이것은 % '? – verisimilitude

+0

또한 JSP로 많은 양의 코드가 있습니다. ?? – verisimilitude

+1

끔찍한 읽을 수없는 서식은 말할 것도없고 게시하기 전에 자신의 코드 스 니펫에서 _comments_을 (를) 적어도 제거 할 수 있습니다. –

답변

0

첫 번째 실패는 파일 이름이 ": \ data.xls D"해야한다는 것입니다. Windows 환경의 경로는 백 슬래시를 사용해야합니다 (Linux에서는 D : ...를 사용하지 않아야합니다)

"D : /data.xls"와 같은 파일 이름을 올바르게 입력하면 " 발생하는 예외 보고서에서 동일한 설명을 얻고 있습니다 - 내 생각에 이것은 당신의 해결책 일 수 있습니까?