如何检查文件是否为Excel文件?

9 浏览
0 Comments

如何检查文件是否为Excel文件?

我正在编写一个程序,需要选择一个Excel文件,让程序读取。我的问题是如何判断该文件是否为Excel文件。

文件是通过这种方法选择的:

JButton btnFile = new JButton("Select Excel File");
btnFile.setPreferredSize(new Dimension(40, 40));
btnFile.addActionListener(new ActionListener() {
    // Handle open button action.
    public void actionPerformed(ActionEvent e) {
        final JFileChooser fc = new JFileChooser();
        int returnVal = fc.showOpenDialog(frame);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            file = fc.getSelectedFile();
            // This is where a real application would open the file.
            System.out.println("File: " + file.getName() + ".");
        } else {
            System.out.println("Open command cancelled by user.");
        }
        System.out.println(returnVal);
    }
});

admin 更改状态以发布 2023年5月22日
0
0 Comments

在文件名中检查文件扩展名'xlsx'。然而,要验证所选文件是否实际上是excel文件,您需要一个验证库,例如Apache POI HSSF。请参考此答案获取更多信息。

0
0 Comments

MimetypesFileTypeMap.getContentType(String) [JDK 6]

Java SE 6引入了MimetypesFileTypeMap类,使用“.mime.types格式”通过文件扩展名来为文件提供“数据类型”,该类的Javadoc解释了类在给定系统中查找MIME类型文件条目的位置。我的示例使用的是JDK 8安装程序提供的默认设置。下面的代码演示了如何使用javax.activation.MimetypesFileTypeMap。

public String identifyFileTypeUsingMimetypesFileTypeMap(final String fileName)  
{      
   final MimetypesFileTypeMap fileTypeMap = new MimetypesFileTypeMap();  
   return fileTypeMap.getContentType(fileName);  
} 

Files.probeContentType(Path) [JDK 7]

Java SE 7引入了Files类,该类的Javadoc简洁地描述了其用途:“该类仅由在文件、目录或其他类型的文件上操作的静态方法组成”以及“大多数情况下,此处定义的方法将委托给相关的文件系统提供者以执行文件操作”。

java.nio.file.Files类提供了probeContentType(Path)方法,通过使用“安装的FileTypeDetector实现”来“检测文件的内容类型”(Javadoc还指出,“Java虚拟机的给定调用维护了一个系统范围的文件类型检测器列表”)。

public String identifyFileTypeUsingFilesProbeContentType(final String fileName)  
{  
   String fileType = "Undetermined";  
   final File file = new File(fileName);  
   try  
   {  
      fileType = Files.probeContentType(file.toPath());  
   }  
   catch (IOException ioException)  
   {  
      out.println(  
           "ERROR: Unable to determine file type for " + fileName  
              + " due to exception " + ioException);  
   }  
   return fileType;  
}  

有关更多详细信息,请访问此链接

0