Полагаю, вы делаете это:
- Открытие электронной таблицы через Microsoft Excel
- Открытие электронной таблицы через ваш
ExcelReader
класс
- Внесение изменений в электронную таблицу через Microsoft Excel
- Вы не замечаете изменение через ваш
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 ).