Приведенный ниже метод, который мы можем использовать для создания листа в файле Excel, нам не нужно указывать номер столбца, и я передаю записи Db, значения заголовка и имя листа в качестве аргумента.На основе размера результирующего набора он будет динамически создавать строки и столбцы.
Примечание:
// call this method in .java test file using @AfterClass annotation
writes in single excel file with multiple sheets. This is my scenario, We can use annotation based on our needs
@AfterClass()
private static void WriteInExcelFile() throws Exception {
excelWriterUtils.writeExcelFile("Results.xls");
}
public void writeResultsnExcelSheet(List<Map<String, String>> records, String sheetName,
List<String> headerValues) throws Exception {
XSSFSheet spreadsheet = workbook.createSheet(sheetName);
// Header
XSSFRow header = spreadsheet.createRow(0);
setValue(header, headerValues);
for (int i = 0, size = records.size(); i < size; i++) {
XSSFRow row = spreadsheet.createRow(i + 1);
Map<String, String> record = records.get(i);
setValue(row, record.values());
}
private void setValue(XSSFRow row, Collection<String> values) {
Iterator<String> valueIter = values.iterator();
int index = 0;
while (valueIter.hasNext()) {
XSSFCell cell = row.createCell(index);
cell.setCellValue(valueIter.next());
index++;
}
}