jxl导出excel,设置单元格函数,引用另一个sheet的值,报错 Could not find named cell Sheet2
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jxl导出excel,设置单元格函数,引用另一个sheet的值,报错 Could not find named cell Sheet2相关的知识,希望对你有一定的参考价值。
jxl导出excel,设置单元格函数,引用另一个sheet的值,报错
Could not find named cell Sheet2 when parsing formula L5+(M5+N5)*VLOOKUP(H5,Sheet2!$A:$F,2,0) in cell Sheet1!K5
代码如下:
String minK5 = "L"+(4*i+5)+"+(M"+(4*i+5)+"+N"+(4*i+5)+")*VLOOKUP(H"+(4*i+5)+","+sheet2.getName()+"!$A:$F,2,0)";
Formula fK5= new Formula(10,(4*i+4),minK5,wcfN);
sheet1.addCell(fK5);
是哪里的问题
jxl导出Excel中需要跳过的的坑
正如上篇文章(JXL封装不能使用static关键字问题)所说,在jxl导出Excel时候如果频繁使用到WritableCellFormat去设置单元格的样式,这个时候经常会出现两种情况:
1、报警告:Warning: Maximum number of format records exceeded. Using default format.虽然说程序员一般不看警告,but这个警告讨厌了,他会把你超过限制的格式恢复成默认格式。所以必须解决。
2、报异常:java.lang.ArrayIndexOutOfBoundsException: 164
两者出现的场景就不细说了,说说解决方案,直接上代码:
public class OperateExcelUtils { private static WritableCellFormat normalFormat = null; //样式做单例 private static WritableCellFormat getNormalFormat() throws WriteException{ if(normalFormat==null){ normalFormat = new WritableCellFormat();//一般样式 normalFormat.setAlignment(jxl.format.Alignment.CENTRE);// 内容居中(水平+垂直) normalFormat.setVerticalAlignment(VerticalAlignment.CENTRE); normalFormat.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);// 边框 normalFormat.setLocked(true); return normalFormat; } else { return normalFormat; } } }
如果只做上述处理,多次导出就会出现问题2了,如下处理:
/** * 清除所有样式(workbook操作完成调用) */ public static void clearStaticFormat(){ normalFormat = null; } //主方法 public static void main(String[] args) { try { OutputStream os = new FileOutputStream("E:\\\\exp.xls"); WritableWorkbook workbook = Workbook.createWorkbook(os); WritableSheet sheet = workbook.createSheet("sheet",0); sheet.addCell(new Label(0, 0, "111", normalFormat)); sheet.getSettings().setProtected(true); workbook.write(); clearStaticFormat(); //workbook操作完成调用 workbook.close(); os.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
以上是关于jxl导出excel,设置单元格函数,引用另一个sheet的值,报错 Could not find named cell Sheet2的主要内容,如果未能解决你的问题,请参考以下文章