我写一个一个方法生成报表,好象日期型数据显示不正确(见下方错误),而且如果我写成
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不一样,但不知怎么解决
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不一样,但不知怎么解决
http://community.csdn.net/Expert/topic/4760/4760481.xml