<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.io.*,org.apache.poi.hssf.usermodel.*" errorPage="" %><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head><body>
<% 
try{
  // 创建对Excel工作簿文件的引用
  HSSFWorkbook workbook = new HSSFWorkbook( new FileOutputStream( "D:/Tomcat 5.5/webapps/email0904/workbook.xls"));
  // 创建对工作表的引用。
  // 本例是按名引用(让我们假定那张表有着缺省名"Sheet1")
  HSSFSheet sheet = workbook.getSheet("Sheet1");
  // 也可用getSheetAt(int index)按索引引用,
  // 在Excel文档中,第一张工作表的缺省索引是0,
  // 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);
  // 读取左上端单元
  HSSFRow row = sheet.getRow(0);
  HSSFCell cell = row.getCell((short)0);
  // 输出单元内容,cell.getStringCellValue()就是取所在单元的值
  System.out.println("左上端单元是: " + cell.getStringCellValue()); 
 } catch (Exception e) { 
out.println(e.toString());
}
 %></body>
</html>type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 9 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on tokens, delete these tokensAn error occurred at line: 9 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on tokens, delete these tokensAn error occurred at line: 9 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on tokens, delete these tokensAn error occurred at line: 9 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on tokens, delete these tokensAn error occurred at line: 9 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on tokens, delete these tokensAn error occurred at line: 9 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on token "Invalid Character", delete this token
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 9 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on tokens, delete these tokensAn error occurred at line: 9 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on tokens, delete these tokensAn error occurred at line: 9 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on tokens, delete these tokensAn error occurred at line: 9 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on tokens, delete these tokensAn error occurred at line: 9 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on tokens, delete these tokensAn error occurred at line: 9 in the jsp file: /1.jsp
Generated servlet error:
Syntax error on token "Invalid Character", delete this token
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:414)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:297)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

解决方案 »

  1.   

    <%@ page contentType="text/html; charset=gb2312" language="java" %><%@ page import="java.sql.*,java.io.*,org.apache.poi.hssf.usermodel.*" errorPage="" %>
      

  2.   

    <%--
      Created by IntelliJ IDEA.
      User: hh
      Date: 2006-8-21
      Time: 11:07:14
      To change this template use File | Settings | File Templates.
    --%><%@ page import="org.apache.poi.hssf.usermodel.HSSFCell,
    org.apache.poi.hssf.usermodel.HSSFRow,
    org.apache.poi.hssf.usermodel.HSSFSheet,
    org.apache.poi.hssf.usermodel.HSSFWorkbook,
                     java.text.DecimalFormat,
                     java.io.FileOutputStream,
                     java.io.FileInputStream
     "
    %>
    <%
        response.setContentType("application/vnd.ms-excel;charset=GBK");    String outputFile = "d:\\poi\\tels.xls";
        String fileToBeRead = "d:\\poi\\tels.xls";    try {
            // 创建新的Excel 工作簿
            HSSFWorkbook workbook = new HSSFWorkbook();
            // 在Excel工作簿中建一工作表,其名为缺省值
            // 如要新建一名为"效益指标"的工作表,其语句为:
            // HSSFSheet sheet = workbook.createSheet("效益指标");
            HSSFSheet sheet = workbook.createSheet();
            // 在索引0的位置创建行(最顶端的行)
            HSSFRow row = sheet.createRow((short) 1);
            //在索引0的位置创建单元格(左上端)
            HSSFCell cell = row.createCell((short) 1);
            HSSFCell cell1 = row.createCell((short) 2);
            // 定义单元格为字符串类型
            cell.setCellType(HSSFCell.CELL_TYPE_STRING);
            cell1.setCellType(HSSFCell.CELL_TYPE_STRING);
            // 在单元格中输入一些内容
            cell.setCellValue("sweater");
            cell1.setCellValue("test1");
            // 新建一输出文件流
            FileOutputStream fOut = new FileOutputStream(outputFile);
            // 把相应的Excel 工作簿存盘
            workbook.write(fOut);
            fOut.flush();
            // 操作结束,关闭文件
            fOut.close();
            System.out.println("文件生成...");
        } catch (Exception e) {
            System.out.println("已运行 xlCreate() : " + e);
        }    DecimalFormat df = new DecimalFormat("#");
        try {
            // 创建对Excel工作簿文件的引用
            HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(
                    fileToBeRead));
            //System.out
            //  .println("===SheetsNum===" + workbook.getNumberOfSheets());//获取sheet数
            for (int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++) {
                if (null != workbook.getSheetAt(numSheets)) {
                    HSSFSheet aSheet = workbook.getSheetAt(numSheets);//获得一个sheet
                    //System.out.println("+++getFirstRowNum+++" +
                    // aSheet.getFirstRowNum());//
                    //System.out.println("+++getLastRowNum+++" +
                    // aSheet.getLastRowNum());
                    for (int rowNumOfSheet = 0; rowNumOfSheet <= aSheet
                            .getLastRowNum(); rowNumOfSheet++) {
                        if (null != aSheet.getRow(rowNumOfSheet)) {
                            HSSFRow aRow = aSheet.getRow(rowNumOfSheet);
                            //System.out.println(">>>getFirstCellNum<<<"+
                            // aRow.getFirstCellNum());
                            //System.out.println(">>>getLastCellNum<<<"+
                            // aRow.getLastCellNum());
                            for (short cellNumOfRow = 0; cellNumOfRow <= aRow
                                    .getLastCellNum(); cellNumOfRow++) {
                                if (null != aRow.getCell(cellNumOfRow)) {
                                    HSSFCell aCell = aRow.getCell(cellNumOfRow);
                                    int cellType = aCell.getCellType();
                                    //System.out.println(cellType);
                                    switch (cellType) {
                                        case 0://Numeric
                                            String strCell = df.format(aCell
                                                    .getNumericCellValue());                                        System.out.println(strCell);                                        break;
                                        case 1://String
                                            strCell = aCell.getStringCellValue();                                        System.out.println(strCell);                                        break;
                                        default:
                                            //System.out.println("格式不对不读");//其它格式的数据
                                    }
                                }
                            }
                        }
                    }
                }
            }
        } catch (Exception e) {
            System.out.println("ReadExcelError" + e);
        }
       %>
      

  3.   

    应该是你的jsp文件有一些非法字符
    如果代码是从网上或其他地方copy过来的话
    经常会有这样的情况注意一下每行的开头结尾,很多时候是在空白的地方
      

  4.   

    改成下面的来看看呢:
    try{
    InputStream in=new FileInputStream("D:/Tomcat 5.5/webapps/email0904/workbook.xls");
    HSSFWorkbook workbook = new HSSFWorkbook(in);
    HSSFSheet sheet = workbook.getSheet("Sheet1");
    HSSFRow row = sheet.getRow(0);
    HSSFCell cell = row.getCell((short)0);
    System.out.println("左上端单元是: " + cell.getStringCellValue()); 

    catch (Exception e) { 
    System.out.println(e.toString());
    }
    }
      

  5.   

    我前天把他搞定了你是要把excel中的数据显示出来还是插入进数据库中?
    然后把你的信箱给我
      

  6.   

    谢谢各位了。问题我 已经解决了,是COPY来的,有非法字符造成的。