我写一个一个方法生成报表,好象日期型数据显示不正确(见下方错误),而且如果我写成
else if(rsmd.getColumnType(k)==java.sql.Types.DATE)
{
cellData.setCellValue(rs.getDate(k));
}
里面的语句根本不能执行.不止为什么??<%! void createReport(ResultSet rs)
{
   try
   {
    ResultSetMetaData rsmd = rs.getMetaData();
  int numbercols=rsmd.getColumnCount();
  rs.last();
  int numberrows=rs.getRow();
//新建HSSFWorkbook,进行操作
HSSFWorkbook wb=new HSSFWorkbook();

HSSFFont font = wb.createFont();
         font.setFontHeightInPoints((short)8);
         font.setFontName("Courier New");
         font.setItalic(false);
         font.setStrikeout(false); HSSFCellStyle cellHeadStyle=wb.createCellStyle();
         cellHeadStyle.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
cellHeadStyle.setBorderBottom(HSSFCellStyle.BORDER_DOUBLE);
         cellHeadStyle.setBorderLeft((short)1);
         cellHeadStyle.setBorderRight((short)1);
         cellHeadStyle.setBorderTop(HSSFCellStyle.BORDER_DOUBLE);
cellHeadStyle.setFillForegroundColor(HSSFColor.LIGHT_ORANGE.index);
         cellHeadStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

HSSFCellStyle cellDataStyle=wb.createCellStyle();
         cellDataStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT);
cellDataStyle.setFont(font);



  HSSFSheet sheet=wb.createSheet("new sheet");

//处理标题行
  HSSFRow row=sheet.createRow((short)0);
  for(int i=1;i<=numbercols;i++)
  {
  HSSFCell cellHead = row.createCell((short)(i-1));
cellHead.setCellStyle(cellHeadStyle);
  cellHead.setCellValue(rsmd.getColumnLabel(i));
  }
  //重新定位数据行
rs.beforeFirst();
int j=1;
//打印所有的数据
  while(rs.next() && j<=numberrows)
  {
  HSSFRow row1=sheet.createRow((short)j);
  for(int k=1;k<=numbercols;k++)
  {
HSSFCell cellData = row1.createCell((short)(k-1));
cellData.setCellStyle(cellDataStyle);
cellData.setEncoding(HSSFCell.ENCODING_UTF_16);

if(rsmd.getColumnType(k)==java.sql.Types.INTEGER)
  cellData.setCellValue(rs.getInt(k));
else if(rsmd.getColumnType(k)==java.sql.Types.VARCHAR)
cellData.setCellValue(rs.getString(k));
else if(rsmd.getColumnType(k)==java.sql.Types.REAL)
cellData.setCellValue(rs.getDouble(k));
else
                          cellData.setCellValue(rs.getDate(k));//这儿不正确,我数据库中是2006-5-1,报表中却显示38844
     }
   j++; }
 
 FileOutputStream fileOut = new FileOutputStream("c:\\reportExport.xls");
 wb.write(fileOut); fileOut.close();
  }catch(Exception e ){}}%>还有我在处理日期的时候java.text.DateFormat dateFormat;
dateFormat = new java.text.SimpleDateFormat("yyyy-MM-HH", Locale.ENGLISH);
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(meetingDate);出现下列错误
javax.servlet.ServletException: Unparseable date: "2006-5-29"
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
org.apache.jsp.MeetingInfoInsert_jsp._jspService(MeetingInfoInsert_jsp.java:125)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.extremecomponents.table.filter.AbstractExportFilter.doFilter(AbstractExportFilter.java:49)好象2005-5-1和2005-05-01不一样,但不知怎么解决