gpt4 book ai didi

java - 如何在java应用程序中创建一个新的excel文件并将其保存在指定位置?

转载 作者:行者123 更新时间:2023-12-01 11:41:33 25 4
gpt4 key购买 nike

我想创建一个新的 Excel 文件,以便用户在运行时提供文件名,并将该文件保存在用户想要的位置。我尝试了一些代码,但它每次都会在同一位置创建一个具有相同名称的文件。它不会询问用户文件名和位置。

private void buttonCALCULATEActionPerformed(java.awt.event.ActionEvent evt) {
filename="D:\\test.xls" ;
HSSFWorkbook hwb=new HSSFWorkbook();
HSSFSheet sheet = hwb.createSheet("Report in Excel");

HSSFRow rowhead=sheet.createRow((short)0);
rowhead.createCell((short) 0).setCellValue("Plot Id");
rowhead.createCell((short) 1).setCellValue("Species Name");
FileOutputStream fileOut = new FileOutputStream(filename);
hwb.write(fileOut);
fileOut.close();
System.out.println("\n Your Excel file has been generated!");
//String name1=" ";
FileSave();
}
public void FileSave() throws IOException
{

JFileChooser chooser=new JFileChooser("./");
FileNameExtensionFilter filter = new FileNameExtensionFilter("Excel files",".xls");
chooser.addChoosableFileFilter(filter);
int returnVal1=chooser.showSaveDialog(this);

// chooser.setFileFilter(filter);
chooser.setFileSelectionMode(chooser.FILES_ONLY);
chooser.setDialogTitle("Save File");
chooser.setCurrentDirectory(new File(System.getProperties().getProperty("user.home")));
chooser.setFileFilter(new javax.swing.filechooser.FileFilter()
{
public boolean accept(final File f)
{
return f.isDirectory()|| file.getAbsolutePath().endsWith(".xls");
}

public String getDescription(){
return "Excel files (*.xls)";
}
}
);
if (returnVal1 == JFileChooser.APPROVE_OPTION)
{
file1 = chooser.getSelectedFile();
}
}

最佳答案

int returnVal1=chooser.showSaveDialog(this); this 立即放在 if (returnVal1 == JFileChooser.APPROVE_OPTION)

public void FileSave() throws IOException {

JFileChooser chooser = new JFileChooser("./");
FileNameExtensionFilter filter = new FileNameExtensionFilter("Excel files", ".xls");
chooser.addChoosableFileFilter(filter);

// chooser.setFileFilter(filter);
chooser.setFileSelectionMode(chooser.FILES_ONLY);
chooser.setDialogTitle("Save File");
chooser.setCurrentDirectory(new File(System.getProperties().getProperty("user.home")));
chooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
public boolean accept(final File f) {
return f.isDirectory() || file.getAbsolutePath().endsWith(".xls");
}

public String getDescription() {
return "Excel files (*.xls)";
}
});
int returnVal1 = chooser.showSaveDialog(this);
if (returnVal1 == JFileChooser.APPROVE_OPTION) {
file1 = chooser.getSelectedFile();
}
}

更改FileSave以返回File(如果用户取消文件选择器,则返回null)

public File FileSave() throws IOException {
File file1 = null;
//...
return file1;
}

在尝试保存文件之前询问文件...

private void buttonCALCULATEActionPerformed(java.awt.event.ActionEvent evt) {
File file = FileSave();
if (file != null) {
HSSFWorkbook hwb = new HSSFWorkbook();
HSSFSheet sheet = hwb.createSheet("Report in Excel");

HSSFRow rowhead = sheet.createRow((short) 0);
rowhead.createCell((short) 0).setCellValue("Plot Id");
rowhead.createCell((short) 1).setCellValue("Species Name");
try (FileOutputStream fileOut = new FileOutputStream(file)) {
hwb.write(fileOut);
} catch (IOException exp) {
exp.printStackTrace();
}
System.out.println("\n Your Excel file has been generated!");
}
}

您可能想通读Code Conventions for the Java TM Programming Language ,这将使人们更容易阅读您的代码,也让您更轻松地阅读其他人

关于java - 如何在java应用程序中创建一个新的excel文件并将其保存在指定位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29483906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com