我创建了一个程序来浏览excel文件并使用 windowbuilder 和 Apache POI 对其进行修改
我已经为文件路径创建了一个公共字符串,如下所示。
public class UI {
public static String filename;
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("MS Excel Files", "xlsx");
chooser.setFileFilter(filter);
chooser.showOpenDialog(null);
File file= chooser.getSelectedFile();
filename=file.getAbsolutePath();
并调用String作为主要代码以获取文件路径以继续该过程。
public static void main (String[]args) throws Exception {
UI.filename;
File file= new File(filename);
FileInputStream fis= new FileInputStream (file);
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet sheet1= wb.getSheetAt(0);
运行GUI时,出现以下错误消息,
语法错误,插入“ VariableDeclarators”以完成LocalVariableDeclaration 文件名无法解析为变量
new File(filename);
这部分应该是这样的
File file= new File("C:\\Users\\Desktop\\Project\\Data.xlsx");
在这方面的任何建议将不胜感激。
答案 0 :(得分:2)
Java中的所有代码都需要在“可执行”上下文中执行。就您而言,这意味着一个类中的方法。
您需要首先更改UI
类,以提供执行所需操作的static
方法...
public class UI {
public static File selectFile() {
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("MS Excel Files", "xlsx");
chooser.setFileFilter(filter);
chooser.showOpenDialog(null);
return chooser.getSelectedFile();
}
然后,您需要更新main
方法以利用此更改...
public static void main (String[]args) throws Exception {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
File file = UI.selectFile();
if (file == null) {
System.out.println("No file selected");
}
FileInputStream fis= new FileInputStream (file);
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet sheet1= wb.getSheetAt(0);
}
});