`

两种识别Excel流类型方法

 
阅读更多

 

	private static final int _32MB = 32 * 1024 * 1024;
	
	public static DataIterator getExcelDataIterator(InputStream is,
			int sheetIndex) throws Exception {
		is = new BufferedInputStream(is);
		is.mark(_32MB);
		try {
			//文件后缀类型判断不如解析时判断Excel类型,文件后缀可以伪造,压缩后后缀名需要另解析
			//使用历史版本的逻辑解析2003格式
			return new ExcelDataIterator(is, sheetIndex);
		} catch (Exception e) {
			is.reset();
			is.mark(-1);
			//2003格式解析失败后尝试用2007的解析方式解析
			return new Excel2007DataIterator(is, sheetIndex);
		}
	}

 

 

 

	public static DataIterator getExcelDataIterator(InputStream is,
			int sheetIndex) throws Exception {
		
		// 如果不支持标记、重置, 则包装它
		if(! is.markSupported()) {
			is = new PushbackInputStream(is, 8);
		}
		
		if(POIFSFileSystem.hasPOIFSHeader(is)) {
			return new ExcelDataIterator(is, sheetIndex);
		}
		if(POIXMLDocument.hasOOXMLHeader(is)) {
			return new Excel2007DataIterator(is, sheetIndex);
		}
		throw new IllegalArgumentException("Your input was neither an xls , nor an xlsx ");

	}

 

 

 

 

 

 

分享到:
评论

相关推荐

    WINCC的VB_EXCEL进程的调用与判断

    将WINCC历史数据记录写入EXCEL中,只有两种方法: 1。使用全局脚本用周期性写入:该方法在写入WINCC历史数据记录时,系统会在后台进程中自动打开EXCEL,而不会在前台任务栏中显示出来。写入完毕后,系统会自动关闭...

    PHP100视频教程 47:PHP输出CSV和EXCEL两种简单的方法

    (第47讲) PHP输出CSV和EXCEL两种简单的方法1、定义 header()头部输出格式header("Content-typefilename=php100.xls");2、输出编码和支持的格式(1)支持普通格式的CSV 文本规范,以空格和换行来识别(2)支持简单...

    PHP100视频教程 47:PHP输出CSV和EXCEL两种简单的方法.rar

    软件介绍 (第47讲) PHP输出CSV和EXCEL两种简单的方法 1、定义 header()头部输出格式 header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:filename=php100.xls"); 2、输出编码和...

    excel密码破解工具

    在这之前传了几个破解工具,可惜只是支持2003版本以下的破解,只能识别DOC之类的文档,不能识别2007版的DOCX,试了一下,破解失败,最后传了我一个Advanced Office ...还好我存放了两种格式的密保文档,doc和docx

    matlab中车牌识别代码-----MATLAB:这是一个在MATLAB上实现车牌识别的程序,识别算法有两种,分别为神经网络和模板匹配

    这是一个在MATLAB上实现车牌识别的程序,识别算法有两种,分别为神经网络和模板匹配 1、文件夹“charSamples”为神经网络训练的样本图片 2、文件夹“样本库”为模板匹配方法的模板 3、在神经网络训练中,我将文件夹...

    Excel2007图表完全剖析 6/8

    7.1.1 在单个图表中使用两种图表类型 176 7.1.2 将图表从一个工作表移到另一个工作表 177 7.1.3 使用形状来注释图表 178 7.1.4 使柱形与条形悬浮 180 7.1.5 使用虚构的xy系列给纵坐标轴加上标签 182 7.1.6...

    excel的使用

    Excel也识别按[颜色X]指定的颜色,其中X是1至56之间的数字,代表56种颜色(如图5)。图5(2)添加描述文本 要在输入数字数据之后自动添加文本,使用自定义格式为:"文本内容"@;要在输入数字数据之前自动添加文本...

    matlab导入excel代码-SpeakerRecognitionKNN:使用音高,MFCC和KNN分类器进行说话人识别

    matlab导入excel代码使用音高,MFCC和KNN分类器进行说话人识别 该项目使用机器学习方法,基于从录制语音中提取的特征来识别说话者。 最初的想法来自他们使用不同的MATLAB工具箱演示方法的地方,我避免使用这些工具箱...

    MATLAB模式识别实现指标分类评估预测如环境业绩等-Training_NPR.m

    % 创建一个模式识别网络(两层BP网络),同时给出中间层神经元的个数,这里使用20 hiddenLayerSize = 20; net = patternnet; % 对数据进行预处理,这里使用了归一化函数(一般不用修改) % For a list of all ...

    Excel2007图表完全剖析 3/8

    7.1.1 在单个图表中使用两种图表类型 176 7.1.2 将图表从一个工作表移到另一个工作表 177 7.1.3 使用形状来注释图表 178 7.1.4 使柱形与条形悬浮 180 7.1.5 使用虚构的xy系列给纵坐标轴加上标签 182 7.1.6...

    储油罐的变位识别与罐容表标定

    考虑到小椭圆型储油罐本身容积较小,误差主要为罐内支架体积,为减少标定误差, 采用两种方法得到罐内支架体积与液面高度标定表。方法一采用分段线性插值拟合来确定支架体积与液面高度的对应关系。方法二将支架体积...

    django+dlib在线web人脸识别签到系统设计与实现项目源码+ppt+论文文档+开题报告文档

    5. 角色权限管理:系统分为管理员和普通用户两种角色,管理员具有管理用户、录入人脸、导出数据等权限,而普通用户只能进行人脸识别签到操作。 通过以上功能,该系统可以提供一个方便、高效的人脸识别签到解决方案...

    ArcGIS问题:由坐标直接生成点文件

    每次野外出差,都用PDA记录了每个观察点的位置,但是回来的时候的需要把这些点生成矢量文件,我只做过两种的数据生成,但应该都是类似的,一种是用WGS84,单位是经纬度的,一种是bejing54,单位是米的,这里需要注意...

    Excel2007图表完全剖析 8/8

    7.1.1 在单个图表中使用两种图表类型 176 7.1.2 将图表从一个工作表移到另一个工作表 177 7.1.3 使用形状来注释图表 178 7.1.4 使柱形与条形悬浮 180 7.1.5 使用虚构的xy系列给纵坐标轴加上标签 182 7.1.6...

    Excel2007图表完全剖析 1/8

    7.1.1 在单个图表中使用两种图表类型 176 7.1.2 将图表从一个工作表移到另一个工作表 177 7.1.3 使用形状来注释图表 178 7.1.4 使柱形与条形悬浮 180 7.1.5 使用虚构的xy系列给纵坐标轴加上标签 182 7.1.6...

    Excel2007图表完全剖析 2/8

    7.1.1 在单个图表中使用两种图表类型 176 7.1.2 将图表从一个工作表移到另一个工作表 177 7.1.3 使用形状来注释图表 178 7.1.4 使柱形与条形悬浮 180 7.1.5 使用虚构的xy系列给纵坐标轴加上标签 182 7.1.6...

    Excel2007图表完全剖析 4/8

    7.1.1 在单个图表中使用两种图表类型 176 7.1.2 将图表从一个工作表移到另一个工作表 177 7.1.3 使用形状来注释图表 178 7.1.4 使柱形与条形悬浮 180 7.1.5 使用虚构的xy系列给纵坐标轴加上标签 182 7.1.6...

    PDF反向生成器绿色免安装版,可以成WORD、excele、PowerPoint、EPUB、Images、html文档

    两种高效转换模式 批量转换---一次可以转换超过200 个PDF文件 部分转换---允许您选择PDF文件的任何页面进行转换 多样性 不需要安装 Adobe Reader, Adobe Acrobat, Microsoft Word 和 Excel 支持转换受密码保护的和...

Global site tag (gtag.js) - Google Analytics