`
chengyue2007
  • 浏览: 1488214 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

POI3.8中 大数据量的处理

 
阅读更多

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("导出成功");
		
	
	}

}

 

分享到:
评论

相关推荐

    POI3.8中 大数据量的处理.pdf

    总之,Apache POI 3.8 中的SXSSFWorkbook是处理大数据量Excel文件的理想选择,它通过流式处理和磁盘缓存策略,有效地解决了内存限制问题,确保了大规模数据处理的可行性。在互联网和计算机科学(cs)领域,这样的...

    POI 3.8 Beta5 创建大数据量 Excel文件

    在POI 3.8 Beta5这个版本中,开发者可以利用它来处理大数据量的Excel文件,这在数据处理、报告生成或数据分析场景中非常有用。 Apache POI库提供了HSSF(Horrible Spreadsheet Format)和XSSF(XML Spreadsheet ...

    poi3.8版本jar包及解析Excel对应Java代码

    在本主题中,我们将重点讨论POI 3.8版本,它支持对Excel电子表格的读取和写入操作。 首先,要使用Apache POI 3.8,你需要下载相应的jar包,即`poi-3.8.jar`。这个jar包包含了处理Excel文件所需的类和方法。在Java...

    poi3.8 doc,excel转html

    6. **库依赖**:虽然标题中提到了poi3.8,但现代项目可能需要更新版本的Apache POI,因为它包含了更多的功能和错误修复。同时,如果要处理2007及更高版本的文件,还需要引入XSSF和XWPF库。 7. **其他工具和库**:...

    POI3.8中 大数据量的处理.docx

    。。。

    POI3.8 jar包

    在POI3.8中,最重要的组件包括HSSF(Horrible Spreadsheet Format)和XSSF(Extensible Spreadsheet Format),分别用于处理老版的BIFF8格式(.xls)和新的OOXML格式(.xlsx)。HSSF提供了对Excel 97-2003工作簿的...

    poi-3.8的6个包

    这种模型允许处理大量数据时只保留最近使用的行在内存中,从而避免了内存溢出的问题,特别适合大数据量的Excel处理。 总的来说,这些jar文件提供了全面的工具集,可以满足你在Java环境中对Office文档的各种操作需求...

    poi 3.8 3.9 3.10 3.15 3.17各种版本

    在给定的标题和描述中,提到了几个不同版本的POI,包括3.8、3.9、3.10、3.15和3.17。每个版本都有其特定的更新和改进,下面将详细介绍这些版本中的关键知识点。 1. **POI 3.8**: - 这是较早的一个版本,支持基本...

    Excel操作工具poi3.8

    在给定的标题“Excel操作工具poi3.8”中,我们关注的是POI 3.8版本,这是一个适用于处理Excel文件的强大工具。在这个版本中,用户可以进行数据读取、写入、格式化以及复杂的公式计算等操作。 首先,我们需要理解...

    poi 3.8和4.1.2.rar

    可以通过调整工作簿的缓存策略,以及使用SXSSF(Streaming Usermodel API)来处理大数据量的情况。 版本间的差异: - Apache POI 3.8是较早的版本,可能不支持一些新特性,如XSSF对Excel 2007以上版本的支持和对新...

    poi 3.8jar 包

    总的来说,"poi 3.8jar 包"是一个强大的工具,适合需要在Java环境中处理Office文档的开发者。尽管标记为beta5,但其功能和稳定性足以满足大多数需求。使用时,开发者应参考官方文档,结合具体的项目需求,灵活运用...

    poi3.8

    在标题“poi3.8”中提到的版本3.8是该项目的一个历史版本,发布于2012年9月。这个版本包含了对处理Excel、Word和PowerPoint文件的API改进和修复。 在POI 3.8中,主要的知识点包括: 1. **Excel处理**: - HSSF...

    HSSF POI 3.8帮助文档 英文版

    Apache POI 是一个开源项目,主要用来处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。HSSF(Horizontally Stored Sheet Format)是POI库的一部分,专门用于处理旧版的Excel文件,即.BIFF8格式的XLS...

    POI 3.8解析Excel2003、Excel2007

    - 如果可能,优先选择使用SXSSF以处理大数据量。 9. **总结** Apache POI 3.8是Java开发者处理Excel文件的强大工具,无论是在2003还是2007格式下,都能提供高效的读写能力。通过理解和掌握POI的基本操作和高级...

    POI_3.8_API

    XSSF支持更多的功能和更大数据量的处理。 - **SXSSF(Streaming Usermodel API)**: 这是一个内存优化的API,适用于处理大型Excel文件。SXSSF将数据写入硬盘,而不是全部保留在内存中,从而避免内存溢出。 2. **...

    poi3.8,3.9,3.10jar包

    5. **数据流处理(SXSSF)**:为了处理大数据量的Excel文件,POI提供了基于内存的`SXSSF`接口,它采用滑动窗口模型,仅保留最近使用的行在内存中,从而降低了内存消耗。 6. **性能优化**:在处理大量数据时,POI ...

    POI 3.8完整JAR 支持2003-2010Excel

    总之,Apache POI 3.8是处理2003年至2010年版Excel文件的一个强大工具,其稳定性和丰富的功能使得开发者能够在Java环境中轻松地进行Excel操作。虽然这个版本较旧,但对许多基础功能仍能提供良好的支持。对于更现代的...

    POI-3.8.jar

    这个压缩包中包含的文件是Apache POI 3.8版本的组件,允许开发者在Java环境中读取、写入和修改这些Office文档。 1. **POI-3.8.jar**:这是主POI库的核心JAR文件,包含了处理Excel(HSSF和XSSF)、Word(HWPF和XWPF...

    poi3.8 jar包

    8. **性能优化**: 对于大数据量的处理,POI提供了流式处理API(SXSSF and SXWPF),这些API在处理大量数据时能有效降低内存使用。 9. **错误处理和异常**: 在使用POI进行文件操作时,需要注意处理可能出现的异常,...

    poi3.8系列的jar包

    标题提到的"poi3.8系列的jar包"指的是Apache POI项目在版本3.8及以上的库文件,这些jar包是开发人员处理Excel 2007(以及更高版本)XLSX格式文件所必需的。 **Apache POI的概述:** Apache POI 是由Apache软件基金...

Global site tag (gtag.js) - Google Analytics