Bitte beachten Sie diese Excel:erstellen Zellen verbinden OpenXML mit
und es ist XML:
Ich möchte so diese Excel erstellen, die mehrere verbundene Zellen unter Verwendung von OpenXML hat.
Wie kann ich das tun?
dank
Bitte beachten Sie diese Excel:erstellen Zellen verbinden OpenXML mit
und es ist XML:
Ich möchte so diese Excel erstellen, die mehrere verbundene Zellen unter Verwendung von OpenXML hat.
Wie kann ich das tun?
dank
können Sie die MergeCells
und MergeCell
Klassen verwenden, um die fusionierten Zellen erstellen Sie benötigen. Die Klasse ist die Sammlung von Zusammenführungszellen (<mergeCells count="3">
in Ihrem XML) und die MergeCell
Klasse repräsentiert jeden einzelnen Satz von verbundenen Zellen (<mergeCell ref="xx:xx" />
in Ihrem XML). Um Daten in den verbundenen Zellen aufzufüllen, müssen Sie den Wert der Zelle ganz links oben hinzufügen. Alle anderen Werte werden ignoriert.
Der folgende Code erstellt eine neue Datei mit verbundenen Zellen.
using (SpreadsheetDocument myDoc = SpreadsheetDocument.Create(filename, SpreadsheetDocumentType.Workbook))
{
WorkbookPart workbookpart = myDoc.AddWorkbookPart();
workbookpart.Workbook = new Workbook();
// Add a WorksheetPart to the WorkbookPart.
WorksheetPart worksheetPart = workbookpart.AddNewPart<WorksheetPart>();
SheetData sheetData = new SheetData();
//add a row
Row firstRow = new Row();
firstRow.RowIndex = (UInt32)1;
//create a cell in C1 (the upper left most cell of the merged cells)
Cell dataCell = new Cell();
dataCell.CellReference = "C1";
CellValue cellValue = new CellValue();
cellValue.Text = "99999";
dataCell.Append(cellValue);
firstRow.AppendChild(dataCell);
sheetData.AppendChild(firstRow);
// Add a WorkbookPart to the document.
worksheetPart.Worksheet = new Worksheet(sheetData);
//create a MergeCells class to hold each MergeCell
MergeCells mergeCells = new MergeCells();
//append a MergeCell to the mergeCells for each set of merged cells
mergeCells.Append(new MergeCell() { Reference = new StringValue("C1:F1") });
mergeCells.Append(new MergeCell() { Reference = new StringValue("A3:B3") });
mergeCells.Append(new MergeCell() { Reference = new StringValue("G5:K5") });
worksheetPart.Worksheet.InsertAfter(mergeCells, worksheetPart.Worksheet.Elements<SheetData>().First());
//this is the part that was missing from your code
Sheets sheets = myDoc.WorkbookPart.Workbook.AppendChild(new Sheets());
sheets.AppendChild(new Sheet()
{
Id = myDoc.WorkbookPart.GetIdOfPart(myDoc.WorkbookPart.WorksheetParts.First()),
SheetId = 1,
Name = "Sheet1"
});
}
Der obige Code erzeugt: