¿Cómo guardar un archivo XLS usando JFileChooser?

Tengo un método que es responsable de crear un archivo XLS usando el libro de trabajo de Apache POI y quiero guardar ese archivo usando JFileChooser. En este momento puedo crear ese archivo usando el escritor de archivos y guardarlo en una ubicación predefinida.

Pero el requisito es guardar ese archivo usando JFileChooser, y no puedo entender cómo hacerlo.

Aquí está mi código:

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();
    }
}
Respuesta 1

La respuesta es más probable que cambie esto:

    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
    }

A esto:

    if (fileChooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) 
    {
      java.io.File file = fileChooser.getSelectedFile();
      FileOutputStream fileOut = new FileOutputStream(file);
      wb.write(fileOut);

      fileOut.close();
    }

Digo "muy probablemente" porque no puedo estar seguro de no ver un MCVE / SSCCE.

Respuesta: 2

Actualmente estoy cargando un archivo en Android. Ahora quiero enviar algunos datos, digamos e ID con esa carga de archivo. Así que me ocuparé de esta ID en el lado del servidor. Así es como estoy cargando el archivo. Este código ...

Mi cadena json se produce de la siguiente manera: encabezado ('Tipo de contenido: texto / json'); if (mysql_num_rows ($ result)! = 0) {$ row = mysql_fetch_assoc ($ result); $ jobj = new stdclass (); ...

Primero Scenerio cargó una textura con Stick-util.jar, donde el tamaño de la imagen = 50x50 y el tamaño de la textura = 64x64. Limitó la textura y dibujó un Quad de tamaño 64x64. Y da una imagen de tamaño 50x50. ...

El siguiente es el código sobre el que estoy preguntando: int price = 0; boolean isFree = (precio == 0); if (isFree) {precio = 10; if (isFree) System.out.println ("uno"); más ...