Gleichzeitiges Lesen von Cell-Werten in mehreren Threads
Um Zellenwerte in mehr als einem Thread gleichzeitig zu lesen, setWorksheet.getCells().setMultiThreadReading() zuwahrWenn Sie dies nicht tun, erhalten Sie möglicherweise die falschen Zellenwerte. Bitte beachten Sie, dass einige Funktionen wie das Formatieren von Zellenwerten für mehrere Threads nicht unterstützt werden. MultiThreadReading ermöglicht Ihnen also nur den Zugriff auf die Originaldaten der Zelle. Wenn Sie in einer Umgebung mit mehreren Threads versuchen, den formatierten Wert der Zelle abzurufen, z. B. durch Cell.getStringValue() für numerische Werte, erhalten Sie möglicherweise ein unerwartetes Ergebnis oder eine Ausnahme.
Der folgende Code:
- Erstellt eine Arbeitsmappe.
- Fügt ein Arbeitsblatt hinzu.
- Füllt das Arbeitsblatt mit Zeichenfolgenwerten.
- Anschließend werden zwei Threads erstellt, die gleichzeitig Werte aus zufälligen Zellen lesen. Wenn die gelesenen Werte korrekt sind, passiert nichts. Wenn die gelesenen Werte falsch sind, wird eine Meldung angezeigt.
Wenn Sie diese Zeile kommentieren:
testWorkbook.getWorksheets().get(0).getCells().setMultiThreadReading(true);
dann kommt folgende meldung:
if (s.equals("R" + row + "C" + col)!=true)
{
System.out.println("This message box will show up when cells read values are incorrect.");
}
Andernfalls läuft das Programm ohne Meldung, was bedeutet, dass alle aus Zellen gelesenen Werte korrekt sind.