java - 将excel的内容写入文本文件

标签 java excel list text

我需要读取 Excel 文件的内容并将其转储到文本文件中。我能够从文件中读取内容。 我创建了一个 List excelData = new ArrayList(); ,它应该保存 Excel 工作表中存在的行数据。但每一列都有不同的数据类型。如何将内容保存到列表中?

List excelData = new ArrayList();
    try {
        FileInputStream file = new FileInputStream(new File("H:\\Docs\\Medical Data Record\\MedicalRecord2015.xlsx"));
        XSSFWorkbook wb = new XSSFWorkbook(file);
        XSSFSheet ws = wb.getSheetAt(0);
        Iterator<Row> itr = ws.iterator();
        while (itr.hasNext()) {
            Row row = itr.next();
            Iterator<Cell> itrCell = row.cellIterator();
            while (itrCell.hasNext()) {
                Cell cell = itrCell.next();
                switch (cell.getCellType()) {
                    case Cell.CELL_TYPE_NUMERIC:
                        double val = cell.getNumericCellValue();
                        break;
                    case Cell.CELL_TYPE_STRING:
                        String txtval = cell.getStringCellValue();
                        break;
                }
            }
             }

谢谢

最佳答案

看来你不需要List ,但是List<List<Object>>这里:

List<List<Object>> excelData = new ArrayList<>();

try {
   //...
   while (itr.hasNext()) {
       Row row = itr.next();
       List<Object> dataRow = new ArrayList<>();
       excelData.add(dataRow);
       Iterator<Cell> itrCell = row.cellIterator();
       while (itrCell.hasNext()) {
          Cell cell = itrCell.next();
          if (cell == null) {
               dataRow.add(null);
               continue;
          }
          switch (cell.getCellType()) {
          case Cell.CELL_TYPE_NUMERIC:
              dataRow.add(cell.getNumericCellValue());
              break;
          case Cell.CELL_TYPE_STRING:
              dataRow.add(cell.getStringCellValue());
              break;
          case Cell.CELL_TYPE_BOOLEAN:
              dataRow.add(cell.getBooleanCellValue());
              break;
          case Cell.CELL_TYPE_BLANK:
              dataRow.add("");
              break;
          default:
              dataRow.add(cell);
          }
      }
  }

现在,excelData包含List表示为 List<Object> 的行数,并且可以轻松地逐行保存到文本文件。为了获得更好的一致性,您还需要检查其他类型的单元格,例如 Cell.CELL_TYPE_BOOLEANnull .

关于java - 将excel的内容写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29900850/

相关文章:

java - Android 设备上是否有唯一的启动 session ID 或计数?

regex - 如何使用 Excel 公式来验证自定义的电子邮件地址?

c# - 导出到 excel - Windows Server 2008 IIS7 上的问题

list - Prolog:从列表中随机选择规则并传递参数

python - 如何获取元组列表并将元组从字符串更改为整数

java - 在模拟器和手机上获取不同的 DateFormat 结果 - Android

java - 服务器套接字,多客户端,每个 1 行

java - 尝试从另一个不工作的 ArrayList 中过滤

excel - 仅使用公式在 Excel 中获取唯一值

无法以正确的模式从文件复制/读取到列表