h1n2er 2009-10-11 16:52
浏览 249
已采纳

请问:如何利用jxl包更改大容量excel表的数据?

请各位帮忙!谢谢!

我有一个excel文件大小为11M左右,使用jxl包更改表格内容出现以下提示:
init:
deps-jar:
compile-single:
run-single:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at jxl.write.biff.WritableSheetImpl.getRowRecord(WritableSheetImpl.java:1223)
at jxl.write.biff.WritableSheetImpl.addCell(WritableSheetImpl.java:1151)
at jxl.write.biff.SheetCopier.shallowCopyCells(SheetCopier.java:945)
at jxl.write.biff.SheetCopier.copySheet(SheetCopier.java:219)
at jxl.write.biff.WritableSheetImpl.copy(WritableSheetImpl.java:1584)
at jxl.write.biff.WritableWorkbookImpl.copyWorkbook(WritableWorkbookImpl.java:971)
at jxl.write.biff.WritableWorkbookImpl.(WritableWorkbookImpl.java:343)
at jxl.Workbook.createWorkbook(Workbook.java:339)
at jxl.Workbook.createWorkbook(Workbook.java:320)
at kangxidic.Main.find_string(Main.java:161)
at kangxidic.Main.main(Main.java:201)
Java Result: 1
生成成功(总时间:16 秒)

附:部分代码
public static void find_string() {

    try {
            //创建只读的Excel工作薄的对象
            Workbook rw = Workbook.getWorkbook(new File("C://kangxi.xls"));

            //创建可写入的Excel工作薄对象
            WritableWorkbook writeWB = Workbook.createWorkbook(new File("C://kangxi.xls"), rw); 

            //读取第一张工作表
            WritableSheet writeSHT = writeWB.getSheet(0);

            //获得第一个单元格对象
            WritableCell writeCL = writeSHT.getWritableCell(0, 1);

            //判断单元格的类型, 做出相应的转化
            if(writeCL.getType() == CellType.LABEL)
            {
               Label l = (Label)writeCL;
               l.setString("aaaaaaaa.");
            }

            //写入Excel对象
            writeWB.write();

           //关闭可写入的Excel对象
           writeWB.close();

           //关闭只读的Excel对象
           rw.close();            

        } catch (Exception e) {
                                    e.printStackTrace();
                                    System.out.println("写入Excel文件失败,可能该文件正在被使用!");  
                                }
}


public static void main(String[] args) {        

    find_string();

}    

[b]问题补充:[/b]
我用的是netbeans,配置参数改过以后还是同样的错误提示!

  • 写回答

3条回答 默认 最新

  • star00123 2009-10-11 18:14
    关注

    已将上述程序在我的机器上测试,测试通过无问题;
    测试环境:
    测试文件大小:15M
    jvm内存大小:512M

    初步判定是你的jvm内存过小,建议增加jvm内存大小

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 方程如何编到C语言!
  • ¥20 关于#qt#的问题:Qt代码的移植问题
  • ¥50 求图像处理的matlab方案
  • ¥50 winform中使用edge的Kiosk模式
  • ¥15 关于#python#的问题:功能监听网页
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了