OpenXML: Как скопировать лист в другую книгу? - PullRequest
0 голосов
/ 06 ноября 2019

Мне нужно объединить рабочие листы некоторых рабочих книг в одну новую рабочую книгу. Я пытался это, но я получаю «Не могу вставить OpenXmlElement« newChild », потому что он является частью дерева.».

using (var document = SpreadsheetDocument.Create(destinationFileName, SpreadsheetDocumentType.Workbook))
{
    // Add a WorkbookPart to the document
    var workbookPart = document.AddWorkbookPart();
    workbookPart.Workbook = new Workbook();

    // Add a WorksheetPart to the WorkbookPart
    var worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
    worksheetPart.Worksheet = new Worksheet(new SheetData());

    foreach (var sourceFileName in sourceFileNames)
    {
        using (var sourceDocument = SpreadsheetDocument.Open(sourceFileName, false))
        {
            var sheet = (Sheet)sourceDocument.WorkbookPart.Workbook.Sheets.FirstChild;
            workbookPart.Workbook.AppendChild(new Worksheet(sheet));
        }
    }
}
...