package cn.cy.codeTest;
import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
public class XlsMergeUtil {
public static void main(String[] args) throws Throwable {
Workbook wb = new SXSSFWorkbook(100); // keep 100 rows in memory,
// exceeding rows will be
// flushed to disk
Sheet sh = wb.createSheet();
for (int rownum = 0; rownum < 100000; rownum++) {
Row row = sh.createRow(rownum);
for (int cellnum = 0; cellnum < 10; cellnum++) {
Cell cell = row.createCell(cellnum);
String address = new CellReference(cell).formatAsString();
cell.setCellValue(address+":"+rownum);
}
}
FileOutputStream out = new FileOutputStream("c:/sxssf.xlsx");
wb.write(out);
out.close();
}
}
package cn.cy.codeTest; import java.io.FileOutputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class OracleExpertExcel_new { @SuppressWarnings("resource") public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Workbook wb = new SXSSFWorkbook(1000); Sheet xssfsheet = wb.createSheet(); Connection ct = null; Statement ps = null; ResultSet rs = null; String sql="SELECT dis.* FROM AR_DISTRIBUTIONS_ALL dis, \n" + "AR_CASH_RECEIPT_HISTORY_ALL crh \n" + "WHERE crh.cash_receipt_id = 590065 \n" + "AND dis.source_table = 'CRH' \n" + "AND dis.source_id = crh.cash_receipt_history_id \n" + "UNION SELECT dis.* FROM AR_DISTRIBUTIONS_ALL dis, AR_RECEIVABLE_APPLICATIONS_ALL app \n" + "WHERE app.cash_receipt_id = 590065 \n" + "AND dis.source_table = 'RA' \n" + "AND dis.source_id = app.receivable_application_id \n" + "ORDER BY 3"; //String sql=" SELECT dis.* FROM AR_DISTRIBUTIONS_ALL dis where dis.line_id=1860"; int i = 0; try { Class.forName("oracle.jdbc.driver.OracleDriver"); String conn="jdbc:oracle:thin:@192.168.XX.XX:1529:UAT"; ct = DriverManager.getConnection(conn, "apps", "XX"); ps = ct.createStatement(); rs = ps.executeQuery(sql); while (rs.next()) { Row xssfrow = xssfsheet.createRow(i); Cell cell0 = xssfrow.createCell(0); cell0.setCellValue(rs.getString(1)); Cell cell1 = xssfrow.createCell(1); cell1.setCellValue(rs.getString(2)); Cell cell2 = xssfrow.createCell(2); cell2.setCellValue(rs.getString(3)); Cell cell3 = xssfrow.createCell(3); cell3.setCellValue(rs.getString(4)); Cell cell4 = xssfrow.createCell(4); cell4.setCellValue(rs.getString(5)); Cell cell5 = xssfrow.createCell(5); cell5.setCellValue(rs.getString(6)); Cell cell6 = xssfrow.createCell(6); cell6.setCellValue(rs.getString(7)); Cell cell7 = xssfrow.createCell(7); cell7.setCellValue(rs.getString(8)); Cell cell8 = xssfrow.createCell(8); cell8.setCellValue(rs.getString(9)); Cell cell9 = xssfrow.createCell(9); cell9.setCellValue(rs.getString(10)); Cell cell10 = xssfrow.createCell(10); cell10.setCellValue(rs.getString(11)); Cell cell11 = xssfrow.createCell(11); cell11.setCellValue(rs.getString(12)); Cell cell12 = xssfrow.createCell(12); cell12.setCellValue(rs.getString(13)); Cell cell13 = xssfrow.createCell(13); cell13.setCellValue(rs.getString(14)); Cell cell14 = xssfrow.createCell(14); cell14.setCellValue(rs.getString(15)); Cell cell15 = xssfrow.createCell(15); cell15.setCellValue(rs.getString(16)); Cell cell16 = xssfrow.createCell(16); cell16.setCellValue(rs.getString(17)); Cell cell17 = xssfrow.createCell(17); cell17.setCellValue(rs.getString(18)); Cell cell18 = xssfrow.createCell(18); cell18.setCellValue(rs.getString(19)); Cell cell19 = xssfrow.createCell(19); cell19.setCellValue(rs.getString(20)); Cell cell20 = xssfrow.createCell(20); cell20.setCellValue(rs.getString(21)); Cell cell21 = xssfrow.createCell(21); cell21.setCellValue(rs.getString(22)); Cell cell22 = xssfrow.createCell(22); cell22.setCellValue(rs.getString(23)); Cell cell23 = xssfrow.createCell(23); cell23.setCellValue(rs.getString(24)); Cell cell24 = xssfrow.createCell(24); cell24.setCellValue(rs.getString(25)); Cell cell25 = xssfrow.createCell(25); cell25.setCellValue(rs.getString(26)); Cell cell26 = xssfrow.createCell(26); cell26.setCellValue(rs.getString(27)); Cell cell27 = xssfrow.createCell(27); cell27.setCellValue(rs.getString(28)); Cell cell28 = xssfrow.createCell(28); cell28.setCellValue(rs.getString(29)); Cell cell29 = xssfrow.createCell(29); cell29.setCellValue(rs.getString(30)); Cell cell30 = xssfrow.createCell(30); cell30.setCellValue(rs.getString(31)); Cell cell31 = xssfrow.createCell(31); cell31.setCellValue(rs.getString(32)); Cell cell32 = xssfrow.createCell(32); cell32.setCellValue(rs.getString(33)); Cell cell33 = xssfrow.createCell(33); cell33.setCellValue(rs.getString(34)); Cell cell34 = xssfrow.createCell(34); cell34.setCellValue(rs.getString(35)); Cell cell35 = xssfrow.createCell(35); cell35.setCellValue(rs.getString(36)); Cell cell36 = xssfrow.createCell(36); cell36.setCellValue(rs.getString(37)); Cell cell37 = xssfrow.createCell(37); cell37.setCellValue(rs.getString(38)); Cell cell38 = xssfrow.createCell(38); cell38.setCellValue(rs.getString(39)); Cell cell39 = xssfrow.createCell(39); cell39.setCellValue(rs.getString(40)); Cell cell40 = xssfrow.createCell(40); cell40.setCellValue(rs.getString(41)); Cell cell41 = xssfrow.createCell(41); cell41.setCellValue(rs.getString(42)); Cell cell42 = xssfrow.createCell(42); cell42.setCellValue(rs.getString(43)); Cell cell43 = xssfrow.createCell(43); cell43.setCellValue(rs.getString(44)+"44"); i++; } System.out.println("i="+i); } catch (Exception e) { e.printStackTrace(); // TODO: handle exception } finally { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } if (ct != null) { ct.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } FileOutputStream out = new FileOutputStream("c:/sxssf.xlsx"); wb.write(out); out.close(); System.out.println("导出成功"); } }
相关推荐
总之,Apache POI 3.8 中的SXSSFWorkbook是处理大数据量Excel文件的理想选择,它通过流式处理和磁盘缓存策略,有效地解决了内存限制问题,确保了大规模数据处理的可行性。在互联网和计算机科学(cs)领域,这样的...
在POI 3.8 Beta5这个版本中,开发者可以利用它来处理大数据量的Excel文件,这在数据处理、报告生成或数据分析场景中非常有用。 Apache POI库提供了HSSF(Horrible Spreadsheet Format)和XSSF(XML Spreadsheet ...
在本主题中,我们将重点讨论POI 3.8版本,它支持对Excel电子表格的读取和写入操作。 首先,要使用Apache POI 3.8,你需要下载相应的jar包,即`poi-3.8.jar`。这个jar包包含了处理Excel文件所需的类和方法。在Java...
6. **库依赖**:虽然标题中提到了poi3.8,但现代项目可能需要更新版本的Apache POI,因为它包含了更多的功能和错误修复。同时,如果要处理2007及更高版本的文件,还需要引入XSSF和XWPF库。 7. **其他工具和库**:...
。。。
在POI3.8中,最重要的组件包括HSSF(Horrible Spreadsheet Format)和XSSF(Extensible Spreadsheet Format),分别用于处理老版的BIFF8格式(.xls)和新的OOXML格式(.xlsx)。HSSF提供了对Excel 97-2003工作簿的...
这种模型允许处理大量数据时只保留最近使用的行在内存中,从而避免了内存溢出的问题,特别适合大数据量的Excel处理。 总的来说,这些jar文件提供了全面的工具集,可以满足你在Java环境中对Office文档的各种操作需求...
在给定的标题和描述中,提到了几个不同版本的POI,包括3.8、3.9、3.10、3.15和3.17。每个版本都有其特定的更新和改进,下面将详细介绍这些版本中的关键知识点。 1. **POI 3.8**: - 这是较早的一个版本,支持基本...
在给定的标题“Excel操作工具poi3.8”中,我们关注的是POI 3.8版本,这是一个适用于处理Excel文件的强大工具。在这个版本中,用户可以进行数据读取、写入、格式化以及复杂的公式计算等操作。 首先,我们需要理解...
可以通过调整工作簿的缓存策略,以及使用SXSSF(Streaming Usermodel API)来处理大数据量的情况。 版本间的差异: - Apache POI 3.8是较早的版本,可能不支持一些新特性,如XSSF对Excel 2007以上版本的支持和对新...
总的来说,"poi 3.8jar 包"是一个强大的工具,适合需要在Java环境中处理Office文档的开发者。尽管标记为beta5,但其功能和稳定性足以满足大多数需求。使用时,开发者应参考官方文档,结合具体的项目需求,灵活运用...
在标题“poi3.8”中提到的版本3.8是该项目的一个历史版本,发布于2012年9月。这个版本包含了对处理Excel、Word和PowerPoint文件的API改进和修复。 在POI 3.8中,主要的知识点包括: 1. **Excel处理**: - HSSF...
Apache POI 是一个开源项目,主要用来处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。HSSF(Horizontally Stored Sheet Format)是POI库的一部分,专门用于处理旧版的Excel文件,即.BIFF8格式的XLS...
- 如果可能,优先选择使用SXSSF以处理大数据量。 9. **总结** Apache POI 3.8是Java开发者处理Excel文件的强大工具,无论是在2003还是2007格式下,都能提供高效的读写能力。通过理解和掌握POI的基本操作和高级...
XSSF支持更多的功能和更大数据量的处理。 - **SXSSF(Streaming Usermodel API)**: 这是一个内存优化的API,适用于处理大型Excel文件。SXSSF将数据写入硬盘,而不是全部保留在内存中,从而避免内存溢出。 2. **...
5. **数据流处理(SXSSF)**:为了处理大数据量的Excel文件,POI提供了基于内存的`SXSSF`接口,它采用滑动窗口模型,仅保留最近使用的行在内存中,从而降低了内存消耗。 6. **性能优化**:在处理大量数据时,POI ...
总之,Apache POI 3.8是处理2003年至2010年版Excel文件的一个强大工具,其稳定性和丰富的功能使得开发者能够在Java环境中轻松地进行Excel操作。虽然这个版本较旧,但对许多基础功能仍能提供良好的支持。对于更现代的...
这个压缩包中包含的文件是Apache POI 3.8版本的组件,允许开发者在Java环境中读取、写入和修改这些Office文档。 1. **POI-3.8.jar**:这是主POI库的核心JAR文件,包含了处理Excel(HSSF和XSSF)、Word(HWPF和XWPF...
8. **性能优化**: 对于大数据量的处理,POI提供了流式处理API(SXSSF and SXWPF),这些API在处理大量数据时能有效降低内存使用。 9. **错误处理和异常**: 在使用POI进行文件操作时,需要注意处理可能出现的异常,...
标题提到的"poi3.8系列的jar包"指的是Apache POI项目在版本3.8及以上的库文件,这些jar包是开发人员处理Excel 2007(以及更高版本)XLSX格式文件所必需的。 **Apache POI的概述:** Apache POI 是由Apache软件基金...