日期:2014-05-20  浏览次数:20691 次

java操作excel,用的jxl,帮忙看看
Java code
public void Update() {

        boolean isChecked = false;
        int x, y;
        String id = null;
        String number = null;

        try {
            // Excel获得文件
            // Excel获得文件
            Workbook wb = Workbook.getWorkbook(new File("T.xls"));
            // 打开一个文件的副本,并且指定数据写回到原文件
            WritableWorkbook book = Workbook.createWorkbook(new File("T.xls"),
                    wb);
            // 添加一个工作表
            // WritableSheet sheet = book.createSheet("第二页", 1);
            WritableSheet sheet = book.getSheet(0);
            
                    // 得到当前工作表的列数
                    int colNum = sheet.getColumns();
                    for (int j = 0; j < colNum; j++) {
                        // 得到当前列的所有单元格
                        Cell[] cells = sheet.getColumn(j);
                        if (cells.length > 1) {
                            isChecked = true;
                            continue;
                        } else {
                            flag = true;//
                            while (flag) {
                                id = getId();
                                number = this.getNumber(id);
                                // 对每个单元格进行循环
                                for (int k = 1; k < cells.length - 1; k++) {
                                    System.out.println(id);
                                    // 读取当前单元格的值
                                    String cellValue = cells[k].getContents();
                                    if ((cellValue == null || cellValue
                                            .equals(""))
                                            && cellValue.equals(number)) {
                                        Label lc = new Label(k, j, "Checked-in");
                                        sheet.addCell(lc);
                                        book.write();
                                        System.out.println("添加成功");
                                        // k = cells.length;
                                    }
                                }
                            }
                        }
                    }
book.close();
        } catch (Exception e) {
            flag = false;
            System.out.println(e);
        }
    }

总是有错,执行这个后xls文件就问0kb了,并且不能打开文件

------解决方案--------------------
jxl没用过,而且停止更新了。。可以试试POI。
你的问题可以去网上找个例子,对比以下就知道那错了
------解决方案--------------------
book.write();

从循环里拿出来,在close之前write一次就行。
------解决方案--------------------
楼上正解
------解决方案--------------------
你调用的方式有问题,给你一个使用jxl.jar的源码吧:java读取excel文档
这个实例我经过测试没有一点问题可以直接拿来使用,希望对你有帮助,不过我建议你有空看一下POI,这个功能会更强一些