Мне нужно экспортировать результат набора результатов в лист Excel, используя Java. Resultset содержит таблицу с тысячами строк и несколькими столбцами.
Если кто-то может предоставить пример кода, который будет очень полезен, так как я застрял с этой проблемой. Ниже приведен пример кода, который я использую для достижения этой цели, но каким-то образом не могу получить правильные данные в файле Excel: -
SSFWorkbook workbook = new XSSFWorkbook();
try {
setConnection(appDB);
String queryName="SELECT * FROM ALL_TABLES where table_name='table_name'";
Reporter.addStepLog("----------------------------------- " + queryName.toUpperCase()
+ "\n - Validation Start" + " -----------------------------------");
ps = con.prepareStatement(queryName, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
rs = ps.executeQuery();
Statement statement = con.createStatement();
XSSFSheet spreadsheet = workbook.createSheet("employedb");
ResultSet resultSet = statement.executeQuery("select * from all_tab_columns where table_name='table_name'");
XSSFRow row = spreadsheet.createRow(0);
XSSFCell cell;
int cc=resultSet.getMetaData().getColumnCount();
for(int i=1;i<=cc;i++)
{
String headerVal=resultSet.getMetaData().getColumnName(i);
headerValues.add(headerVal);
cell = row.createCell(i-1);
cell.setCellValue(resultSet.getMetaData().getColumnName(i));
}
System.out.println(headerValues);
int i = 1;
while (resultSet.next())
{
for(int j=1;j<=cc;j++)
{
System.out.println(resultSet.getString(j));
XSSFRow row1 = spreadsheet.createRow((short) i);
row1.createCell((short) i).setCellValue(resultSet.getString(resultSet.getMetaData().getColumnName(j)));
i++;
}
}
FileOutputStream out = new FileOutputStream(new File("S:\\Downloads\\excel.xlsx"));
workbook.write(out);
out.close();
System.out.println("exceldatabase.xlsx written successfully");
}catch(Exception e){}
}
Пожалуйста, дайте мне знать, если вопрос не ясен, так как я новичок в этом форуме.