我是用java的jxl从Excel中读出数据按列读每列5行求一次平均值,有两个问题请教大家:
问题一:程序编译以没有问题,但是数据量大些时报内存溢出错误码:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
问题二:我输出到文本文件中的数据是按行存放的,如何可以与Excel表相对应按列存
现将我的代码整个贴出,请高手指点
代码:
import jxl.*;
import java.io.*;
import java.lang.*;
import jxl.write.*;class Excel2Text
{
public static void main(String[] args)
{
jxl.Workbook rwb = null;
FileOutputStream outFile=null;
try{
InputStream is = new FileInputStream("D:/jb9Test/Book1.xls");
outFile=new FileOutputStream("D:/jb9Test/test.txt");
StringBuffer str1=new StringBuffer("");
String aa="";
double sum=0;
rwb = Workbook.getWorkbook(is);
Sheet rs = rwb.getSheet(0);
//获取Sheet表中所包含的总列数
int rsColumns = rs.getColumns();
//获取Sheet表中所包含的总行数
int rsRows = rs.getRows(); for(int i=0;i<rsColumns;i++){ //读列
for(int j=0;j<rsRows;j++){ //读行
Cell cell = rs.getCell(i,j); sum +=Double.parseDouble(cell.getContents());
// sum += Float.parseFloat(cell.getContents());浮点型 if((j+1)%5==0){
aa=String.valueOf(sum/5)+" ";
outFile.write(aa.getBytes()); sum=0;
}
}
outFile.write("\n".getBytes());
} }catch(Exception e){
e.printStackTrace(); }finally{
//操作完成时,关闭对象,释放占用的内存空间
rwb.close();
} }
}
问题一:程序编译以没有问题,但是数据量大些时报内存溢出错误码:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
问题二:我输出到文本文件中的数据是按行存放的,如何可以与Excel表相对应按列存
现将我的代码整个贴出,请高手指点
代码:
import jxl.*;
import java.io.*;
import java.lang.*;
import jxl.write.*;class Excel2Text
{
public static void main(String[] args)
{
jxl.Workbook rwb = null;
FileOutputStream outFile=null;
try{
InputStream is = new FileInputStream("D:/jb9Test/Book1.xls");
outFile=new FileOutputStream("D:/jb9Test/test.txt");
StringBuffer str1=new StringBuffer("");
String aa="";
double sum=0;
rwb = Workbook.getWorkbook(is);
Sheet rs = rwb.getSheet(0);
//获取Sheet表中所包含的总列数
int rsColumns = rs.getColumns();
//获取Sheet表中所包含的总行数
int rsRows = rs.getRows(); for(int i=0;i<rsColumns;i++){ //读列
for(int j=0;j<rsRows;j++){ //读行
Cell cell = rs.getCell(i,j); sum +=Double.parseDouble(cell.getContents());
// sum += Float.parseFloat(cell.getContents());浮点型 if((j+1)%5==0){
aa=String.valueOf(sum/5)+" ";
outFile.write(aa.getBytes()); sum=0;
}
}
outFile.write("\n".getBytes());
} }catch(Exception e){
e.printStackTrace(); }finally{
//操作完成时,关闭对象,释放占用的内存空间
rwb.close();
} }
}
解决方案 »
- 如何提取txt中的,不重复部分?
- extjs中doAction总是执行failure的提示,java.lang.reflect.InvocationTargetException
- fckeditor
- 谁可以给我一个jquery树形的代码(动态的struts2),谢谢
- Struts2+JasperReport结合导出WORD,PDF等问题
- 大家节后第一天上班都在做些什么呢?
- 自己在Eclipse中写了下面的代码,用来手动连接Tomcat服务器,出现HTTP version NOT SUPPORTED ,本人一直在寻找答案,哪为高手能解决下
- 请问jdbc for mysql怎么用 怎么配置
- 用Hibernate的系统中你们是怎么做数据统计功能的?
- 紧急求助!!为什么我用jbuilder生成的一个Bean管理的entityBean,总返回的为null?
- js效果
- 关于java操作ftp的问题
eg:-Xms512M -Xmx1200M
-Xms512M -Xmx1200M