wie shift-Spalte in java poi xssf
Kopieren einer vorhandenen Spalte, die Daten und die Formatierung in nächste Spalte in Apache POI und Verschiebung der nächsten Spalte nach rechts.
Habe ich versucht, diese.
Lassen Sie sagen, mein code ist...
XSSFCell oldCell = worksheet.getRow(0).getCell(1);
XSSFCell newCell = worksheet.getRow(0).getCell(2);
if(styleMap != null) {
if(oldCell.getSheet().getWorkbook() == newCell.getSheet().getWorkbook()){
newCell.setCellStyle(oldCell.getCellStyle());
} else{
int stHashCode = oldCell.getCellStyle().hashCode();
XSSFCellStyle newCellStyle = styleMap.get(stHashCode);
if(newCellStyle == null){
newCellStyle = newCell.getSheet().getWorkbook().createCellStyle();
newCellStyle.cloneStyleFrom(oldCell.getCellStyle());
styleMap.put(stHashCode, newCellStyle);
}
newCell.setCellStyle(newCellStyle);
}
}
Ich in der Lage, kopieren Sie den Wert aus der alten Zelle zu der neuen Zelle, aber es verrutscht nicht, die vorhandenen Spalte rechts.
Dank im Voraus für Eure Hilfe.
- Ihre Frage ist nicht klar. Was ist da eigentlich passiert? Habe die Werte aus der ersten Spalte werden in der zweiten Spalte? Dein code oben wird nie gelöscht, die erste Spalte Zelle?
- Vielen Dank für Ihre Antwort. Meine Frage ist, wie shift Spalte, nach dem Auffüllen der Daten aus dem obigen code. --Ja, es erscheint, aber es überschreibt die Daten der nächsten Zelle.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich noch nicht gearbeitet, mit POI in mehreren Jahren, aber wenn ich mich richtig erinnere müssen Sie die Iteration über alle Zellen in einer Zeile aktualisieren der Spalte Zahl in jeder
Cell
zu sein, was Sie wollen. Es gibt keine Magie "Spalte einfügen" - Methode. Denken Sie daran, dies zu tun von rechts nach Links vollständig zu vermeiden verriss der Tabelle 🙂Ich kann nicht glauben, dass es nicht in der API.
Können Sie diese verwenden 2 praktische Funktionen. Ich werde versuchen, um PR, um den Apache POI später auf.