首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

用jxl导出excel为什么把小弟我自己在模板中设置的格式冲掉了

2012-03-14 
用jxl导出excel为什么把我自己在模板中设置的格式冲掉了Listlist(List)request.getSession().getAttribut

用jxl导出excel为什么把我自己在模板中设置的格式冲掉了
List   list   =   (List)   request.getSession().getAttribute( "list ");
//读取自己模板
Workbook   workbook   =   Workbook.getWorkbook(moFile);
WritableWorkbook   copy   =   Workbook.createWorkbook(response.getOutputStream(),   workbook);
WritableSheet   sheet   =   copy.getSheet(0);
String   ccol   =   request.getParameter( "col ");
String   crow   =   request.getParameter( "row ");

//   依次处理各行
for   (int   i   =   0;   i   <   list.size();   i++)
{
List   listrow   =   (List)   list.get(i);
int   col   =   Integer.parseInt(ccol);  
//   起始列
int   row   =   i+Integer.parseInt(crow);  
//   起始行
//   依次处理各列
for   (int   j   =   0;   j   <   listrow.size();   j++)
{
WritableCell   cellb   =   sheet.getWritableCell(col   +   j   -   1,row);
if   (cellb.getType()   ==   CellType.EMPTY)
{
String   labelvalue   =   (String)   listrow.get(j);
if   (labelvalue   ==   null)
labelvalue   =   "0 ";
log.info((col   +   j   -   1)+ "         "+row);
Label   label   =   new   Label(col   +   j   -   1,   row,labelvalue);
sheet.addCell(label);
}}}

把我自己在模板中设置的格式冲掉了,我画的表格线也没有了~~~~

[解决办法]
你的程序有点没看懂,我这里有一个程序,希望能对你有点帮助
try
{
Workbook book= Workbook.getWorkbook(new File( "test.xls "));
//获得第一个工作表对象
Sheet sheet=book.getSheet(0);
//得到第一列第三行的单元格
WritableWorkbook book1=
Workbook.createWorkbook(new File( "write.xls "));
WritableSheet sheet1=book1.createSheet( "B-2 ",0);
int rowCount=sheet.getRows()-3;
//System.out.println( "rowcount= "+rowCount);
for(int i=0;i <rowCount;i++)
{
sheet1.setRowView(i*12+1,800);
sheet1.mergeCells(0,i*12+1,16,i*12+1);
WritableFont wf = new WritableFont(WritableFont.COURIER,18,WritableFont.BOLD,false);
WritableCellFormat wcf = new WritableCellFormat(wf);
//WritableFont wf1 = new WritableFont(WritableFont.COURIER,10,WritableFont.BOLD,false);
//WritableCellFormat wcf1 = new WritableCellFormat(wf1);
wcf.setAlignment(jxl.format.Alignment.CENTRE);
Label head=new Label(0,i*12+1, "儿童少年户卡 ",wcf);
sheet1.addCell(head);
sheet1.mergeCells(0,i*12+2,1,i*12+2);
Label gtz=new Label(0,i*12+2, "高台子 ");
sheet1.addCell(gtz);
Label xz=new Label(2,i*12+2, "乡(镇) ");
sheet1.addCell(xz);
sheet1.mergeCells(4,i*12+2,11,i*12+2);
Label ycg=new Label(4,i*12+2, "洋草沟村 ");//可更改
sheet1.addCell(ycg);
//Label cun=new Label(6,i*12+2, "村 ");
//sheet1.addCell(cun);
//sheet1.mergeCells(7,i*12+2,11,i*12+2);
Label tkrq=new Label(12,i*12+2, "填卡日期: ");
sheet1.addCell(tkrq);
Label year=new Label(13,i*12+2, "2006 年 ");
sheet1.addCell(year);
Label month=new Label(14,i*12+2, "9 月 ");
sheet1.addCell(month);
sheet1.mergeCells(15,i*12+2,16,i*12+2);
Label day=new Label(15,i*12+2, "日 ");
sheet1.addCell(day);
//sheet1.setRowView(i*12+3,800);


Label jzxm=new Label(0,i*12+3, "家长姓名 ");
sheet1.addCell(jzxm);
Cell cell=sheet.getCell(14,i+3);
String result=cell.getContents();
Label jzxm1=new Label(1,i*12+3,result);
sheet1.addCell(jzxm1);
System.out.println(result);
Label zy=new Label(2,i*12+3, "职业 ");
sheet1.addCell(zy);
sheet1.mergeCells(3,i*12+3,5,i*12+3);
Label zy1=new Label(3,i*12+3, "农民 ");
sheet1.addCell(zy1);
Label jtrk=new Label(6,i*12+3, "家庭人口 ");
sheet1.addCell(jtrk);
Label jtzz=new Label(8,i*12+3, "家庭住址 ");
sheet1.addCell(jtzz);
sheet1.mergeCells(9,i*12+3,16,i*12+3);
sheet1.setRowView(i*12+4,800);
sheet1.setColumnView(1,7);
Label bh=new Label(0,i*12+4, "编号 ");
sheet1.addCell(bh);
Label bh1=new Label(0,i*12+5,(i+1)+ " ");
sheet1.addCell(bh1);
Label ertxm=new Label(1,i*12+4, "儿童少年姓名 ");
sheet1.addCell(ertxm);
Cell cell2=sheet.getCell(1,i+3);
String result2=cell2.getContents();
Label etxm=new Label(1,i*12+5,result2);
sheet1.addCell(etxm);

sheet1.setColumnView(2,5);
Label xb=new Label(2,i*12+4, "性别 ");
sheet1.addCell(xb);
Cell cell1=sheet.getCell(2,i+3);
String result1=cell1.getContents();
Label xb1=new Label(2,i*12+5,result1);
sheet1.addCell(xb1);

sheet1.setColumnView(3,5);
Label mz=new Label(3,i*12+4, "民族 ");
sheet1.addCell(mz);
Cell cell3=sheet.getCell(3,i+3);
String result3=cell3.getContents();
Label mz1=new Label(3,i*12+5,result3);
sheet1.addCell(mz1);

sheet1.setColumnView(4,8);
Label csny=new Label(4,i*12+4, "出生年月日 ");
sheet1.addCell(csny);
Cell cell4=sheet.getCell(4,i+3);
String result4=cell4.getContents();
Label csny1=new Label(4,i*12+5,result4);
sheet1.addCell(csny1);

sheet1.setColumnView(5,5);
Label nl=new Label(5,i*12+4, "年龄 ");
sheet1.addCell(nl);

sheet1.setColumnView(6,8);
Label whcd=new Label(6,i*12+4, "文化程度 ");
sheet1.addCell(whcd);

sheet1.setColumnView(7,6);
Label xjdxx=new Label(7,i*12+4, "现就读学校 ");
sheet1.addCell(xjdxx);

Label rxsj=new Label(8,i*12+4, "入学时间 ");
sheet1.addCell(rxsj);

Label sznj=new Label(9,i*12+4, "所在年级 ");
sheet1.addCell(sznj);

Label byxx=new Label(10,i*12+4, "毕业学校 ");
sheet1.addCell(byxx);

Label bysj=new Label(11,i*12+4, "毕业时间 ");
sheet1.addCell(bysj);

//sheet1.setColumnView(12,10);
Label mbydmnx=new Label(12,i*12+4, "未毕业读满规定年限 ");
sheet1.addCell(mbydmnx);

sheet1.setColumnView(13,10);
Label jfzgby=new Label(13,i*12+4, "经非正规教育完成相应学业 ");
sheet1.addCell(jfzgby);

Label cjlx=new Label(14,i*12+4, "残疾类型 ");
sheet1.addCell(cjlx);

//sheet1.setColumnView(12,6);
Label ywxxnl=new Label(15,i*12+4, "有无学习能力 ");
sheet1.addCell(ywxxnl);

sheet1.setColumnView(16,5);
Label bz=new Label(16,i*12+4, "备注 ");
sheet1.addCell(bz);

Label sm=new Label(0,i*12+9, "说明: ");
sheet1.addCell(sm);
//Label label=new Label(1,0,result);

//sheet1.addCell(label);

}








book1.write();
book1.close();
book.close();

}catch(Exception e)
{
System.out.println(e);
}
[解决办法]
或者:
Label label = new Label(col + j - 1, row,labelvalue);
改成:
Label l = (Label)cellb;
l.setString(labelvalue);

[解决办法]
使用专业的excel操作组件Jxcell,
http://www.jxcell.net
[解决办法]

热点排行