Чтение значений Cell в нескольких потоках одновременно
Как читать значения Cell в нескольких потоках одновременно с Aspose.Cells for Java
Чтобы читать значения ячеек в нескольких потоках одновременно, установитеРабочий лист.getCells().setMultiThreadReading()на истину*. Если вы этого не сделаете, вы можете получить неправильные значения ячеек. Обратите внимание: некоторые функции, такие как форматирование значений ячеек, не поддерживаются для многопоточности. Таким образом, MultiThreadReading позволяет вам получить доступ только к исходным данным ячейки. В многопоточной среде, если вы попытаетесь получить форматированное значение ячейки, например, с помощью Cell.getStringValue() для числовых значений, вы можете получить неожиданный результат или исключение.
Следующий код:
- Создает рабочую книгу.
- Добавляет рабочий лист.
- Заполняет рабочий лист строковыми значениями.
- Затем он создает два потока, которые одновременно считывают значения из случайных ячеек. Если считанные значения верны, ничего не происходит. Если считанные значения неверны, отображается сообщение.
Если вы прокомментируете эту строку:
testWorkbook.getWorksheets().get(0).getCells().setMultiThreadReading(true);
то появится следующее сообщение:
if (s.equals("R" + row + "C" + col)!=true)
{
System.out.println("This message box will show up when cells read values are incorrect.");
}
В противном случае программа запускается без какого-либо сообщения, что означает, что все значения, считанные из ячеек, верны.