您的位置:首页 > 其它

JXL导出EXCEL 笔记

2016-07-29 15:40 190 查看
常用:

(1)sheet

WritableSheet sheet1 = book.createSheet("Sheet1", 0);//Sheet1为名称,0为第1个sheet页


(2)sheet中单元格添加

// 指定单元格位置(如:第一列第一行(0, 0))以及单元格内容为(如:小明)
for (int i = 0; i < heads.length; i++) {
Label cell = new Label(i, 0, heads[i]);//head[]是一个字符串数组
// 将定义好的单元格添加到工作表中
sheet1.addCell(cell);
}


(3)单元格添加样式

// 指定单元格位置(如:第一列第一行(0, 0))以及单元格内容为(如:小明)
for (int i = 0; i < heads.length; i++) {
Label cell = new Label(i, 0, heads[i],getHeaderCellStyle());//head[]是一个字符串数组,getHeaderCellStyle()是个单元格样式
// 将定义好的单元格添加到工作表中
sheet1.addCell(cell);
}

public WritableCellFormat getHeaderCellStyle(){

/*
* WritableFont.createFont("宋体"):设置字体为宋体
* 10:设置字体大小
* WritableFont.BOLD:设置字体加粗(BOLD:加粗     NO_BOLD:不加粗)
* false:设置非斜体
* UnderlineStyle.NO_UNDERLINE:没有下划线
*/
WritableFont font = new WritableFont(WritableFont.createFont("宋体"),
10,
WritableFont.BOLD,
false,
UnderlineStyle.NO_UNDERLINE);

WritableCellFormat headerFormat = new WritableCellFormat(NumberFormats.TEXT);
try {
//添加字体设置
headerFormat.setFont(font);
//设置单元格背景色:表头为黄色
//headerFormat.setBackground(Colour.YELLOW);
//设置表头表格边框样式
//整个表格线为粗线、黑色
//headerFormat.setBorder(Border.ALL, BorderLineStyle.THICK, Colour.BLACK);
//表头内容水平居中显示
headerFormat.setAlignment(Alignment.CENTRE);
} catch (WriteException e) {
System.out.println("表头单元格样式设置失败!");
}
return headerFormat;
}


(4)分sheet页

下面每1000条记录,分sheet页,可自己设置

list可传自己的list,返回为WritableWorkbook类型,heads为表头

public static WritableWorkbook createWorkBook(OutputStream os,List<UserInfo> list, String[] heads)
throws IOException, WriteException, RowsExceededException,
IllegalAccessException, InvocationTargetException,
NoSuchMethodException {
int sizeLoop = list.size();
int size = list.size();
if(sizeLoop < 1000){       //1000分页
sizeLoop = 1000;
}
int sheetSize = 1000;
int loopSize = sizeLoop/sheetSize;
if(sizeLoop%sheetSize!=0){
loopSize+=1;
}
WritableWorkbook ws = Workbook.createWorkbook(os);
for(int l = 0;l<loopSize;l++){
WritableSheet sheet = ws.createSheet("第"+(l+1)+"页", l);

for(int i=0;i<heads.length;i++){
Label cell = new Label(i,0, heads[i]);
sheet.addCell(cell );
}
int n = 0;
for(int i=l*sheetSize;i<(l+1)*sheetSize && i<=size-1;i++){
for(int k=0; k < heads.length; k++){
Label cell = null;
cell = new Label(k, n+1,list.get(i).getName());
sheet.addCell(cell);
}
n++;
}
}
return ws;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: