java代码怎么判断文件的格式是excel文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java代码怎么判断文件的格式是excel文件相关的知识,希望对你有一定的参考价值。

匹配后缀名。

String.endsWith(".xls");
xls
xlsx
xlsm

1.两点需要注意

1.string.spilt("\\\\.")分割字符串成子字符串数组,以“.”分割,必须写成string.spilt("\\\\.")的方式,不能写成string.spilt(".")。斜线必须是反斜线且。

2.获取分割后的字符串数组,要获得最后一个item的index ,方式是int suffixIndex = strArray.length -1;

public String getFileType(String fileName) 
        String[] strArray = fileName.split("\\\\.");
        int suffixIndex = strArray.length -1;
        System.out.println(strArray[suffixIndex]);
        return "strArray[suffixIndex]";        
    

参考技术A /**
 *传入目录,判断是否是xls文件,并返回名字
 */
public static List<String> getFileList(File file) 
    List<String> result = new ArrayList<String>();
    //isDirectory() 测试是否是路径
    if (!file.isDirectory()) 
        System.out.println(file.getAbsolutePath());
        result.add(file.getAbsolutePath());
     else 
        File[] directoryList = file.listFiles(new FileFilter() 
            public boolean accept(File file) 
            //isFile()  判断file是否是一个文件而不是一个目录
            //.getName().indexOf("txt") 判断文件的名称中带有xls 并且xls不是开头
                if (file.isFile() && file.getName().indexOf("xls") > -1) 
                    return true;
                 else 
                    return false;
                
            
        );
        for (int i = 0; i < directoryList.length; i++) 
            result.add(directoryList[i].getPath());
        
    
    //返回判断完成的txt后缀的文件路径
    return result;

参考技术B 参考代码:
// 读取文件 解析excel
String fileType = filePath.substring(filePath.lastIndexOf(".") + 1,
      filePath.length());
InputStream stream = AliyunOssUtil.downloadObj(filePath);
Workbook wb = null;
if ("xls".equals(fileType)) 
   wb = new HSSFWorkbook(stream);
 else if ("xlsx".equals(fileType)) 
   wb = new XSSFWorkbook(stream);
 else 
   System.out.println("您输入的excel格式不正确");

参考技术C 匹配后缀名。
用String.endsWith(".xls");
xls
xlsx
xlsm

如果就没有后缀名的文件判断是不是excel文件,那我也不会。本回答被提问者采纳
参考技术D 匹配后缀名。 用String.endsWith(".xls"); xls xlsx xlsm 如果就没有后缀名的文件判断是不是excel文件,那我也不会。

Java 出力Excel 文件,并向该文件中写固定格式的日期。我往文件里写的是yyyy-mm-dd

Java 出力Excel 文件,并向该文件中写固定格式的日期。我往文件里写的是yyyy-mm-dd的形式,当我打开excle 文件里面的日期格式是yyyy/mm/dd 的只有我双击之后才会显示我要的格式。请问是怎么回事?

你写入的yyyy-mm-dd而显示yyyy/mm/dd这是正常的,表示EXCEL理解了你写入的数据是日期格式,显示的时候由于没有指定单元格的格式,所以系统以默认的yyyy/mm/dd格式显示,这个其实没关系。

如果你特别希望显示为yyyy-mm-dd格式,可以写入内容前增加一个单引号(半角英文),这样强制告诉EXCEL这是个文本,不要理解为日期。

还有一个办法,就是JAVA里面写入数据完毕,设置单元格的格式为yyyy-mm-dd,通过设置.NumberFormat 属性为 "yyyy-mm-dd"实现。追问

只能在代码里设置格式吗?不能在出力的模板里设置?

追答

当然可以在模版里面设置,设置单元格格式为日期里面的yyyy/mm/dd即可,JAVA写入日期后会自动显示为指定的格式。

参考技术A 可以把单元格设置为文本格式,直接传进去字符串就可以
HSSFCellStyle cellStyle2 = demoWorkBook.createCellStyle();
HSSFDataFormat format = demoWorkBook.createDataFormat();
cellStyle2.setDataFormat(format.getFormat("@"));
cell.setCellStyle(cellStyle2);

以上是关于java代码怎么判断文件的格式是excel文件的主要内容,如果未能解决你的问题,请参考以下文章

java导出excel,excel打不开,报文件格式无效,怎么解决!

java 如何 判断 读入excel文件的版本(2003?2007?) 请高手指点

Java 如何不区分大小写判断文件后缀(.xls .XLS .Xls等)是否excel文件?

java 使用POI导出Excel文件,打开导出文件时报错

java导入excel时怎么判断excel文件

java怎么把xls格式的文件另存为xlsx文件,不能直接改后缀名?