【问题标题】:saving files JExcel with Filechooser使用 Filechooser 保存文件 JExcel
【发布时间】:2014-03-04 16:57:46
【问题描述】:

我正在尝试使用 jxl 保存一个 excel 文件,但是当我尝试保存文件时必须重新键入并保存没有内容的纯文本。我正在使用一个类来生成excel文件。

public class lsheet {
    public void fillData(JTable table, File file){
        try{
           WritableWorkbook workbook1 = Workbook.createWorkbook(file);
            WritableSheet sheet1 = workbook1.createSheet("Data 1", 0);
            TableModel model = table.getModel();
            for (int i = 0; i < model.getColumnCount(); i++) {
                Label column = new Label(i, 0, model.getColumnName(i));
                sheet1.addCell(column);
            }
            int j = 0;
            for (int i = 0; i < model.getRowCount(); i++) {
                for (j = 0; j < model.getColumnCount(); j++) {
                    Label row = new Label(j, i + 1,
                            model.getValueAt(i, j).toString());
                    sheet1.addCell(row);
                }
            }
            workbook1.write();
            workbook1.close();
        }catch(Exception ex){
            ex.printStackTrace();
        }
    }
}

这个动作按钮,如何在表格中显示带有加载数据的文件选择器?

lsheet sht = new lshtCalc();
java.util.Date today = new java.util.Date();
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
try{
  String name="";
  JFileChooser file=new JFileChooser();
  file.showSaveDialog(this);
  File save =file.getSelectedFile();
  if(save !=null){
      FileWriter save = new FileWriter(save + ".xls");
      sht.fillData(tblCliente, new File("Report-Client-"+ sdf2.format(today).toString()+".xls"));
      save.close();
  }
}catch(Exception ex){
    ex.printStackTrace();
}

【问题讨论】:

    标签: java jxl filechooser


    【解决方案1】:

    您传递给 fillData 方法的文件对象是您创建的带有时间戳的东西,因此它将在您的工作区中使用您的 JTable 中的内容创建一个具有该名称的文件。

    您使用 JFileChooser 选择的文件仅用于创建文件写入器并关闭它。所以它会在你选择的位置创建一个空文件。

    试试这个改变:

              JFileChooser file=new JFileChooser();
              file.showSaveDialog(this);
              File save =file.getSelectedFile();
              if(save !=null){
    
                  sht.fillData(tblCliente, save);
    
              }
            }catch(Exception ex){
                ex.printStackTrace();
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多