我正在尝试使用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();
}
}
}
此操作按钮,如何显示带有表中加载数据的filechooser?
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();
}
答案 0 :(得分:0)
您传递给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();
}