1 public class ExcelUtil {
2
3 public static void fillExcelData(ResultSet rs,Workbook wb,String[] headers)throws Exception{
4 int rowIndex=0;
5 Sheet sheet=wb.createSheet();
6 Row row=sheet.createRow(rowIndex++);
7 for(int i=0;i<headers.length;i++){
8 row.createCell(i).setCellValue(headers[i]);
9 }
10 while(rs.next()){
11 row=sheet.createRow(rowIndex++);
12 for(int i=0;i<headers.length;i++){
13 row.createCell(i).setCellValue(rs.getObject(i+1).toString());
14 }
15 }
16 }
17
18 public static Workbook fillExcelDataWithTemplate(ResultSet rs,String templateFileName)throws Exception{
19 InputStream inp=ExcelUtil.class.getResourceAsStream("/template/"+templateFileName);
20 POIFSFileSystem fs=new POIFSFileSystem(inp);
21 Workbook wb=new HSSFWorkbook(fs);
22 Sheet sheet=wb.getSheetAt(0);
23 // ��ȡ����
24 int cellNums=sheet.getRow(0).getLastCellNum();
25 int rowIndex=1;
26 while(rs.next()){
27 Row row=sheet.createRow(rowIndex++);
28 for(int i=0;i<cellNums;i++){
29 row.createCell(i).setCellValue(rs.getObject(i+1).toString());
30 }
31 }
32 return wb;
33 }
34
35 public static String formatCell(HSSFCell hssfCell){
36 if(hssfCell==null){
37 return "";
38 }else{
39 if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_BOOLEAN){
40 return String.valueOf(hssfCell.getBooleanCellValue());
41 }else if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){
42 return String.valueOf(hssfCell.getNumericCellValue());
43 }else{
44 return String.valueOf(hssfCell.getStringCellValue());
45 }
46 }
47 }
48
49
50 public static String getCell(HSSFCell cell) {
51 DecimalFormat df = new DecimalFormat("#");
52 if (cell == null)
53 return "";
54 switch (cell.getCellType()) {
55 case HSSFCell.CELL_TYPE_NUMERIC:
56 if(HSSFDateUtil.isCellDateFormatted(cell)){
57 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
58 return sdf.format(HSSFDateUtil.getJavaDate(cell.getNumericCellValue())).toString();
59 }
60 return df.format(cell.getNumericCellValue());
61 case HSSFCell.CELL_TYPE_STRING:
62 System.out.println(cell.getStringCellValue());
63 return cell.getStringCellValue();
64 case HSSFCell.CELL_TYPE_FORMULA:
65 return cell.getCellFormula();
66 case HSSFCell.CELL_TYPE_BLANK:
67 return "";
68 case HSSFCell.CELL_TYPE_BOOLEAN:
69 return cell.getBooleanCellValue() + "";
70 case HSSFCell.CELL_TYPE_ERROR:
71 return cell.getErrorCellValue() + "";
72 }
73 return "";
74 }
75 /*public static String formateDate(HSSFWorkbook wb,HSSFCell hssfCell){
76 //HSSFWorkbook wb = new HSSFWorkbook();
77 CreationHelper createHelper=wb.getCreationHelper();
78 HSSFCellStyle cellStyle = wb.createCellStyle();
79 cellStyle.setDataFormat(createHelper.createDataFormat().getFormat("yyyy-mm-dd hh:mm:ss"));
80 //HSSFSheet sheet = wb.createSheet("format sheet");
81 //HSSFDataFormat format = wb.createDataFormat();
82 //HSSFRow row = sheet.createRow(0);
83 //HSSFCell cell = row.createCell(0);
84 //cell = row.getCell(2);
85 hssfCell.setCellValue(formatCell(hssfCell));
86 hssfCell.setCellStyle(cellStyle);
87 return hssfCell.getStringCellValue();
88 }
89 */
90 }