/*
* 创建Workbook
*/
Workbook workBook = null;
WritableWorkbook wwb = null;
try {
// 通过File(DIR)来创建一个Workbook对象
workBook = Workbook.getWorkbook(new File(DIR));
// 通过已经创建的Workbook对象创建一个WritableWorkbook对象
wwb = Workbook.createWorkbook(response.getOutputStream(), workBook);
// 获取WritableWorkbook里面有多少个Sheet
int sheetNameLength = wwb.getSheetNames().length;
// 遍历每一个Sheet并往里面塞值
int x=3;
for (int i = 0; i < sheetNameLength; i++) {
// 获取第index个WritableSheet;
WritableSheet ws = wwb.getSheet(i);
?
wwb.write();
// wwb.close();
response.flushBuffer();
} catch (BiffException e) {
log.error(e);
} catch (IOException e) {
log.error(e);
} finally {
try {
if (wwb != null) {
wwb.close();
}
} catch (IOException e) {
log.error(e);
} catch (WriteException e) {
log.error(e);
}
if (workBook != null) {
workBook.close();
}
}
记得要执行
response.flushBuffer();
? 不然不能直接在浏览器打开.
?
?
?
1:? 新建字体格式
jxl.write.WritableFont wfSong = new jxl.write.WritableFont(WritableFont.createFont("宋体"),12, WritableFont.NO_BOLD, false,UnderlineStyle.NO_UNDERLINE);
?
参数1 字体 参数2 字体大小 参数三 加粗与否 BOLD? or NO_BOLD 参数四 是否斜体
参数五 没有下划线
jxl.write.WritableCellFormat wcfDisplay = new jxl.write.WritableCellFormat();
wcfDisplay.setFont(wfSong);
?
创建一个能写的cell格式化对象 并把刚才的字体赋值给它.
?
jxl.write.Number numVencd = new jxl.write.Number(0,j+4,Double.parseDouble(stBean.getVencd()),wcfDisplay);
ws.addCell(numVencd);
?
创建一个数值对象 并把该cell写到WritableSheet==>ws中
参数一 列, 参数二 行 ,参数三 值 , 参数四 格式化对象
?
jxl.write.Label labelBareaname= new jxl.write.Label(2,j+4,stBean.getBareaname(),wcfDisplay);
ws.addCell(labelBareaname);
?
label 类型的和number类型的用法一样.
?
jxl.write.NumberFormat nfPERCENT_FLOAT = new jxl.write.NumberFormat("0.00%");
jxl.write.WritableCellFormat wcfnfPERCENT_FLOAT = new jxl.write.WritableCellFormat(nfPERCENT_FLOAT);
wcfnfPERCENT_FLOAT.setFont(wfSong);
jxl.write.Number numSalerate = new jxl.write.Number(6,j+4,Double.parseDouble(stBean.getSalerate()),wcfnfPERCENT_FLOAT);
ws.addCell(numRcrate);
?
Line1: 创建一个NumberFormat对象.? 并且格式为 Excel中 百分比 小数位数为两位的.
Line2: 创建一个可写的Cell格式化对象.并把NumberFormat对象赋值给它
Line3: 给Cell格式化对象设置字体格式.? (详情见上).
Line4: 创建一个Number对象 并设置它的列,行,值,并把该格式化对象赋值给它.
Line5: 把该Cell加到WriteableSheet中.
?
jxl.write.NumberFormat nfTHOUSANDS_INTEGER = new jxl.write.NumberFormat("#,##0");
jxl.write.WritableCellFormat wcfTHOUSANDS_INTEGER = new jxl.write.WritableCellFormat(nfTHOUSANDS_INTEGER);
wcfTHOUSANDS_INTEGER.setFont(wfSong);
jxl.write.Number numRealvalue = new jxl.write.Number(8,j+4,Double.parseDouble(stBean.getRealvalue()),wcfTHOUSANDS_INTEGER);
ws.addCell(numRealvalue);
?
Line1: 创建一个NumberFormat对象.? 并且格式为 Excel中 货币格式.没有小数位数,没有货币符号.能显示负数,千位以','分割的格式.
Line2: 创建一个可写的Cell格式化对象.并把NumberFormat对象赋值给它
Line3: 给Cell格式化对象设置字体格式.? (详情见上).
Line4: 创建一个Number对象 并设置它的列,行,值,并把该格式化对象赋值给它.
Line5: 把该Cell加到WriteableSheet中.