import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
public class CNtest {
static ArrayList countrys = new ArrayList();
static ArrayList names_zh = new ArrayList();
static ArrayList names = new ArrayList();
static ArrayList names_en = new ArrayList();
static ArrayList kinds = new ArrayList();
static ArrayList oricodes = new ArrayList();
public static void readExcel() {
Workbook book = null;
try {
book = Workbook.getWorkbook(new File("CN-56803.xls"));
Sheet sheet = book.getSheet(0);
for (int i = 0; i < sheet.getRows(); i++) {
System.out.println("开始读取第"+i+"行数据");
Cell gbCell = sheet.getCell(0, i);
Cell zwmcCell = sheet.getCell(1, i);
Cell ywmcCell = sheet.getCell(2, i);
Cell jglxCell = sheet.getCell(3, i);
Cell ysdmCell = sheet.getCell(4, i);
String gb = gbCell.getContents().trim();
String zwmc = zwmcCell.getContents().trim();
String ywmc = ywmcCell.getContents().trim();
String jglx = jglxCell.getContents().trim();
String ysdm = ysdmCell.getContents().trim();
HashMap name = new HashMap();
name.put(ywmc,"EN" );
name.put(zwmc,"ZH" );
countrys.add(gb);
//names.add(name);//*请问如何解决呢?
names_zh.add(zwmc);
names_en.add(ywmc);
kinds.add(jglx);
oricodes.add(ysdm);
}
}
catch(Exception e){
}
finally{
book.close();
}
}
public static void main(String[] args){
readExcel();
}}运行结果:
开始读取第39221行数据
开始读取第39222行数据
开始读取第39223行数据
开始读取第39224行数据
java.lang.OutOfMemoryError
Exception in thread "main"
跟39224行没有关系,如果把CN-56803.xls中的39224行附近的几行去掉依然存在。
import java.util.ArrayList;
import java.util.HashMap;import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
public class CNtest {
static ArrayList countrys = new ArrayList();
static ArrayList names_zh = new ArrayList();
static ArrayList names = new ArrayList();
static ArrayList names_en = new ArrayList();
static ArrayList kinds = new ArrayList();
static ArrayList oricodes = new ArrayList();
public static void readExcel() {
Workbook book = null;
try {
book = Workbook.getWorkbook(new File("CN-56803.xls"));
Sheet sheet = book.getSheet(0);
for (int i = 0; i < sheet.getRows(); i++) {
System.out.println("开始读取第"+i+"行数据");
Cell gbCell = sheet.getCell(0, i);
Cell zwmcCell = sheet.getCell(1, i);
Cell ywmcCell = sheet.getCell(2, i);
Cell jglxCell = sheet.getCell(3, i);
Cell ysdmCell = sheet.getCell(4, i);
String gb = gbCell.getContents().trim();
String zwmc = zwmcCell.getContents().trim();
String ywmc = ywmcCell.getContents().trim();
String jglx = jglxCell.getContents().trim();
String ysdm = ysdmCell.getContents().trim();
HashMap name = new HashMap();
name.put(ywmc,"EN" );
name.put(zwmc,"ZH" );
countrys.add(gb);
//names.add(name);//*请问如何解决呢?
names_zh.add(zwmc);
names_en.add(ywmc);
kinds.add(jglx);
oricodes.add(ysdm);
}
}
catch(Exception e){
}
finally{
book.close();
}
}
public static void main(String[] args){
readExcel();
}}运行结果:
开始读取第39221行数据
开始读取第39222行数据
开始读取第39223行数据
开始读取第39224行数据
java.lang.OutOfMemoryError
Exception in thread "main"
跟39224行没有关系,如果把CN-56803.xls中的39224行附近的几行去掉依然存在。
解决方案 »
- 关于一个小题
- 程序结果与我预想的不一样.....请教
- 求教:基于java的类似QQ的聊天系统
- comp = new Component(this);这里的this到底起了什么作用?
- 文件操作,在线等
- 书上的一个例子,虽然长一些,可是不复杂,可是编译不过,请高手指点,谢谢
- 为什么接收过来的是乱码?
- 怎样才能让a除以b的结果四舍五入后保留两位小数的百分数???
- 为什么程序运行到一定程度总是没响应
- 救命:JAVA怎么得到DNS服务器的地址
- java 的 Runtime.getRuntime().exec("cp -rf ")返回什么类型? 我想知道这条命令是否执行正确
- 一个比较笨的问题知道的帮忙看看!
把这下面的错误信息也发上来
这句话没关系吧 这么多全局变量 都要存放60000多个对象 肯定会溢出的吧
HashMap name = new HashMap();
每次都是用来存储中文和英文两个元素的话,你可以声明成:
HashMap name = new HashMap(2); //默认的是16
这样会节省一些空间。看会不会读的行数多一些