Я разрабатываю одно настольное программное обеспечение с использованием java swing, которое требуется для экспорта отчетов в формате pdf и excel, и будет принимать путь от пользователя. У меня есть экспортные отчеты в формате pdf и excel, но теперь я хочу принять путь от пользователя и пользователя, чтобы дать имя этому файлу.Как сохранить файл в java с помощью JFileChooser
try
{
String filename="sales111.xls" ;
HSSFWorkbook hwb=new HSSFWorkbook();
HSSFSheet sheet = hwb.createSheet("Sales Report in Excel");
HSSFRow rowhead= sheet.createRow((short)0);
rowhead.createCell((short) 0).setCellValue("Invoice Numberr");
rowhead.createCell((short) 1).setCellValue("date");
rowhead.createCell((short) 2).setCellValue("Customer Name");
rowhead.createCell((short) 3).setCellValue("customer Code");
rowhead.createCell((short) 4).setCellValue("Stock Item Name");
rowhead.createCell((short) 5).setCellValue("Product Quantity");
rowhead.createCell((short) 6).setCellValue("Product Rate");
rowhead.createCell((short) 7).setCellValue("Total Amount");
rowhead.createCell((short) 8).setCellValue("Tax Category");
rowhead.createCell((short) 9).setCellValue("Tax Amount");
rowhead.createCell((short) 10).setCellValue("Transport Charges");
rowhead.createCell((short) 11).setCellValue("Net Amount");
rowhead.createCell((short) 11).setCellValue("Credit Limit");
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/BOA", "root", "root");
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("Select * from SalesVoucher");
int i=1;
while(rs.next())
{
HSSFRow row= sheet.createRow((short)i);
row.createCell((short) 0).setCellValue(rs.getString("innum"));
row.createCell((short) 1).setCellValue(rs.getString("date"));
row.createCell((short) 2).setCellValue(rs.getString("scname"));
row.createCell((short) 3).setCellValue(rs.getString("sccode"));
row.createCell((short) 4).setCellValue(rs.getString("stname"));
row.createCell((short) 5).setCellValue(Integer.toString(rs.getInt("pquantity")));
row.createCell((short) 6).setCellValue(Double.toString(rs.getDouble("prate")));
row.createCell((short) 7).setCellValue(Double.toString(rs.getDouble("samount")));
row.createCell((short) 8).setCellValue(Double.toString(rs.getDouble("staxcat")));
row.createCell((short) 9).setCellValue(Double.toString(rs.getDouble("stamount")));
row.createCell((short) 10).setCellValue(Double.toString(rs.getDouble("strans")));
row.createCell((short) 11).setCellValue(Double.toString(rs.getDouble("stota")));
row.createCell((short) 11).setCellValue(Integer.toString(rs.getInt("scredlim")));
i++;
}
FileOutputStream fileOut = new FileOutputStream(filename);
hwb.write(fileOut);
fileOut.close();
System.out.println("Your Sales Report Excel file has been generated!");
String name1="";
FileSave(filename,name1);
}
catch (Exception ex)
{
System.out.println(ex);
}
}
public void FileSave(final String title,final String name)
{
final JFileChooser chooser=new JFileChooser();
// chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
chooser.setDialogTitle(title);
chooser.setCurrentDirectory(new File(System.getProperties().getProperty("user.dir")));
chooser.setFileFilter(new javax.swing.filechooser.FileFilter()
{
public boolean accept(final File f)
{
return f.isDirectory();
}
public String getDescription(){
return "Folder To Save In";
}
}
);
final int r=chooser.showSaveDialog(null);
File file;
if (r == JFileChooser.APPROVE_OPTION)
{
if (name != null)
{
file=new File(chooser.getSelectedFile().getPath() + File.separator + name);
}
else
{
// file=new File(filename);
file=new File(chooser.getSelectedFile().getPath());
}
}
}
Это мой код, который создает файл excel и сохраняет файл только в текущей директории и не принимает имя файла от пользователя.
Может ли кто-нибудь предложить мне?
этот код выполняется успешно и файл содержит все записи, которые в моей таблице базы данных, но проблема-файл, сохраненный как sales111.xls, который я уже дал в коде и сохраняет только в текущем каталоге –
Вы должны вернуться выбранное имя файла из метода и использовать возвращаемое имя файла в вызове – StanislavL
Как выбрать этот файл excel, который я создал? –