私はExcelファイルをある形式から別の形式に変換するユーティリティに取り組んでいます。次の要件を満たすために、jxlライブラリを使用することをお勧めしました。
ファイルをシートごとに読み、次の手順を実行します
シート名を取得し、それをマップのキーにしてから、その列ヘッダーを取得して値にします。
次のようになります
Map<String, List<String>> result = result<key=sheetName, value=list of column headers>
指定されたファイル内のすべてのシートに対してこれを実行します
私はこれを次のように行いました
public Map> function(String filePath)はIOException、BiffException{をスローします
Map<String, List<String>> map = new HashMap<String, List<String>>();
Workbook workBook=Workbook.getWorkbook(new File (filePath));
String [] sheetNames = workBook.getSheetNames();
Sheet sheet=null;
List<String > fields = new ArrayList<String>();
for (int sheetNumber =0; sheetNumber < sheetNames.length; sheetNumber++){
sheet=workBook.getSheet(sheetNames[sheetNumber]);
for (int columns=0;columns < sheet.getColumns();columns++){
fields.add(sheet.getCell(columns, 0).getContents());
}
map.put(sheetNames[sheetNumber],fields);
}
return map;
}
私は望ましい結果を得ることを期待してこれを行いましたが、それはすべてのシートの列ヘッダーを各キーに対して値として格納することです。つまり、ファイルに次の名前のシートが2つある場合
- sheet1
- sheet2
以下はそれらの列ヘッダーです
Sheet1- > id、名前
sheet2->カテゴリ、価格
すると地図は次のようになります
result<sheet1,<id, name, caegory, price>>
result<sheet2,<id, name, caegory, price>>
私が間違っていることを理解できませんか?私のプロジェクトにはバックエンドの計算がたくさんあり、このことに多くの時間を費やしたくないので、助けてください。
どんな助けでも大歓迎です