我可以使用Java控制台应用程序从Excel文件读取和写入字符串吗?

时间:2016-09-02 03:27:26

标签: java excel

我在Boo上有一个名为C:\Users\Harout\Desktop\Boo.xlsx的Excel文件,其中该文件的A1条目为TEST,这是唯一的条目。

有没有办法使用Java控制台应用程序读取该条目?

我还可以在单​​元格TEST2中写B2吗?

请详细写下答案并尽量保持简单我在这方面对Java很新。

我还发现了另一个在stackoverflow上发布的类似question,但问题和答案对我来说有点复杂。我想保持简单,这样对未来的读者来说会更有益。

2 个答案:

答案 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

花一些时间,你会明白的。

干杯!!