Данные Excel меняются, Java не замечает - PullRequest
1 голос
/ 09 июня 2011

У меня глупая проблема. Я автоматизирую некоторые тесты с селеном, некоторые данные находятся в таблицах Excel (это было так, я изменю это, я обещаю: p) Некоторые поля являются выпадающими, я могу изменить их, и все в порядке. Другие - обычный текст, если я изменю их, мой класс ExcelReader просто не заметит его и не выберет старое значение. Я не эксперт по Excel (у меня нет особого представления об этом), но кто-нибудь может угадать возможную причину этого?

Примечание: я не проверяю изменения в реальном времени. Я делаю разные казни и наблюдаю за данными нет, чтобы изменить

1 Ответ

0 голосов
/ 10 июня 2011

Полагаю, вы делаете это:

  1. Открытие электронной таблицы через Microsoft Excel
  2. Открытие электронной таблицы через ваш ExcelReader класс
  3. Внесение изменений в электронную таблицу через Microsoft Excel
  4. Вы не замечаете изменение через ваш ExcelReader класс

Если это так, я считаю, что 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 не имеет функции просмотра файла (, хотя она включена в Java 7 ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...