81,092
社区成员
发帖
与我相关
我的任务
分享
/**向Excel中输入带格式的内容,操作excel 字体 背景色 合并单元格 列宽等
* @param fileName 要生成的文件名
*/
public void writeFormatExcel(String fileName){
WritableWorkbook wwb = null;
try {
//创建工作薄
wwb = Workbook.createWorkbook(new File("D:\\"+fileName));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(wwb!=null){
//创建10行10列的工作表
WritableSheet ws = wwb.createSheet("sheet0", 0);
ws.setColumnView(0, 10);
try {
ws.setRowView(0, 400);
} catch (RowsExceededException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//设置字体格式
WritableFont wf = new WritableFont(WritableFont.TIMES);
try {
wf.setColour(Colour.RED);
wf.setPointSize(15);
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//定义单元格格式
WritableCellFormat wcf = new WritableCellFormat(wf);
//设置单元格背景颜色
try {
wcf.setBackground(Colour.BLUE);
wcf.setAlignment(Alignment.CENTRE);
} catch (WriteException e) {
e.printStackTrace();
}
try {
//合并单元格
ws.mergeCells(2, 0, 4, 0);
//将单元格第一行Label输出
ws.addCell(new Label(0,0,"姓名",wcf));
ws.addCell(new Label(1,0,"性别",wcf));
ws.addCell(new Label(2,0,"住址",wcf));
ws.addCell(new Label(5,0,"邮箱",wcf));
ws.addCell(new Label(6,0,"时间",wcf));
//将第二行背景色设为灰色
wcf.setBackground(Colour.GRAY_25);
//将第二行的“地址”分为“省-市-县”
ws.addCell(new Label(2,1,"省",wcf));
ws.addCell(new Label(3,1,"市",wcf));
ws.addCell(new Label(4,1,"县",wcf));
} catch (RowsExceededException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String string = "";
for(int i=2;i<9;i++){
for(int j=0;j<7;j++){
switch (j){
case 0: string = "张恕鑫"+i;break;
case 1: string = "男";break;
case 2: string = "河南省";break;
case 3: string = "驻马店市";break;
case 4: string = "遂平县";break;
case 5: string = "shuxin@126.com"+i;break;
case 6:
SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd HH:mm:ss");
Date date = new Date();
string = sdf.format(date);break;
default: break;
}
Label label = new Label(j,i,string);
try {
ws.addCell(label);
} catch (RowsExceededException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
try {
wwb.write();
wwb.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
jxl.write.biff.JxlWriteException: Attempt to modify a referenced format
at jxl.write.biff.CellXFRecord.setBackground(CellXFRecord.java:100)
at jxl.write.WritableCellFormat.setBackground(WritableCellFormat.java:192)
at jxl.write.WritableCellFormat.setBackground(WritableCellFormat.java:180)
at com.zsx.Excel.TestExcel.writeFormatExcel(TestExcel.java:177)
at com.zsx.Excel.TestExcel.main(TestExcel.java:266)