JXL 生成EXCEL文件格式說明
1、 合併單元格
WritableSheet.mergeCells(int m,int n,int p,int q);
作用是從(m,n)到(p,q)的單元格全部合併,比如:
WritableSheet sheet=book.createSheet(“第一頁”,0);
//合併第一列第一行到第六列第一行的所有單元格
sheet.mergeCells(0,0,5,0);
合併既可以是橫向的,也可以是縱向的。合併後的單元格不能再次進行合併,否則會觸發異常。
2、 行高和列寬
WritableSheet.setRowView(int i,int height);
作用是指定第i+1行的高度,比如:
//將第一行的高度設爲200
sheet.setRowView(0,200);
WritableSheet.setColumnView(int i,int width);
作用是指定第i+1列的寬度,比如:
//將第一列的寬度設爲30
sheet.setColumnView(0,30);
//jxl
public static String explorExcelAllProject() throws IOException, WriteException {
Date today = new Date();
String filename = EIBProperties.getProperty("cordys.home", "")
+ System.getProperty("file.separator") + "Web"
+ System.getProperty("file.separator") + "upladFiles"
+ System.getProperty("file.separator") + "Bidding_Document"
+ System.getProperty("file.separator") + "ExplorExcelAllProject_" // w
+ today.getTime() + ".xls";
String url = "/cordys" + System.getProperty("file.separator")
+ "upladFiles" + System.getProperty("file.separator")
+ "Bidding_Document" + System.getProperty("file.separator")
+ "ExplorExcelAllProject_" + today.getTime() + ".xls"; // w
File excelFile = new File(filename);
if (!excelFile.exists()) {
excelFile.createNewFile();
}
FileOutputStream os = new FileOutputStream(excelFile);
String message = "中國商飛設計研發中心招標工作一覽表";
WritableWorkbook wwb = Workbook.createWorkbook(os);
//設置表頭
WritableSheet ws = wwb.createSheet(message, 0);
//設置行高
ws.setRowView(行號,高度(200=10));
//設置字體
WritableCellFormat wcf = new WritableCellFormat();
wcf.setAlignment(jxl.format.Alignment.CENTRE);
wcf.setFont(new jxl.write.WritableFont(WritableFont.TIMES, 16,
WritableFont.BOLD, true));
wcf.setBorder(Border.TOP, BorderLineStyle.THICK, Colour.BLACK);
wcf.setBorder(Border.LEFT, BorderLineStyle.THICK, Colour.BLACK);
wcf.setBorder(Border.RIGHT, BorderLineStyle.THICK, Colour.BLACK);
//wcf.setBorder(Border.BOTTOM, BorderLineStyle.THICK, Colour.BLACK);
//設置列數
ws.mergeCells(0, 0, 20, 0); // 2012/7/24 7/7
ws.addCell(new Label(0, 0, message, wcf));
//表頭設置
WritableCellFormat wcf1 = new WritableCellFormat();
wcf1.setFont(new jxl.write.WritableFont(WritableFont.TIMES, 10,WritableFont.BOLD, false));
wcf1.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
//wcf1.setBorder(Border.BOTTOM, BorderLineStyle.THIN, Colour.BLACK);
wcf1.setAlignment(jxl.format.Alignment.CENTRE);
//增加表頭設置多少列
ws.addCell(new Label(0, 1, "序號", wcf1));
ws.addCell(new Label(1, 1, "項目名稱", wcf1));
ws.addCell(new Label(2, 1, "批覆概算(萬元)", wcf1));
ws.addCell(new Label(3, 1, "批覆面積", wcf1));
ws.addCell(new Label(4, 1, "招標編號", wcf1));
//小計和總計樣式
WritableCellFormat wcf5 = new WritableCellFormat();
//設置字體紅色加粗無下劃線
wcf5.setFont(new jxl.write.WritableFont(WritableFont.TIMES, 10,WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,
Colour.RED));
wcf5.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
wcf5.setBackground(Colour.YELLOW);
//設置列寬
ws.setColumnView(0, 5);
ws.setColumnView(1, 15);
ws.setColumnView(2, 17);
ws.setColumnView(3, 12);
ws.setColumnView(4, 12);
wwb.write();
wwb.close();
os.close();
return url;
}