Gewusst wie: einfügen vor Zeile in der OpenXml-SDK SpreadsheetDocument Tabelle?
Diese meine einfügen nach Zeile code:
using (var spreadSheet = SpreadsheetDocument.Open(memoryStream, true, openSettings))
{
var worksheet = GetWorksheet(spreadSheet);
var worksheetPart = worksheet.WorksheetPart;
var sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();
var newRowIndex = 9;
foreach (var item in Items)
{
newRowIndex++;
var newRow = new Row()
{
RowIndex = (uint)newRowIndex
};
var lastRow = sheetData.Elements<Row>().LastOrDefault(l => l.RowIndex == newRowIndex - 1);
sheetData.InsertAfter(newRow, lastRow);
}
worksheet.Save();
}
Und meine excel-Bericht Vorlage:
Dieser code funktioniert gut, aber das Ergebnis ist nicht korrekt. Das problem ist, dass neue Zeilen einfügen soll, bevor 9th - Zeile.
Wie kann ich dieses problem lösen?
check this link, stackoverflow.com/questions/12657611/...
Veer B. Singh, ich bin nicht problem einfügen Zeile,und Ihren Kommentar für jedes problem!!!Mein problem Letzte Zeile vor Zeile einfügen und änderte die Letzte Zeile index...
Veer B. Singh, ich bin nicht problem einfügen Zeile,und Ihren Kommentar für jedes problem!!!Mein problem Letzte Zeile vor Zeile einfügen und änderte die Letzte Zeile index...
InformationsquelleAutor Elyor | 2013-04-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du nicht gehst, es zu mögen... Das problem ist, dass Sie die Zeilen 9 und 11 in Ihrer Vorlage. Sie haben, um Sie korrekt in Ihre RowIndex, müssen aktualisiert werden, und das Kind Cell Elemente der Zeile Elemente haben Ihre CellReference Eigentum (sowie CellFormula, wenn Sie Sie haben) korrigiert.
Sagen, Sie haben 6 neue Artikel. Dann Zeile 9 wird die Zeile 15. Und die Zelle A9 in der "alten" Zeile 9 müssen aktualisiert werden, um die A15. Ich habe code, der die Aktualisierung der RowIndex-und CellReference aber es ist nicht narrensicher. SIE WURDEN GEWARNT.
Beachten Sie auch, dass habe ich geändert, der Start-index von 9 auf 8. Das ist, weil die code-Schritten erste (newRowIndex++), bevor Sie die InsertAfter(). Oh du wirst es herausfinden...
Also, ich bin ein Update-Zeile 11 zuerst vor der Zeile 9, weil ich Angst vor Kollisionen. Wenn Sie 2 neue Elemente, und aktualisieren Sie Zeile 9 zunächst wird es Zeile 11. Und dann haben Sie zwei Zeile 11. So, das war die ursprüngliche Zeile 11? In diesen Fällen, wenn die Erhöhung der Zeilen-Indizes beginnen Sie mit die Zeile mit der höheren RowIndex.
Worksheet
.Und weil nicht zu ersetzen
RowIndex
imSheetDate
.InformationsquelleAutor Vincent Tan
OK!!!,vielen Dank an alle und ich Erfolge in dieser Frage für die Antwort im EPPlus
Beispiel:
Yeah!,doch einfach EPPlus lib.Und es schreiben OpenXML-Struktur mit WindowsBase & IO-Pakete.
InformationsquelleAutor Elyor
Sie können auch mit dem OpenXML SDK für diese, aber Sie müssen MANUELL nach unten alle Zeilen unterhalb der Zeile einfügen vor dem einfügen.
Nützliche Beispiele hier und hier.
Aber in der EPPlus es ist weniger kompliziert und weniger code
InformationsquelleAutor Rafael Seidalinov