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 ");
}
分享到:
相关推荐
### VC导出CListCtrl数据到Excel的两种方法详解 在Windows编程中,尤其是在使用Visual C++(简称VC)进行应用程序开发时,将数据从`CListCtrl`控件导出到Excel是一种常见的需求,特别是在需要对数据进行进一步分析...
总之,这个工具包提供了一种高效、准确的方法,将包含文字的图片转换为Excel表格和文本,借助于C#编程语言和一系列第三方库,尤其是百度AI的OCR服务,实现了高精度的图片识别和格式化的Excel输出。开发者只需要配置...
这两种方法各有优缺点:服务器端方法需要服务器有Excel安装,但能直接生成Excel文件;客户端方法无需服务器端支持Excel,但用户必须手动用Excel打开CSV文件。选择哪种方法取决于具体的应用场景和资源限制。
本主题将深入探讨如何在C#中实现对Excel 2003和2007两种不同版本文件的支持,包括数据读取、转换以及可能遇到的问题与解决方案。 首先,你需要了解的是,Excel 2003使用的是.BIFF8文件格式,而2007及以上版本使用的...
当用户点击下载链接时,浏览器会发起GET请求到这个控制器方法,服务器生成Excel文件并以内存流的形式返回,用户则会收到一个弹出窗口提示下载Excel文件。 在实际应用中,你可能还需要考虑其他因素,比如性能优化、...
除了这两种方法,还有其他几种导出Excel的方式: 3. **使用Open XML SDK** Microsoft提供了Open XML SDK,这是一个用于创建、打开和修改Office文档(包括Excel)的开源库。它不依赖于Excel的安装,可以在服务器端...
### 两种非匀质Excel表转换成关系数据库表的方法 #### 摘要与引言 Excel作为一种广泛使用的办公软件,在日常数据管理和处理方面发挥着重要作用。然而,随着信息技术的发展,许多信息系统开始采用更为高效的关系...
### 八种常见Excel错误提示及问题解决方法 在日常工作中使用Excel时,我们经常会遇到各种各样的错误提示。这些错误提示通常是由于公式错误、数据类型不匹配、运算对象类型错误等原因引起的。本文将详细介绍八种常见...
### VFP与Excel交互编程方法 #### 一、引言 在实际工作中,VFP (Visual FoxPro) 和 Excel 都是非常重要的工具。...希望本文能对读者有所帮助,让大家在实际工作中能够更加高效地利用这两种工具。
在VB(Visual Basic)中操作Excel表格是一种常见的技术,它允许开发者利用Excel强大的报表功能来扩展VB应用程序的报表处理能力。以下将详细解释如何在VB中读写Excel表,利用Excel的宏功能,以及实现VB与Excel之间的...
基于MATLAB的灰色系统基岩类型识别方法主要涉及地球化学信息的分析和灰色系统理论的应用。地球化学信息识别方法是通过分析不同基岩类型的元素组合特征和变化趋势,利用残坡积物中化学成分对基岩成分的继承性来进行...
然而,这个方法并不直接支持以像素为单位设置列宽,因为Excel的列宽实际包含字符宽度和像素宽度两个概念。对于需要精确控制列宽的情况,单纯依赖字符宽度可能无法满足需求。 当需要生成具有特定格式,尤其是需要...
对于`mp3`和`wav`这两种音频格式,`mp3`是一种压缩音频格式,体积小但可能损失部分音质;`wav`则是无损格式,音质高但文件大小较大。在处理大文件时,我们需要考虑到存储和传输效率,可能需要进行音频压缩或者转换。...
### 一种基于Java的ODS与Excel数据交换方法 #### 摘要 随着企业对数据分析处理需求的日益增加,传统的数据库(DB)与数据仓库(DW)的两层架构已无法满足多层面的需求,因此引入了操作型数据存储(ODS)作为中间层...
根据给定的文档描述,我们可以了解到在ASP.NET中有两种主要的方法来实现这一功能。 ##### 1. 将导出的文件存储在服务器上 第一种方法是将生成的Excel文件保存在服务器的某个文件夹中,并将该文件的URL返回给客户端...
在ASP.NET中导出数据到Excel主要分为两种基本策略:一是将文件存储在服务器的某个目录下,并通过浏览器提供下载链接;二是直接将文件内容作为输出流发送至浏览器,让用户即时下载。这两种方法各有优势,前者适用于...
这两种格式都方便用户查看和编辑识别结果。 5. **Excel操作**:在Android上处理Excel文件,可能需要用到Apache POI库或其他的第三方库,如XlsxWriter,它们允许程序创建、修改和读取Excel文件。 6. **PDF操作**:...
以下将详细阐述Excel转换为这两种标准格式的方法。 首先,Excel转换为SQL数据库表是常见的数据迁移步骤,尤其在审计或数据分析工作中。在SQL Server 2000和2008中,这一过程可以通过内置的数据导入导出工具实现。...