Excel数据变化,Java不会注意到

我有一个愚蠢的问题。 我用selenium自动化一些testing,一些数据在Excel表格(这是这样的,我会改变它,我保证:P)一些领域是下拉,我可以改变他们,一切都OK。 其他人是正规的文本,如果我改变他们我的ExcelReader类只是不注意到它,并select旧的价值。 我不是专家(我没有太多的想法),但任何人都可以猜测一个可能的原因呢?

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

我想你是这样做的:

  1. 通过Microsoft Excel打开电子表格
  2. 通过ExcelReader类打开电子表格
  3. 通过Microsoft Excel更改电子表格
  4. 不会注意到通过你的ExcelReader类的变化

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

 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本身并不具备监视文件的function( 尽pipe它包含在Java 7中 )。