ich bin nicht in der Lage, das vorhandene Excel-Blatt mit jxl zu bearbeiten. Es erstellt immer ein neues. Kann mir bitte jemand helfen. Bitte geben Sie einen kleinen Beispielcode ein.Excel vorhandene modifizierende jxl mit
Antwort
jxl ist für eine erhöhte Leseeffizienz ausgelegt (da dies die primäre Verwendung der API ist). Um die Leistung zu verbessern, werden Daten, die sich auf Ausgabeinformationen beziehen (z. B. alle Formatierungsinformationen, wie z. B. Schriftarten), nicht interpretiert, wenn das Arbeitsblatt gelesen wird, da dies beim Abfragen der Rohdatenwerte überflüssig ist.
Wenn wir jedoch brauchen diese Tabelle einen Griff an die verschiedenen Schreib Schnittstellen ändern benötigt, die das Kopierverfahren erhalten werden können.
Workbook workbook = Workbook.getWorkbook(new File("myfile.xls"));
WritableWorkbook copy = Workbook.createWorkbook(new File("temp.xls"), workbook);
Dies kopiert die Informationen, die die zusätzliche Verarbeitung, wie die Durchführung in als auch gelesen hat, um die Felder zu interpretieren, die notwendig sind für das Schreiben von Tabellen bereits. Der Nachteil dieser leseoptimierten Strategie besteht darin, dass wir zwei Arbeitsblätter im Speicher haben und nicht nur eins, wodurch die Speicheranforderungen verdoppelt werden.
Aber nach diesem können Sie tun, was Sie wollen. Wie:
WritableSheet sheet2 = copy.getSheet(1);
WritableCell cell = sheet2.getWritableCell(1, 2);
if (cell.getType() == CellType.LABEL)
{
Label l = (Label) cell;
l.setString("modified cell");
}
copy.write();
copy.close();
workbook.close();
Hinweis: Dies ist direkt aus Andy Khan's tutorial page entnommen.
Ich weiß, dass dies eine ziemlich alte Frage ist, aber wenn jemand auf das gleiche Problem stoßen wird, dann um die korrekte Formatierung (Schriftart, Färbung, etc.) zu speichern Sie sollten das Zellenformat speichern, bevor es auf Label , und erzwingen Sie dann die Zelle zu der vorherigen Formatierung. Code:
CellFormat cfm = cell.getCellFormat();
Label l = (Label) cell;
l.setString("modified cell");
cell.setCellFormat(cfm);
//there is god example of it, you can copy in ur project and check it out, to
//understand how it works
Workbook wk = Workbook.getWorkbook(new File("ex.xls"));
//
WritableWorkbook wkr = Workbook.createWorkbook(new File("modifed.xls"), wk);
/* second line makes copy of wk excel file object /creates a readable spreadsheet.
both are now similar and i can Modify exiting wkr spreadsheets */
//next 2 line retrieve sheet number 0 and cell (1,1)
WritableSheet getsht = wkr.getSheet(0);
WritableCell getcl = getsht.getWritableCell(1, 1);
//making own font
WritableFont ft = new WritableFont(WritableFont.ARIAL, 20 , WritableFont.BOLD, true , UnderlineStyle.SINGLE);
//making Format, which uses font
WritableCellFormat form = new WritableCellFormat(ft);
Number nb = (Number) getcl ;
nb.setCellFormat(form);
wkr.write();
wkr.close();
Obwohl es manchmal in Ordnung ist, eine Frage nur mit Code, aber die meiste Zeit zu beantworten Der Post wird durch Hinzufügen einer Erklärung verbessert. Sie können Ihre Antwort so bearbeiten, dass sie eine enthält. –
- 1. Bearbeiten Sie vorhandene Excel-Dateien mit jxl api/Apache POI
- 2. JXL lesen Hyperlink-Zelle aus Excel mit Java
- 3. JXL und Apache POI Parsing Excel mit angehängten Bildobjekten
- 4. Wie erstelle ich eine neue Excel-Datei mit JXL?
- 5. Pandas to_dict modifizierende Zahlen
- 6. Excel VBA Spalt vorhandene Arbeitsmappe
- 7. überschreiben vorhandene Datei Excel VBA
- 8. Prozessliste modifizierende Elemente in elisp
- 9. Pyparsing Neuling setParseAction modifizierende Tokens
- 10. Excel-Automatisierung: Öffnen Sie vorhandene Excel-Datei als "neu"
- 11. Excel mit JXL lesen, Anzahl der Zellen pro Zeile zwischen den Zeilen wechseln
- 12. Hinzufügen eines Kommentars zu einer Zelle in einer Excel-Datei mit Java mithilfe der JXL-Bibliothek
- 13. So schreiben Sie formatierte Zahlen als Zahlen in JExcel (jxl)
- 14. Jersey & Jackson - Ressourcen modifizierende Jackson-Ausgabe
- 15. modifizierende Länge eines Arrays in C++
- 16. So speichern/überschreiben Sie vorhandene Excel-Datei mit Excel Interop - C#
- 17. JXL und Android-E/A-Berechtigung verweigert
- 18. an vorhandene Excel-Datei einfügen mit OpemXML und C# verursacht Excel Probleme mit Inhalten und zwingt Reparaturen
- 19. Datenvalidierungsfeld in Excel
- 20. Einschränkung 'vorhandene Entität'
- 21. Selbst modifizierende Code immer Segmentierung Fehler unter Linux
- 22. Schriften in PDF mit Ghostscript in vorhandene Datei einbetten
- 23. Aufrufen vorhandener Excel-Datei mit OLE - Delphi
- 24. C++ 11 modifizierende Elemente in initializer_list mit Zeiger verursacht SIGSEGV, warum?
- 25. Aktualisieren MySQL Datenbank vorhandene feild mit PHP
- 26. Kopieren Sie nur vorhandene Dateien mit Robocopy
- 27. Vorhandene OpenGL-Textur mit Scenekit verwenden
- 28. Aktualisieren Sie vorhandene Daten mit DataRow C#
- 29. EF7 mit Identität auf vorhandene Datenbank
- 30. Verwenden Sie vorhandene Daten mit Liquibase?
Hallo @Lalli ich Ihre Antwort bin mit aber es funktioniert nicht Ich erhalte Fehler auf dieser Linie 'WritableWorkbook kopieren = Workbook.createWorkbook (neue Datei ("temp.xls"), Arbeitsmappe); ' FEHLER ist' java.io.FileNotFoundException: temp.xls: geöffnet fehlgeschlagen: EROFS (Nur-Lese-Dateisystem) ' –