У меня есть метод, который отвечает за создание файла XLS с использованием рабочей книги Apache POI, и я хочу сохранить этот файл с помощью JFileChooser
.Прямо сейчас я могу создать этот файл с помощью средства записи файлов и сохранить его в заранее определенном месте.
Но требуется сохранить этот файл с помощью JFileChooser
, и я не могу понять, каксделай это.
Вот мой код:
public void excelFileCreation()
{
try
{
String path = "D:/";
String fileName = "EwayBill.xls";
String filename = path.concat(fileName);
Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet("Eway Bill");
Row row1 = sheet.createRow((short)0);
Row row2 = sheet.createRow((short)0);
CellRangeAddress transactionDetails = new CellRangeAddress(0, 0, 0, 5);
sheet.addMergedRegion(transactionDetails);
row2.createCell(0).setCellValue("Transaction details");
CellRangeAddress fromConsignorDetails = new CellRangeAddress(0, 0, 6, 13);
sheet.addMergedRegion(fromConsignorDetails);
row2.createCell(6).setCellValue("Transaction details");
Row rowhead = sheet.createRow((short)1);
rowhead.createCell(0).setCellValue("User GSTIN");
rowhead.createCell(1).setCellValue("Supply Type");
rowhead.createCell(2).setCellValue("Sub Type");
rowhead.createCell(3).setCellValue("Document Type");
rowhead.createCell(4).setCellValue("Document No");
Row row = sheet.createRow((short)2);
row.createCell(0).setCellValue(" ");
row.createCell(1).setCellValue(" ");
row.createCell(2).setCellValue(" ");
row.createCell(3).setCellValue(" ");
row.createCell(4).setCellValue(" ");
for(int i=0; i<=79; i++)
{
sheet.setColumnWidth(i, 6000);
}
FileOutputStream fileOut = new FileOutputStream(filename);
wb.write(fileOut);
fileOut.close();
if (fileChooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION)
{
java.io.File file = fileChooser.getSelectedFile();
// save to file
}
System.out.println("Your excel file has been generated!");
}
catch(Exception e)
{
e.printStackTrace();
}
}