Я почти готов решить свою проблему, но просто застрял в небольшой проблеме. Я пытаюсь распечатать файл excel с LinkedHashmap
. Я использую Java и POI-библиотеку для своей цели.Написание листа excel с LinkedHashmap с использованием Java POI
Я извлекаю некоторые данные из другого файла excel в LinkedHashmap и распечатываю эти данные в новый файл excel.
Данные хранятся в LinkedHashmap
большой и перечислены в следующем порядке:
Keys | Values
-----------------------------------
Key1 : value1, value1, value1
Key2 : value2, value2, value2
key3 : value3, value3, value3
Что я хочу:
Выход в Ехчел должен отображаться в следующем формате:
Excel_file_out_deserved.xslx:
+
key1 | value1
key1 | value1
key1 | value1
| // (if possible, empty cell space here will look good)
key2 | value2
key2 | value2
key2 | value2
| // (if possible, empty cell space here will look good)
key3 | value3
key3 | value3
key3 | value3
Что я получаю:
My_excel_file_out.xslx:
| value1 // (why my first column is empty?!, it should print keys there)
| value1
| value1
| value2
| value2
| value2
| value3
| value3
| value3
То, что я пытался:
FileOutputStream out = new FileOutputStream(new File("my_excel.xlsx"));
XSSFWorkbook newWorkbook = new XSSFWorkbook();
XSSFSheet sheet = newWorkbook.createSheet("print_vertical");
int row = 0;
// loop through all the keys
for(String key : linkMap.keySet()){
List<String> values = linkMap.get(key);
for (String value:values){
// print keys in 1st column
sheet.createRow(row).createCell(0).setCellValue(key); // why this doesn't work? :-/
// print values in 3rd column
sheet.createRow(row).createCell(2).setCellValue(value); // this works fine
row++;
}
}
newWorkbook.write(out);
out.close();
Таинственно, когда я удалить внутренний для цикла значений без пропуска sheet.createRow(row).createCell(0).setCellValue(key);
линии, внешний контур будет правильно печатать ключевые значения в первой строке столбца мудрым. Я не могу понять, где я ошибаюсь. Благодарю.
Благодарим вас за ответ и объяснение. Отлично работает. просто то, что я хотел :) – Dhruvify