jxl.jar包中createSheet()方法中String类型的参数表明新建工做表的名称,int参数表示新建工做表的编号。java
当新建的2个sheet编号相同时会发生什么状况?新的工做表会覆盖旧的工做表吗?实践出真知:数组
public static void main(String args[]) throws BiffException, IOException, WriteException{ System.out.println("zhangyujian"); //建立文件 File xlsFile= new File("vita.xls"); //建立工做簿 WritableWorkbook workbook = Workbook.createWorkbook(xlsFile); //建立工做表 //WritableSheet sheet = workbook.createSheet("sheet00", 0); workbook.createSheet("sheet00", 0); workbook.createSheet("sheet01", 0); workbook.createSheet("sheet02", 0); //关闭工做簿 workbook.close(); }
运行结果:code
由结果能够看出,新建立的工做表会变成第一页,而以前建立的工做表并未被覆盖,而是向后移变成了第二页。blog
当是用不连续的编号建立工做表时,会发生什么状况?排序
public static void main(String args[]) throws BiffException, IOException, WriteException{ System.out.println("zhangyujian"); //建立文件 File xlsFile= new File("vita.xls"); //建立工做簿 WritableWorkbook workbook = Workbook.createWorkbook(xlsFile); //建立工做表 //WritableSheet sheet = workbook.createSheet("sheet00", 0); workbook.createSheet("sheet00", 0); workbook.createSheet("sheet01", 1); workbook.createSheet("sheet02", 3); //关闭工做簿 workbook.close(); }
运行结果:get
由结果看出,编号为3的工做表,并非第4页,而是第3页。且此时若是调用方法getSheet(3)时将会报数组越界的错误。Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
it
综合的例子来判断一下排序的逻辑:io
public static void main(String args[]) throws BiffException, IOException, WriteException{ System.out.println("zhangyujian"); //建立文件 File xlsFile= new File("vita.xls"); //建立工做簿 WritableWorkbook workbook = Workbook.createWorkbook(xlsFile); //建立工做表 //WritableSheet sheet = workbook.createSheet("sheet00", 0); workbook.createSheet("sheet04", 4); workbook.createSheet("sheet03", 3); workbook.createSheet("sheet02", 2); workbook.createSheet("sheet01", 1); workbook.createSheet("sheet00", 0); //关闭工做簿 workbook.close(); }
运行结果:table
由结果可得,首次建立的sheet04虽然编号为4,可是工做簿中不存在其余页,因此它是第一页,此时编号实际为0;建立sheet03时,虽然标号为3,可是此时工做簿中仅有一张表,根据例2,因此它顺延后实践编号为1,在工做簿的第二页;建立sheet02时,编号为2,此时的工做簿中已经有0、1编号,因此编号为2的sheet02刚好放置在工做簿的第3页,也就是此时的最后一页;建立sheet01时,编号为1,根据例1,它会插入的标号为1的位置,此时顺序为sheet04 sheet01 sheet03 sheet02;建立最后一张表sheet0,编号为0,即将其插入到编号为0的位置,第一页。因此最后的排序是sheet00 sheet04 sheet01 sheet03 sheet02。class
综上,createSheet()方法的int参数与实际编号的关系,不妨能够这样归纳:
我的认为,第三种为经常使用、简单的用法。