Excel数据更改,Java没有注意到

时间:2011-06-09 08:01:04

标签: java excel

我有一个愚蠢的问题。 我用硒自动化一些测试,一些数据在excel表中(就像那样,我会改变它,我保证:p) 有些字段是下拉列表,我可以更改它们,一切正常。其他是常规文本,如果我更改它们我的ExcelReader类只是不注意它并选择旧的值。 我不是一个优秀的专家(我对它没有太多的了解),但任何人都可以猜出这可能的原因吗?

注意:我没有实时检查更改。我正在做不同的执行并观察数据不能改变

1 个答案:

答案 0 :(得分:0)

我认为你这样做:

  1. 通过Microsoft Excel打开电子表格
  2. 通过ExcelReader课程
  3. 打开电子表格
  4. 通过Microsoft Excel更改电子表格
  5. 通过ExcelReader课程
  6. 注意到更改

    如果是这样,我相信JExcelApi(以及大多数其他Excel库)只会读取电子表格文件一次。也就是说,它不会与文件中随时间发生的任何变化保持同步。您可能必须创建一个线程来监视文件的上次修改日期,并在该日期更改时重新读取它。

    new Thread(
            new Runnable() {
                public void run() {
                    File file = new File("/path/to/your/spreadsheet");
                    long previouslyLastModified = file.lastModified();
                    while (true) {
                        Thread.sleep(1000); // 1000 milliseconds == 1 second
                        long lastModified = file.lastModified();
                        if (lastModified != previouslyLastModified) {
                            // Reload the spreadsheet
                        }
                        previouslyLastModified = lastModified;
                    }
                }
            }
        ).start();
    

    当然,可能有一些库可以更好地观察文件的变化。 Java本身没有观看文件的功能(although it is included in Java 7)。