关于jxl里copySheet的问题 用jxl把excel表格里第1页的东西复制到第2页的时候,发现有些地方的边框线没有一起复制过去,而且原来合并单元格的地方复制过去边框线只会出来没合并时的那部分,不知道是什么原因,怎么解决 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可能是EXCEL表的问题,因为有些表用copySheet边框线能正常显示的,但有些表不能,就是会少掉一点,有谁碰到过这种问题吗? 我也遇到过这个问题。这个你的程序可能没错。要把模板内的分散的各个单元格的全选上,然后对边框设置加上边框就可以打出来了。这个是jxl的的一个bug。 如果不行,你可以尝试使用WritableWorkbook 的import 方法。见 try{ //老方法,但是它的拷贝函数有问题,在得到拷贝的时候,文字的样式会丢失,因为它不支持分散对齐的格式 Workbook wb = Workbook.getWorkbook( new File(webPath+"/WEB-INF/季度考核记录表模板.xls")); WorkbookSettings worksetting = new WorkbookSettings() ; //如果出现乱码,请使用下面的任一代码// worksetting.setEncoding("ISO-8859-1");// worksetting.setLocale(Locale.getDefault()); //打开一个文件的副本,并且指定数据写回到原文件 WritableWorkbook book = Workbook.createWorkbook(new File(webPath+"/WEB-INF/季度考核记录表.xml"),wb); // 往工作表填入数据 for (int i=0;i<length;i++) { QuarterPerformance temp = (QuarterPerformance)resultSet.get(i); String name="无名氏"; //命名以姓名,年月来区分相同的人不同的季度的记录 if ((temp.getYear()!=null)&(temp.getQuarterStart()!=null)&(temp.getQuarterEnd()!=null)) name = temp.getName()+(new SimpleDateFormat("yyyy年")).format(temp.getYear()) + (new SimpleDateFormat("MM月")).format(temp.getQuarterStart()) +" 至 "+ (new SimpleDateFormat("MM月")).format(temp.getQuarterEnd()); if("无名氏".equals(name)!=true) { /* * 此方法的效果不佳,粗黑边框有一半失效 */ //book.copySheet(0,name, i+1); book.importSheet(name,i+1,wb.getSheet(0)); } else { //book.copySheet(0,name+i, i+1); book.importSheet(name+i,i+1,wb.getSheet(0)); } jxl.write.WritableSheet ws = book.getSheet(i+1); this.getOneEleContent(temp,ws); } book.write(); book.close(); } catch(Exception e) { e.printStackTrace(); String errMSG = "导出季度报表的时候Exception[com.neusoft." +"procuratorate.performance.action.assistant." +"getReportContent] --- "+e.getMessage(); String userinfo ="温馨提示:在你导出季度报表的时候出现了异常,请联系管理员检查季度报表模板是否是空文件."; quarter.addError(ExceptionTool.getExceptionMessage(errMSG,userinfo)); } 数据库 connect time out 不知道这么晚了,还有没有人在,想问个STRUTS的问题! 大家帮忙看下下面dean,是为了查询数据库的bean 求2级过滤器 Tomcat通过配置web.xml捕获错误的问题? tomcat连接数据连接池时出错,请帮忙啊!!!!呜呜 JSP出错,请大家帮忙看看原因! 各位帮忙看看!!!!!!!!!!!!!!!! 一个很郁闷的问题,请哪位高手帮忙,多谢了!! 怎么把中文参数从弹出窗口传递到其父窗口?(用URLEncoder.encoder传过去还是乱码). 找不到工程下的文件 java中如何得到两个日期相差几天??
打出来了。这个是jxl的的一个bug。
try{
//老方法,但是它的拷贝函数有问题,在得到拷贝的时候,文字的样式会丢失,因为它不支持分散对齐的格式
Workbook wb = Workbook.getWorkbook( new File(webPath+"/WEB-INF/季度考核记录表模板.xls"));
WorkbookSettings worksetting = new WorkbookSettings() ;
//如果出现乱码,请使用下面的任一代码
// worksetting.setEncoding("ISO-8859-1");
// worksetting.setLocale(Locale.getDefault());
//打开一个文件的副本,并且指定数据写回到原文件
WritableWorkbook book = Workbook.createWorkbook(new File(webPath+"/WEB-INF/季度考核记录表.xml"),wb);
// 往工作表填入数据
for (int i=0;i<length;i++)
{
QuarterPerformance temp = (QuarterPerformance)resultSet.get(i);
String name="无名氏";
//命名以姓名,年月来区分相同的人不同的季度的记录
if ((temp.getYear()!=null)&(temp.getQuarterStart()!=null)&(temp.getQuarterEnd()!=null))
name = temp.getName()+(new SimpleDateFormat("yyyy年")).format(temp.getYear()) + (new SimpleDateFormat("MM月")).format(temp.getQuarterStart()) +" 至 "+ (new SimpleDateFormat("MM月")).format(temp.getQuarterEnd());
if("无名氏".equals(name)!=true)
{
/*
* 此方法的效果不佳,粗黑边框有一半失效
*/
//book.copySheet(0,name, i+1);
book.importSheet(name,i+1,wb.getSheet(0));
} else
{
//book.copySheet(0,name+i, i+1);
book.importSheet(name+i,i+1,wb.getSheet(0));
}
jxl.write.WritableSheet ws = book.getSheet(i+1);
this.getOneEleContent(temp,ws);
}
book.write();
book.close();
} catch(Exception e)
{
e.printStackTrace();
String errMSG = "导出季度报表的时候Exception[com.neusoft."
+"procuratorate.performance.action.assistant."
+"getReportContent] --- "+e.getMessage();
String userinfo ="温馨提示:在你导出季度报表的时候出现了异常,请联系管理员检查季度报表模板是否是空文件.";
quarter.addError(ExceptionTool.getExceptionMessage(errMSG,userinfo));
}