初始化工作薄对象
public void init(String inputPath,String sheetName) throws Exception {
try{
//创建输出流对象
outputStream = new BufferedOutputStream(new FileOutputStream(inputPath), 8192);
// 文件对象
book = Workbook.createWorkbook(outputStream);
// 工作簿对象
sheet = book.createSheet(sheetName, 0);
//设置边距
sheet.getSettings().setBottomMargin(0.5d);
sheet.getSettings().setRightMargin(0.5d);
//设置列宽 A,B,C ,D,E,F,G ,H,I ,J,K,L
int[] cellWidth={9,10,9,5,26,10,13,11,11,10,29};
for(int i=0;i<11;i++)
sheet.setColumnView(i, cellWidth[i]);
}
catch(FileNotFoundException e){
throw new Exception("Excel文件保存路径不存在!");
}
catch(IOException e){
throw new Exception("Excel文件写文件失败!");
}
}
根据自身需要设置多种不同的单元格格式:
WritableCellFormat contentFormateNoBorder_Left = new WritableCellFormat(contentFont);
//水平方向对齐--靠左
contentFormateNoBorder_Left.setAlignment(Alignment.LEFT);
// 垂直方向对齐--居中
contentFormateNoBorder_Left.setVerticalAlignment(VerticalAlignment.CENTRE);
// --全细边框
contentFormateNoBorder_Left.setBorder(Border.ALL, BorderLineStyle.THIN);
填充数据:
一:设置excel行高与合并单元格
//设置第row+1行高度为360(此处的row对应excel中的行数)
sheet.setRowView(row,360);
//合并第row+1行的第col1列和col2列之间的列
sheet.mergeCells(col1,row,col2,row);
二:文本格式数据填充
sheet.addCell(new Label(col1, row,"待填充数据", "上面提到的所需单元格格式"));
三:数据格式数据填充
//设置excel对应单元格格式
/**如果不知道格式怎么写,打开excel,点选任意一个单元格,右键--设置单元格格式--数字--自定义,选择任意格式之后,拷贝类型中的字符串即可*/
NumberFormat money = new jxl.write.NumberFormat("¥ #,##0.00");
//设置单元格格式时在构造函数添加上数字格式
WritableCellFormat contentFormateMoney = new WritableCellFormat(contentFont,money);
//同上设置单元格格式
contentFormateMoney.setAlignment(Alignment.CENTRE);
/**此时需要先设置好金额再给sheet,否则生成的excel虽然是数字格式但是内容还是文本方式显示,需要双击单元格之后里面的数字才会变为设置好的数字格式*/
jxl.write.Number labelNF = new jxl.write.Number(3, row, QcheckAmount, contentFormateMoney);
sheet.addCell(labelNF);