Чтение значений ячеек в нескольких потоках одновременно

Как читать значения ячеек в нескольких потоках одновременно с Aspose.Cells for Java

Для чтения значений ячеек в более чем одном потоке одновременно установите Worksheet.getCells().setMultiThreadReading() в true. В противном случае вы можете получить неверные значения ячеек. Обратите внимание, некоторые функции, такие как форматирование значений ячеек, не поддерживаются для многопоточности. Поэтому MultiThreadReading позволяет получить доступ только к исходным данным ячейки. В среде многопоточности, если вы попытаетесь получить отформатированное значение ячейки, например, с помощью Cell.getStringValue() для числовых значений, вы можете получить непредвиденный результат или исключение.

Следующий код:

  1. Создает рабочую книгу.
  2. Добавляет лист.
  3. Заполняет лист строковыми значениями.
  4. Затем создает два потока, которые одновременно читают значения из случайных ячеек. Если прочитанные значения правильные, ничего не происходит. Если прочитанные значения неправильные, то отображается сообщение.

Если вы закомментируете эту строку:

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.");

}

В противном случае программа работает без отображения любого сообщения, что означает, что все значения, считываемые из ячеек, являются правильными.