我在Boo
上有一个名为C:\Users\Harout\Desktop\Boo.xlsx
的Excel文件,其中该文件的A1
条目为TEST
,这是唯一的条目。
有没有办法使用Java控制台应用程序读取该条目?
我还可以在单元格TEST2
中写B2
吗?
请详细写下答案并尽量保持简单我在这方面对Java很新。
我还发现了另一个在stackoverflow上发布的类似question,但问题和答案对我来说有点复杂。我想保持简单,这样对未来的读者来说会更有益。
答案 0 :(得分:0)
以下是适合您的示例。 Tyr it:
try {
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(file));
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
HSSFRow row;
HSSFCell cell;
int rows; // No of rows
rows = sheet.getPhysicalNumberOfRows();
int cols = 0; // No of columns
int tmp = 0;
// This trick ensures that we get the data properly even if it doesn't start from first few rows
for(int i = 0; i < 10 || i < rows; i++) {
row = sheet.getRow(i);
if(row != null) {
tmp = sheet.getRow(i).getPhysicalNumberOfCells();
if(tmp > cols) cols = tmp;
}
}
for(int r = 0; r < rows; r++) {
row = sheet.getRow(r);
if(row != null) {
for(int c = 0; c < cols; c++) {
cell = row.getCell((short)c);
if(cell != null) {
// Your code here
}
}
}
}
} catch (Exception ioe) {
ioe.printStackTrace();
}
所以您可以获得A1的值,如下所示:
cell == sheet.getRow(0).getCell(0);
switch (cell.getCellType()) {
case Cell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue() + "\t");
break;
case Cell.CELL_TYPE_STRING:
System.out.print(cell.getStringCellValue() + "\t");
break;
}
答案 1 :(得分:0)
您可以使用Apache POI。 https://poi.apache.org/index.html
这是带有示例的文档,注释中解释的代码行 - https://poi.apache.org/spreadsheet/how-to.html
花一些时间,你会明白的。
干杯!!