如何通过Java代码从Excel文件中读取真/假值

如何通过Java代码从Excel文件中读取真/假值,java,Java,我正在通过Java代码从Excel中读取true/false作为值。读取后,我得到1/0作为输出 OPCPackage pkg = OPCPackage.open(fileURL); System.out.println(pkg); XSSFReader reader = new XSSFReader(pkg); System.out.println(reader); SharedStringsTable sst = reader.getSharedStringsTable(); System.

我正在通过Java代码从Excel中读取
true
/
false
作为值。读取后,我得到1/0作为输出

OPCPackage pkg = OPCPackage.open(fileURL);
System.out.println(pkg);
XSSFReader reader = new XSSFReader(pkg);
System.out.println(reader);
SharedStringsTable sst = reader.getSharedStringsTable();
System.out.println(sst);
InputStream workbookData = reader.getWorkbookData();

如果将
true
读作
true
false
读作
false
我通常有一段代码如下所示:

Workbook workbook = WorkboookFactory.create(...); // File, InputStream, etc
Cell cell = workbook.getSheet("foo").getRow(x).getCell(y);

Object value;
int cellType = cell.getCellType() == Cell.CELL_TYPE_FORMULA 
    ? cell.getCachedFormulaResultType() : cell.getCellType();
switch (cellType) {
    case Cell.CELL_TYPE_BOOLEAN: 
        value = cell.getBooleanCellValue();  
        break;

    case Cell.CELL_TYPE_NUMERIC:
        value = cell.getNumericCellValue();
        break;

    ...
}
doStuff(value);

这将起作用,因为如果我从excel处理(读取)1,那么它也将转换为TRUE。我是ETL开发者。我们正在从excel中读取值并将其迁移到数据库中。调整了我的答案以使用我在处理cellshere之前使用的一段通用代码。将“foo”替换为fileURL路径,并将工作簿替换为workbookData.Cell Cell=工作簿.getSheet(“foo”).getRow(x).getCell(y);这里“foo”被fileURL路径替换,工作簿被workbookData替换。在收到错误消息后,我进行了这些更正,如“方法getSheet(String)未定义inputstream类型。不正确,“foo”应该是excel电子表格中的工作表名称。我还提到了WorkbookFactory。