Tworzę metodę zapisu i odczytu książki pracy z pliku, ale , kiedy tę metodę po raz drugi nazywam. błąd wystąpić maksymalnie: org.apache.xmlbeans.impl.values.XmlValueDisconnectedExceptionorg.apache.xmlbeans.impl.values.XmlValueDisconnectedException po dwukrotnym zapisaniu skoroszytu
public XSSFWorkbook GetUpdatedResult(XSSFWorkbook vmworkbookhelper) throws Exception
{
this.vmWorkbookHelper2 = vmworkbookhelper;
String tempName = UUID.randomUUID().toString()+".xlsx";
File tempFile = new File(tempName);
fileOut = new FileOutputStream(tempFile);
this.vmWorkbookHelper2.write(fileOut);
fileOut.close();
vmworkbookhelper = new XSSFWorkbook(tempFile);
if(tempFile.exists())
tempFile.delete();
return vmworkbookhelper;
}
Nie ładuj pliku przez InputStream, jest wolniejszy i zużywa więcej pamięci! [Otwórz bezpośrednio poprzez Plik zamiast] (http://poi.apache.org/spreadsheet/quick-guide.html#FileInputStream), jak opisano w dokumentach – Gagravarr
Gagravarr: Masz rację. Ale dałem odpowiedź w ten sam sposób, w jaki zadano pytanie. @niks: Sugestia podana przez Gagravarr jest naprawdę przydatna. Jeśli możesz odpowiednio zmienić swój kod, zrób to. W przypadku powyższego problemu wystarczy ponownie załadować skoroszyt przy użyciu tego samego i zaktualizowanego pliku. – Sankumarsingh
Cześć, robię to samo, ale to nie działa dla mnie – Nikesh