Excel POI API ändern Zelle Wert
Ich lese eine excel-Datei und füllen Sie einige Zellen mit POI-API für JAVA. Das Schreibe ich die ganze Arbeitsmappe in eine andere. Das ist tatsächlich Arbeit.
Das problem ist, dass dann (sobald die Zellen gefüllt sind) habe ich, die Datei zu öffnen und klicken Sie auf und geben Sie in die Zellen die ich modifiziert habe, um zu aktualisieren, die Werte der anderen Formel die Zellen.
Der code ist so:
cellHorasPrevistas.setCellValue("01:00:00")
Wenn ich in der xls-Datei scheint es sich um ein raw-String, statt dem Format "[h]:mm:ss", das war das ursprüngliche format der Zelle.
Habe ich versucht zu umschreiben, das format manuell, aber es hat nicht funktioniert:
HSSFCellStyle cs = wb.createCellStyle();
HSSFDataFormat df = wb.createDataFormat();
cs.setDataFormat(df.getFormat("[h]:mm:ss"));
cellHorasPrevistas.setCellStyle(cs);
cellHorasPrevistas.setCellValue("01:00:00")
Habe ich auch schon versucht ohne Glück
HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
fe.clearAllCachedResultValues()
fe.notifyUpdateCell(cellHorasPrevistas)
fe.evaluate(cellHorasPrevistas)
Ich muss ganz einfach zu ändern der Wert in einer Zelle eine bekommen, dass die Zelle die gleiche, wenn ich es manuell geändert in der xls.
Vielen Dank im Voraus,
Raúl
Fand eine teilweise Erklärung....Das problem ist, dass de CellType ändert sich von Zahl zu String und damit kann excel nicht verwenden, es in Formeln. Ich möchte mantain die Zahlenformat-Einstellung den Wert "12:00:00" und nicht 0,5. Ist es möglich?
- Ich aktualisiert meine Antwort mit den Ergebnissen aus einigen tests, die ich gemacht
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie könnten versuchen, mit einem
Date
oderCalendar
-Objekt, um den Wert und kein String. Sie müssen möglicherweise erstellen Sie ein Dummy-Objekt, dass nur die entsprechende Zeit eingestellt .Ich hatte, um das JAHR einzustellen, um 1970, Monat Januar Tag und auf 1, um es arbeiten wie diese:
Ergebnis:
Wenn ich Links die
YEAR
/MONTH
/DATE
Teil normal, die Stunden würden mit all den Stunden, seit dem 1. Januar 1970.Erstens, aktualisieren Sie Ihre Formeln, so dass Sie nicht haben, um in der Datei zu halten hiting eingeben:
für .xlsx-Dateien
für .xls-Dateien
Für die Umsetzung Zeit in excel habe ich eine einfache Klasse-Datei, so können Sie sehr einfach ändern Sie einfach alle Eingaben für die Zeilen und Spalten. Dies ist jedoch für XSSF, aber das sollte kein Problem sein zu ändern zu HSSF.