2011-05-19 82 views
0

我想读取一个电子表格的表单使用foor循环。我想知道这是读特别是用表欢迎使用属性的正确方法[代码高亮]:阅读多个Excel表格

Cell[][] newcell=new Cell[200][200]; 
int newsheet = workbook1.getNumberOfSheets(); 
for (int q=1;q < newsheet;q++)  
{ 
    for(int p=0;p < sheet(q).getColumns();p++) 
    { 
     for(int p1=0;p1<sheet(q).getRows();p1++) 
         /*^^^^^^^^^*/ 
     { 
       newcell[p][p1] = sheet(q).getCell(p, p1); 
           /*^^^^^^^^^*/ 
       if(newcell[p][p1].equals(saved[j])) 
       { 
        System.out.print(newcell[p][0]); 
       } 
      } 
    } 
} 

我可以使用表()为片(Q)的,因为它的投掷NullPointerExeption的财产?

+0

*,其中*你得到一个NullPointerException? – 2011-05-19 09:30:58

+0

@Andreas_D for(int p1 = 0; p1 user756742 2011-05-19 09:36:17

+0

@ user756742 - 你的自定义'sheet(int i)'方法里面肯定有错误。 'sheet(q)'有时会返回一个对象,有时会返回'null'作为'q'的相同值 - 这不应该发生。 – 2011-05-19 09:42:50

回答

3

一贯的风格与POI中的所有单元格的工作是:

for(int sheetNum=0; sheetNum < wb.getNumberOfSheets(); sheetNum++) { 
    Sheet sheet = wb.getSheetAt(sheetNum); 
    for (Row row : sheet) { 
     for (Cell cell : row) { 
      // Do something here 
     } 
    } 
} 

你的代码也许切换到更多的东西一样吗?

+0

@Gagravarr:我需要wat在这里的Row是否意味着我需要导入一些包?我正在使用Eclipse,并且已经导入了Jxl.jar,但是这并没有提供任何类似的内容。 – user756742 2011-05-19 10:02:46

+0

你在使用什么库?你的问题用Apache POI标记,这就是这个答案所指的,但现在你提到JXL? – Gagravarr 2011-05-19 10:28:51

+0

@Gagravvr - 我已经在Java下进行了标记,反正..我得到这个错误代码“只能迭代一个数组或java.lang.Iterable的实例”为foor循环中的表单[for(Row row:sheet )]我怎么过来呢? – user756742 2011-05-19 10:57:06

0

随着JXLJExcelAPI),这应该工作:

for (Sheet sheet:workbook1.getSheets()) { // getSheet() returns a Sheet[] 
    int numCols = sheet.getColumns();  // getColumns() returns an int 
    for(for int i = 0; i <= numCols; i++) { 
    Cell[] column = sheet.getColumn(i); 
    for(Cell cell:column) {    // column is a Cell[] 
     if(cell.equals(saved[j])) { 
      System.out.print(cell); 
     } 
    } 
    } 
} 
+0

我得到这个错误代码“只能遍历一个数组或java.lang.Iterable的实例”为foor循环中的表格[for(Cell [] column:sheet.getColumns( ))]我怎么过来呢?对于Jxl也是.. :( – user756742 2011-05-20 05:50:32

+0

@ user756742 - 我不知道你在做什么JavaDoc for JExcelApi清楚地告诉我,'jxl.Workbook#getSheets()'返回一个'Sheet'实例的数组,所以首先for循环**将**工作(假设,'workbook1'是'jxl.Workbook'类型 - 希望您不要混合Apache POI和jExcelAPI/jxl ...) – 2011-05-20 06:14:24

+0

我没有混合Apache POI和Jxl API .. 。我正在宣布工作簿为 Workbook workbook1 = Workbook.getWorkbook(new File(“filenamepath”));并且导入了jxl.Wookbook,我希望只能使用jxl.workbook类型 – user756742 2011-05-20 06:47:57