poi3.8默认情况下,用到的临时目录是系统自带的临时目录,在本次项目中遇到临时目录超限,所以需要修改源代码指定需要设置的临时目录
需要修改的类为:GZIPSheetDataWriter,SheetDataWriter
GZIPSheetDataWriter压缩时候用到,如在构造workbook时:
wokbook = new SXSSFWorkbook(new XSSFWorkbook(
new FileInputStream(FanExcel2007.TEMPLATE_PATH)), 2000,true);
false代表不压缩,默认为False用SheetDataWriter
GZIPSheetDataWriter修改:
/**
* @return temp file to write sheet data
*/
public File createTempFile()throws IOException {
// 获取tmp目录
String tmpDir = null;
File fd = null;
File file = null;
try {
// tmpDir = FileUtils.readFileToString(new File(SheetDataWriter.class
// .getResource("/tmpPath.txt").getFile()), "utf8");
tmpDir="/home/hdfs/effect/liubx/tmp";
System.out.println("临时缓存目录为:" + tmpDir);
if (tmpDir != null && !tmpDir.equals("")) {
file = new File(tmpDir);
if (!file.exists()) {
file.mkdirs();
}
}
} catch (Exception ex) {
System.out.println("指定缓存目录失败:" + tmpDir);
tmpDir = null;
}
if (tmpDir == null || tmpDir.equals("")) {
fd = File.createTempFile("poi-sxssf-sheet-xml", ".gz");
} else {
fd = File.createTempFile("poi-sxssf-sheet-xml", ".gz",file);
}
fd.deleteOnExit();
return fd;
}
SheetDataWriter修改处:
/**
* Create a temp file to write sheet data.
* By default, temp files are created in the default temporary-file directory
* with a prefix "poi-sxssf-sheet" and suffix ".xml". Subclasses can override
* it and specify a different temp directory or filename or suffix, e.g. <code>.gz</code>
*
* @return temp file to write sheet data
*/
public File createTempFile()throws IOException {
// 获取tmp目录
String tmpDir = null;
File fd = null;
File file = null;
try {
tmpDir="/home/hdfs/effect/liubx/tmp";
System.out.println("临时缓存目录为:" + tmpDir);
if (tmpDir != null && !tmpDir.equals("")) {
file = new File(tmpDir);
if (!file.exists()) {
file.mkdirs();
}
}
} catch (Exception ex) {
System.out.println("指定缓存目录失败:" + tmpDir);
tmpDir = null;
}
if (tmpDir == null || tmpDir.equals("")) {
fd = File.createTempFile("poi-sxssf-sheet", ".xml");
} else {
fd = File.createTempFile("poi-sxssf-sheet", ".xml",file);
}
fd.deleteOnExit();
return fd;
}
这样可以写超大数据,在写超大数据时最好用压缩的方式,写文件比较快!
分享到:
相关推荐
导出Excel数据,步骤类似,只是数据来源不再是已存在的Excel文件,而是程序中的数据结构。你需要创建`Workbook`对象,创建或获取工作表,然后根据需要创建行和单元格并填充数据。 在使用Apache POI 3.8时,需要注意...
在给定的标题“Excel操作工具poi3.8”中,我们关注的是POI 3.8版本,这是一个适用于处理Excel文件的强大工具。在这个版本中,用户可以进行数据读取、写入、格式化以及复杂的公式计算等操作。 首先,我们需要理解...
使用这些库,开发者可以创建Java应用程序来导入和导出Excel文件,例如,创建新的工作簿,添加工作表,填充单元格数据,设置样式,执行计算,以及读取和解析现有的Excel文件。Apache POI的强大之处在于其灵活性和广泛...
使用POI3.8进行Excel操作,我们可以: 1. **创建工作簿**:通过`WorkbookFactory.create()`方法,可以选择新建一个HSSFWorkbook或XSSFWorkbook对象。 2. **添加工作表**:在Workbook对象上调用`createSheet()`方法...
- Apache POI 3.8是较早的版本,可能不支持一些新特性,如XSSF对Excel 2007以上版本的支持和对新功能的优化。 - Apache POI 4.1.2是一个较新的版本,提供了更多的功能和性能改进,包括对Excel文件格式的全面支持,...
标题中的"poi3.8jar包"指的是Apache POI项目的3.8版本的Java库,这个库以JAR(Java Archive)文件的形式提供,便于Java开发者在他们的应用中集成对Office文档的支持。 Apache POI的主要功能: 1. **Excel处理**: ...
- 数据导入导出:企业系统常使用POI将数据库中的数据导出为Excel报表,或者从用户上传的Excel文件中导入数据。 - 报表生成:POI可用于动态生成Excel报表,如销售报告、财务报表等。 - 自动化处理:例如,批量处理...
- **版本兼容性**:Apache POI 3.8能够完美支持2003年的BIFF8格式(XLS)以及2007年引入的Open XML格式(XLSX)。这意味着你可以使用此版本的库来读取和写入2003年至2010年间的Excel文件,包括xls和xlsx两种格式。 ...
Excel导出 利用poi-3.8-20120326.jar包 和工具包sl-common.jar
Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。POI项目由Apache软件基金会维护,为开发者提供了在Java应用程序中读取、写入和修改这些文件的接口。POI 3.8和...
Java Excel POI 3.8 是一个非常重要的库,它允许Java开发者读取、写入以及操作Microsoft Excel文件。此版本3.8是Apache POI项目的一个稳定版本,提供了广泛的Excel处理功能。Apache POI是一个开源项目,由Apache软件...
标题中的“POI实现的基于动态模板的EXCEL数据导出”是指利用Apache POI库来创建一个可以动态填充数据的Excel模板,从而实现大量数据的高效导出。Apache POI是一个开源项目,它允许Java开发者读写Microsoft Office...
- **Web应用集成**:将POI集成到Web应用程序中,可以方便地提供Excel导出功能,提升用户体验。 总之,Apache POI是一个强大且灵活的工具,对于需要在Java环境中处理微软办公文档的开发者来说,是一个不可或缺的资源...
标题提到的"poi3.8,3.9,3.10jar包"分别代表了三个不同版本的Apache POI库,每个版本都有其特定的改进和新特性。 在Excel处理方面,Apache POI相比于早期的jxl库,提供了更多的功能和更好的性能。以下是Apache POI在...
总结一下,Apache POI 3.8是一个适用于JDK 1.6和1.7的Java库,它提供了对微软Office文档的强大处理能力,包括创建、读取和修改Excel、Word和PowerPoint文件。通过理解和掌握POI的API,开发者可以方便地进行Office...
- **HSSF(Horizontally Stored Spreadsheet Format)**: 这是POI用来处理旧版的.BIFF格式(Excel 97-2007)的接口。你可以创建工作簿、工作表,添加单元格、公式,设置样式等。 - **XSSF(XML Spreadsheet Format...
标题提到的"poi3.8系列的jar包"指的是Apache POI项目在版本3.8及以上的库文件,这些jar包是开发人员处理Excel 2007(以及更高版本)XLSX格式文件所必需的。 **Apache POI的概述:** Apache POI 是由Apache软件基金...
总之,"poi3.8资源包"提供的Apache POI库是一个强大的工具,能够帮助Java开发者在不依赖Microsoft Office的情况下读写Excel文件,实现数据的导入导出,以及创建复杂的Excel报表。对于需要处理大量Excel数据的Java...
集合了所有的POI3.8的包和POI3.5的包,主要用于java poi excel模板的读取