以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 Java/Eclipse 』 (http://bbs.xml.org.cn/list.asp?boardid=41) ---- 该程序为什么会出现java.lang.ArrayIndexOutOfBoundsException: 0异常,希望高手帮助 (http://bbs.xml.org.cn/dispbbs.asp?boardid=41&rootid=&id=56614) |
-- 作者:zhjdenis -- 发布时间:12/11/2007 3:34:00 PM -- 该程序为什么会出现java.lang.ArrayIndexOutOfBoundsException: 0异常,希望高手帮助 我想利用JAVA将EXCEL中的数据取出,然后将其整理后重新保存入新的EXCEL文件,但是出现了错误,望指教,谢谢!附件是连接JXL的JAR包,和一个简单的用于调试程序的excel表格 原始数据格式为 zhang san,li si,zhou wu 101 zheng wang,xiao li 102 希望将数据整理如下形式: zhang san 101 li si 101 zhou wu 101 zheng wang 102 xiao li 102 代码如下: import java.io.File; import java.io.IOException; import jxl.*; import jxl.read.biff.BiffException; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; public class ExcelWrite { static WritableWorkbook wwb; public ExcelWrite() { try { wwb=Workbook.createWorkbook(new File("C:/newbook1.xls")); } catch (IOException e) { e.printStackTrace(); } } //从一个excel表格中读取数据,并转换形式后存入新的excel表格 public void readExcel(String filename){ Workbook wb = null; try { //构造Workbook(工作薄)对象 wb=Workbook.getWorkbook(new File(filename)); } catch (BiffException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } if(wb==null) return; //获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了 Sheet[] sheet = wb.getSheets(); if(sheet!=null&&sheet.length>0) { for(int i=0;i<sheet.length;i++) { int totalnum=0; WritableSheet ws=wwb.createSheet("zhj"+i, 0); Sheet sh=sheet[i]; int rownum=sh.getRows(); for(int j=0;j<rownum;j++) { Cell[]cell=sh.getRow(j);//获得当前行的所有单元格 String content=cell[0].getContents();//获得第1个单元格的内容 System.out.println(content); String[]newstr=stringSplit(content); /*for(String s:newstr) { System.out.println(s); }*/ String recordnum=cell[1].getContents();//获得第2个单元格的内容 System.out.println(recordnum); System.out.println(newstr.length); for(int k=0;k<newstr.length;k++) { Label labelcontent=new Label(0,totalnum,newstr[k]); Label labelrecord=new Label(1,totalnum,recordnum); totalnum++; try { //将生成的单元格添加到工作表中 ws.addCell(labelcontent); ws.addCell(labelrecord); wwb.write(); //从内存中写入文件中 } catch (RowsExceededException e) { e.printStackTrace(); } catch (WriteException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public class Indoor { } |
-- 作者:zhjf83 -- 发布时间:12/17/2007 3:59:00 PM -- 等待高手为你解答. |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
7,070.313ms |