2017-10-23 20 views
0

シート2には以前に作成されたリストが含まれ、シート1にはシート2へのリンクが含まれているため、シート1を生成するときにシート2をワークブック。C#とOpenXMLを使用してシートを別のExcelブックにコピー

static void CopySheet(string filename, string sheetName, string clonedSheetName) { 
    //Add new sheet to main workbook part 
    Sheets sheets = workbookPart.Workbook.GetFirstChild<Sheets>(); 
    Sheet copiedSheet = new Sheet(); 
    copiedSheet.Name = clonedSheetName; 
    copiedSheet.Id = workbookPart.GetIdOfPart(clonedSheet); 
    copiedSheet.SheetId = (uint)sheets.ChildElements.Count + 1; 
    sheets.Append(copiedSheet); 
    //Save Changes 
    workbookPart.Workbook.Save(); 
} 

答えて

0

これは、OpenXMLのライブラリを使用していますEPPlusで行われ

using (ExcelPackage ExcelFile = new ExcelPackage(new System.IO.FileInfo(@"C:\temp\MyExcelFile.xlsx"))) 
{ 
    ExcelFile.Workbook.Worksheets.Copy("SheetToCopyName", "SheetToCopyToName"); 
} 

を試してみてください。別のライブラリを使用している場合はお知らせください。

+0

実際に私はこのようなもので作業しています。 https://social.msdn.microsoft.com/Forums/office/en-US/d0971ec0-7d22-4c38-b686-b32e6bd01d44/how-to-copy-spreadsheet-to-another-excel-file-in-openxml?フォーラム= oxmlsdk。しかし、私はsheet1を含む別のワークブックにsheet2をコピーするだけです – Soprano

関連する問題