我有一个关于如何使用Apache的XSSF格式读入xlsx文件的快速问题。
现在,我的代码如下所示:
InputStream fs = new FileInputStream(filename); // (1)
XSSFWorkbook wb = new XSSFWorkbook(fs); // (2)
XSSFSheet sheet = wb.getSheetAt(0); // (3)...with导入了所有相关的东西。我的问题是,当我点击run时,它被卡在第(2)行,几乎是无限循环。filename只是一个字符串。
如果有人能给我一些如何解决这个问题的示例代码,我将不胜感激。我现在想要的就是从一个xlsx文件中读入一个单元格;我对xls文件使用了HSSF,没有任何问题。
谢谢你的帮助,安德鲁
发布于 2012-03-27 08:26:50
我相信这将会回答你的问题:http://poi.apache.org/spreadsheet/quick-guide.html#ReadWriteWorkbook
简而言之,您的代码应该如下所示:
InputStream inp = new FileInputStream("workbook.xlsx");
Workbook wb = WorkbookFactory.create(inp);
Sheet sheet = wb.getSheetAt(0);
Row row = sheet.getRow(2);
Cell cell = row.getCell(3);发布于 2012-04-13 03:44:47
InputStream inp = null;
try {
inp = new FileInputStream("E:/sample_poi.xls");
Workbook wb = WorkbookFactory.create(inp);
Sheet sheet = wb.getSheetAt(0);
Header header = sheet.getHeader();
int rowsCount = sheet.getLastRowNum();
System.out.println("Total Number of Rows: " + (rowsCount + 1));
for (int i = 0; i <= rowsCount; i++) {
Row row = sheet.getRow(i);
int colCounts = row.getLastCellNum();
System.out.println("Total Number of Cols: " + colCounts);
for (int j = 0; j < colCounts; j++) {
Cell cell = row.getCell(j);
System.out.println("[" + i + "," + j + "]=" + cell.getStringCellValue());
}
}
} catch (Exception ex) {
java.util.logging.Logger.getLogger(FieldController.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
inp.close();
} catch (IOException ex) {
java.util.logging.Logger.getLogger(FieldController.class.getName()).log(Level.SEVERE, null, ex);
}
}发布于 2011-07-15 22:57:36
为什么要将文件拆分成InputStream?XSSFWorkbook有一个构造函数,它只接受路径作为字符串。只需在中硬编码字符串的路径即可。一旦创建了工作簿,就可以从该工作簿创建XSSFSheets。然后是XSSFCells,它最终允许您读取单个单元格的内容(单元格本质上是基于x,y位置的)
https://stackoverflow.com/questions/5985318
复制相似问题