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条)

报告相同问题?

悬赏问题

  • ¥25 关于##爬虫##的问题,如何解决?:
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误