1. poi读excel内存溢出
Workbook workbook = new SXSSFWorkbook(1000); poi有个机制 每次往内存中写1000条数据,这个1000你可以改的 尽量别大于10000条数据,写完1000条数据后再重新写,这样就不会内存溢出了。
2. poi获取excel行数
百度搜索圈T社区 免费行业视频教程www.aiquanti.com
package com.asima;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
*
* @author asima
* @data 2006-10-18
*/
public class XlsToAccess
{
HSSFSheet globalSheet = null;
/*读取一个指定单元格内容*/
public String readCellValue(String pos)
{
int xpos;
short ypos;
int cellType; /*取得此单元格的类型 0-Numeric,1-String,3-null*/
String result; /*返回取得的单元格的值*/
ypos = (short) (pos.toUpperCase().charAt(0) - 65);
xpos = Integer.parseInt(pos.substring(1, pos.length())) - 1;
HSSFRow row = null; /* 定义excel中的行 */
HSSFCell cell = null; /* 定义excel中的单元格 */
/* 根据xPos和yPos取得单元格 */
row = globalSheet.getRow(xpos);
cell = row.getCell(ypos);
/** **************此处如果是空需要修改********************************** */
cellType = cell.getCellType();
switch (cellType)
{
case 0: /* 0-Numeric */
result = String.valueOf(cell.getNumericCellValue());
break;
case 1: /* 1-String */
result = cell.getStringCellValue();
break;
case 3: /* 3-null */
result = "";
break;
default:
result = "";
break;
}
return result;
}
/*读取excel文件并把内容插入到access表中*/
public void insertIntoTable() throws Exception
{
// 创建对Excel工作簿文件的引用
HSSFWorkbook workbook =
new HSSFWorkbook(new FileInputStream("D:/temp/test.xls"));
// 获得一个sheet
globalSheet = workbook.getSheetAt(0);
String value1 = readCellValue("c1");
String value2 = readCellValue("c2");
String value3 = readCellValue("c3");
String value4 = readCellValue("c4");
System.out.println(value1);
System.out.println(value2);
/* 插入数据库 */
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:asima";
Connection conn = DriverManager.getConnection(url);
PreparedStatement stmt =
conn.prepareStatement("insert into custom values(?,?,?,?)");
// 定义查询的SQL语句
stmt.setString(1, value1);
stmt.setString(2, value2);
stmt.setString(3, value3);
stmt.setString(4, value4);
stmt.executeUpdate
3. poi读取大数据量excel的方法
GoReport是基于J2EE和WEB的综合报表解决方案,特有的EXCEL+绑定数据列的报表设计方式,行列对称,能够轻松处理复杂的报表展现样式,部署方式简单而灵活,具有强大的报表展示功能。
GoReport报表工具前端使用Dhtmlx作为页面显示,本次升级将原有的html页面全部更新为Dhtmlx控件显示,主要是为了和公司的t-eplat平台界面风格一致,与t-eplat平台集成后感觉不出是两套系统。
GoReport报表工具使用Fis解决前端开发中自动化工具、性能优化、模块化框架、开发规范、代码部署、开发流程等问题。 GoReport报表工具使用beetl模版引擎对sql语句进行逻辑处理、参数配置、用户信息获取等,使得报表数据获取更加灵活、高效。
GoReport报表工具使用Spring security进行企业级权限控制,Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。Spring security为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。
报表工具使用Spring data jpa简化创建 JPA 数据访问层和跨存储的持久层功能。Spring Data是一个用于简化数据库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算数据服务。通过使用Spring Data不仅简化和优化的代码质量,而且为GoReport报表工具的将来的大数据规划提供支撑。
GoReport报表工具使用自主研发的模型、模板、视图管理来简化页面开发,提供一种高效、稳定的开发模式,来简化前端页面与后台交互的开发。 GoReport报表工具使用Poi开源库来进行数据源与excel的绑定,从而生成各种excel样式报表。
GoReport报表工具使用jasperReports开源库对excel样式无法完成的报表进行编写,虽然jasperReports学习成本和开发难度都比较大,但可以对excel报表无法完成的功能进行补充。
4. poi读取Excel
使用pl/sqldeveloper可以完成1、控制面板-->管理工具-->数据源(ODBC)-->添加-->选择驱动*.xls-->完成-->选择你的excel表格2、pl/sql-->tools-->ODBCImporterDataFromODBC标签页:DSN选择刚刚添加的数据源,点击connectDataToOracle标签页:选择对应的表3、点击Import,可以完成导入需要注意的是,excel中列的顺序和数据库表的字段顺序最好保持一致,excel列的标题和字段名称保持一致,这样导入的时候,会自动匹配。
5. Excel 内存溢出
Dim Ro1&, Co%, I%, Ra As Range 改成Dim Ro1&, Co%, I&, Ra As Range i由整型改为长整型,另外excel最大行数好像是65536吧,i如果超过65536,后面 Range("B" & I) 也会出错。
6. poi读取excel内存溢出
用过的处理excel工具包有easypoi和easyexcel.从使用上来说,都挺简单易用。性能上都存在文件处理普遍存在的问题,大文件处理慢、占资源等问题。而easyexcel号称低内存消耗,对比上确实是easyexcel内存消耗较小。但是其实easypoi也有提供低内存消耗的处理方式,底层使用的方式也是一样的,就看谁封装的好用一点是了。
7. java读取excel内存溢出
代码如下: import java.io.*; import jxl.*; import jxl.write.*; public class CreateXLS { public static void main(String args[]) { try { //打开文件 WritableWorkbook book= Workbook.createWorkbook(new File("测试.xls")); //生成名为“第一页”的工作表,参数0表示这是第一页 WritableSheet sheet=book.createSheet("第一页",0); //在Label对象的构造子中指名单元格位置是第一列第一行(0,0) //以及单元格内容为test Label label=new Label(0,0,"test"); //将定义好的单元格添加到工作表中 sheet.addCell(label); /*生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为789.123*/ jxl.write.Number
number = new jxl.write.Number(1,0,789.123); sheet.addCell(number); //写入数据并关闭文件 book.write(); book.close(); }catch(Exception e) { System.out.println(e); } } }
8. 读取excel内存溢出
检查数据是否为文本格式。 如果找不到哪个数漏了,可观察是否存在右上角带绿三角的单元格;也可将对齐方式设为常规(默认为常规),这时左对齐的为文本格式,右对齐的为数值格式。
- 相关评论
- 我要评论
-