获取Excel文档的版本(2003或者2007)
来源:互联网 发布:sql嵌套循环语句 编辑:程序博客网 时间:2024/06/04 22:47
因工作需要解析excel文档,用poi插件来进行处理,但是2003版本之前的和2007版本之后的解析方式不一样,开始,我们是以后缀名来区分的(2003之前是xls,2007之后是xlsx),后来发现,如果一个2003文档的后缀名被改成xlsx或反之,解析都会出现一些莫名其妙的问题,所以根据文档内容来判断版本是非常必要的。于是在网上找了很久终于找到一个切实可行的方法,代码如下
public static void main(String[] args) {File f = new File("d://test2.xls");InputStream inp = null;try {inp = new FileInputStream(f);} catch (FileNotFoundException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}if(! inp.markSupported()) {inp = new PushbackInputStream(inp, 8);//封装下输入流,使得以下方法获取输入流的内容而不破坏输入流内容}try {if(POIFSFileSystem.hasPOIFSHeader(inp)) {System.out.println("2003及以下");}if(POIXMLDocument.hasOOXMLHeader(inp)) {System.out.println("2007及以上");}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
其中POIFSFileSystem和POIXMLDocument用到了poi-3.5-FINAL-20090928.jar、poi-ooxml-3.5-FINAL-20090928.jar、poi-ooxml-schemas-3.9-20121203.jar、xmlbeans-2.3.0.jar等jar
0 0
- 获取Excel文档的版本(2003或者2007)
- 获取APP的版本信息或者UUID
- 获取EXE或者DLL的版本信息
- 获取mysql中的数据并转化为txt或者excel文档
- java处理Excel文档(2007之前版本可这样,2010以后的与此稍有不同)
- 【iOS_GitHub】文档/文件查看器(支持本地或者其他app分享过来的word、excel、pdf、rtf等格式文件)
- 【java】解析excel文档(兼容全版本)
- python获取天气信息写入原有的excel文档
- 根据excel或者doc模板生成excel和doc文档
- VS获取工程版本信息,AxtiveX或者OCX的版本取得
- 如何将hive表文本格式的源文件迁移至Oracle数据库或者excel文档中
- PHPExcel 导出2003和2007的excel文档实例
- PHPExcel 导出2003和2007的excel文档实例
- PHPExcel 导出2003和2007的excel文档实例
- PHPExcel 导出2003和2007的excel文档实例
- PHPExcel 导出2003和2007的excel文档实例
- 获取文件或者动态库版本信息
- JAVA 解析excel兼容2003和2007以后的版本
- Spark机器学习MLlib系列1(for python)--数据类型,向量,分布式矩阵,API
- MYSQL指南
- MFC实现贪吃蛇游戏之蛇的移动
- __declspec
- 【JavaScript】富文本编辑器UEditor与代码高亮插件SyntaxHighlighter整合,实现用户贴代码功能
- 获取Excel文档的版本(2003或者2007)
- JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源
- PowerVR SDK
- android开发之定制标题栏 --- 附源码
- Linux下memcache的安装
- 那些年被oracle 12挖的坑
- String中有些方法的实现
- 那些在开发微信扫码登录路上的坑
- iptables 必须先拒绝所有,在允许