首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 讀寫 Excel:String[][] 與 List<String[]> 互轉實戰

     編輯:程式設計疑難解答

場景痛點

使用 Apache POI 讀取 Excel 獲取 String[][],需傳遞給 JXL 寫入新文件。原代碼中 createTable(String[] body, ...) 參數類型不匹配,導致編譯錯誤。

核心修改:統一使用 List<String[]>

將讀取方法返回類型、寫入方法參數類型均改為 List<String[]>,避免二維數組長度不固定、轉換繁瑣的問題。

關鍵代碼調整

// 讀取:返回 List<String[]>
public static List<String[]> getData(File file, int ignoreRows) throws ... {
    List<String[]> result = new ArrayList<>();
    // ... 解析邏輯 ...
    result.add(values); // 直接加入數組
    return result; // 無需轉為 String[][]
}

// 寫入:接收 List<String[]>
public boolean createTable(List<String[]> data, String filePath) {
    // ...
    for (int j = 0; j < data.size(); j++) {
        String[] row = data.get(j);
        for (int k = 0; k < row.length; k++) {
            // 寫入單元格 row[k]
        }
    }
    // ...
}

優勢總結

  • 動態行數、列數自適應,無需預先計算最大列數。
  • 代碼更簡潔,消除 String[][] 到 List 的雙向轉換。
  • 符合 Java 集合框架慣用模式,便於後續流式處理(如 Stream API)。

此模式適用於所有「讀取表格數據 → 內存處理 → 寫入表格」的場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved