java导出excel:

  1. import java.io.ByteArrayOutputStream;  
  2. import java.io.File;  
  3. import java.io.IOException;  
  4. import java.text.DateFormat;  
  5. import java.text.SimpleDateFormat;  
  6. import java.util.Date;  
  7. import java.util.Vector;  
  8.  
  9. import javax.servlet.ServletOutputStream;  
  10.  
  11. import jxl.Workbook;  
  12. import jxl.format.Colour;  
  13. import jxl.format.UnderlineStyle;  
  14. import jxl.write.Label;  
  15. import jxl.write.WritableCellFormat;  
  16. import jxl.write.WritableFont;  
  17. import jxl.write.WritableSheet;  
  18. import jxl.write.WritableWorkbook;  
  19. import jxl.write.WriteException;  
  20.  
  21. public class ExcelBean {  
  22.     public ExcelBean() {  
  23.     }  
  24.  
  25.     public void exportToExcel(String tempFilePath, String filename,  
  26.             String sheetname, String[] titles, Vector vect,ServletOutputStream outputStream) throws Exception {  
  27.         try {  
  28.             Workbook wb = Workbook.getWorkbook(new File(tempFilePath));  
  29.             ByteArrayOutputStream targetFile = new ByteArrayOutputStream();  
  30.             // 创建新的Excel 工作簿  
  31.              WritableWorkbook workbook = Workbook.createWorkbook(targetFile, wb);  
  32.             // 在Excel工作簿中建一工作表,其名为:第一页  
  33.             WritableSheet wsheet = workbook.createSheet(sheetname, 0); // sheet();  
  34.             WritableFont font = new WritableFont(WritableFont.ARIAL, 14,  
  35.                     WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,  
  36.                     Colour.BLACK);  
  37.             WritableCellFormat format = new WritableCellFormat(font);  
  38.             for (int i = 0; i < titles.length; i++) {  
  39.                 Label wlabel1 = new Label(i, 0, titles[i], format); // 行、列、单元格中的文本、文本格式  
  40.                 wsheet.addCell(wlabel1);  
  41.             }  
  42.             font = new WritableFont(WritableFont.createFont("宋体"), 12,  
  43.                     WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,  
  44.                     Colour.BLACK);  
  45.             format = new WritableCellFormat(font);  
  46.             for (int i = 1; i < vect.size() + 1; i++) { // 在索引0的位置创建行(最顶端的行)  
  47.                 Object[] sdata = (Object[]) vect.elementAt(i - 1);  
  48.                 for (int j = 0; j < sdata.length; j++) { // 在索引0的位置创建单元格(左上端)  
  49.                     Label wlabel1 = new Label(j, i, (String) sdata[j], format); // 行、列、单元格中的文本、文本格式  
  50.                     wsheet.addCell(wlabel1);  
  51.                 }  
  52.             }  
  53.             workbook.write();  
  54.             workbook.close();  
  55.             wb.close();  
  56.             targetFile.writeTo(outputStream);  
  57.             targetFile.close();  
  58.         } catch (WriteException ex1) {  
  59.             System.out.println("WriteException:" + ex1.getMessage());  
  60.         } catch (IOException ex2) {  
  61.             System.out.println("IOException:" + ex2.getMessage());  
  62.         }  
  63.     }  
  64.       
  65.     public static String compare_date(String DATE1, String DATE2) {  
  66.        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");  
  67.         try {  
  68.             Date dt1 = df.parse(DATE1);  
  69.             Date dt2 = df.parse(DATE2);  
  70.             if (dt1.getTime() > dt2.getTime()) {  
  71.                 return "1";  
  72.             } else if (dt1.getTime() < dt2.getTime()) {  
  73.                 return "-1";  
  74.             } else {  
  75.                 return "0";  
  76.             }  
  77.         } catch (Exception exception) {  
  78.             exception.printStackTrace();  
  79.         }  
  80.         return "0";  
  81.     }