3

我有以下代码可以从测试文件中读取并在控制台上打印,但它没有打印任何东西,我不知道如何检查它产生的错误。我正在使用java,selenium,即10,win 8。

public class Rowcount {
    public static void main(String[] args) throws BiffException, IOException {
        FileInputStream exo=new FileInputStream("E:\\Test filee.xlsx");
        Workbook wbo=Workbook.getWorkbook(exo);
        Sheet wso=wbo.getSheet(0);
        int lastrownum;
        lastrownum= wso.getRows();
        System.out.println(lastrownum);
    }
}
4

3 回答 3

1

你在使用 JExcelApi 吗?如果是这样,我认为它不支持 Excel 2007 及更高版本。您可能会考虑研究Apache POI

于 2013-12-13T13:48:41.977 回答
1

jxl 不适用于 xlsx。尝试使用 apache poi 来实现

并且此代码被错误引用

FileInputStream exo=new FileInputStream(""E:\\Test filee.xlsx"");

你需要删除额外的报价

于 2013-12-13T14:08:05.133 回答
0

以下代码对我有用:

import java.io.File;
import java.io.IOException;

import jxl.Cell;
import jxl.CellType;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public class ReadExcell {
public static void main(String[] args) {
ReadExcell.ExcelFile("D:\\rptViewer.xls");
}

/*
* Read excel file using j excel file
*/
public static String ExcelFile(String path){
StringBuilder excelContent = new StringBuilder();

try
{
Workbook workbook = Workbook.getWorkbook(new File(path));
Sheet sheet = workbook.getSheet(0);

excelContent = new StringBuffer();

for(int rows = 0 ; rows < sheet.getRows() ; rows++){
StringBuffer row = new StringBuffer();
for(int colums = 0 ; colums < sheet.getColumns() ;colums++){
  Cell cell = sheet.getCell(colums, rows);
if(cell.getType() == CellType.LABEL){
row.append(cell.getContents()+ ",");
}else
if(cell.getType() == CellType.NUMBER){
row.append(cell.getContents()+ ",");
}
}

excelContent.append(row.toString());
System.out.println(row.toString());
}

} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}    

return excelContent.toString();
}
}    
于 2013-12-16T09:44:45.053 回答