簡體   English   中英

我有一個 xlxs 解析器。 在代碼中。 我不能太多改變我的方法

[英]I have an xlxs parser. In the code. I can't change my approach much

      public ResponseEntity<Object> importPcpXlsx(MultipartFile xlsx) {
      try {
        XSSFWorkbook xssfWorkbook = new XSSFWorkbook(xlsx.getInputStream());
        XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);
        Row row;
        Cell cell;
        int i = 1;
      
        List<String> number = new ArrayList<>();
        while (true) {
         if (xssfSheet.getRow(i) != null) {
           row = xssfSheet.getRow(i);
           cell = row.getCell(0);
 
           if (cell.getSheet()
              .getRow(0)
              .getCell(0)
              .getRichStringCellValue()
              .getString()
              .equals("Number".trim())) {
            
             number.add(cell.getStringCellValue().trim());
 
             log.info("number: " + i + ".  № " + cell.getStringCellValue());
           }
         } else {
           i = 1;
           break;
         }
         i++;
        }
     
        List<String> kpgz = new ArrayList<>();
        while (true) {
          if (xssfSheet.getRow(i) != null) {
          
            row = xssfSheet.getRow(i);
            cell = row.getCell(1);
 
            if (cell.getSheet()
               .getRow(0)
               .getCell(1)
               .getRichStringCellValue()
               .getString()
               .equals("kpgz".trim())) {
 
             kpgz.add(cell.getStringCellValue().trim());
 
             log.info("kpgz: " + i + ". " + cell.getStringCellValue());
           }
         } else {
           i = 1;
           break;
         }
         i++;
       }

我 go 通過列並閱讀每列下的所有行。 但是,如果我有一些列不會出現在 xlxs 文件中怎么辦。 也就是說,我需要一個不必嚴格指定列的選項。 請預測。 在按列讀取的代碼中,由於列具有不同的類型,因此應該進行不同的處理。 我需要這樣做,這樣我就不會像我那樣在列號代碼中指定列數 cell = row.getCell(0); 或 row.getCell(1) 或 row.getCell(2)

一一讀取列並綁定它們的類型,然后檢查這些列下的數據。

請參閱此處的類型檢查示例: Best language to parse extremely large Excel 2007 files

如果你能 def.netely 識別列,那不是問題。 如果不行,你應該考慮換api。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM