public 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对象
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);
/*判断原来数据的格式,然后以相同的数据格式写入单元格,以方便用户
可以进行一定的统计工作,日期类型和字符串类型使用String类型进行输出
*/
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.getString(k));
}
j++;
}
//利用输出流将数据集写入到硬盘的文件中,操作结束后,关闭输出流
FileOutputStream fileOut = new FileOutputStream("c://reportExport.xls");
wb.write(fileOut);
fileOut.close();
}catch(Exception e){
System.out.println("Exception:"+e.getMessage());
}
}
{
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对象
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);
/*判断原来数据的格式,然后以相同的数据格式写入单元格,以方便用户
可以进行一定的统计工作,日期类型和字符串类型使用String类型进行输出
*/
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.getString(k));
}
j++;
}
//利用输出流将数据集写入到硬盘的文件中,操作结束后,关闭输出流
FileOutputStream fileOut = new FileOutputStream("c://reportExport.xls");
wb.write(fileOut);
fileOut.close();
}catch(Exception e){
System.out.println("Exception:"+e.getMessage());
}
}