我正在开发一种实用程序来将 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;
}
我这样做是希望获得所需的结果,但它的作用是将所有工作表的列标题存储为每个键的值。即,如果文件中有两张名为
- 表 1
- 表2
以下是他们的列标题
Sheet1 -> id,名称
sheet2 -> 类别,价格
然后地图会像
result<sheet1,<id, name, caegory, price>>
result<sheet2,<id, name, caegory, price>>
无法弄清楚我做错了什么?请帮忙,因为我的项目有很多后端计算,我不想在这件事上花很多时间。
任何帮助将不胜感激