0
OpenXML을 처음 사용했습니다. 내 개념이 완전히 명확하지 않습니다.Excel 템플릿을 동일한 Excel의 다른 시트로 복사하는 방법은 무엇입니까?
Package package = Package.Open(newFile.FullName, FileMode.Open, FileAccess.ReadWrite);
excelDoc = SpreadsheetDocument.Open(package);
WorkbookPart wbPart = excelDoc.WorkbookPart;
Sheet templateSheet = wbPart.Workbook.Descendants<Sheet>().Where((s) => s.Name == "Sheet1").FirstOrDefault();
for (int i = 0; i < (int)(obj.Count/4); i++)
{
WorkbookPart workBookpart = excelDoc.WorkbookPart;
Workbook workbook = workBookpart.Workbook;
Sheets sheets = workbook.Sheets;
WorksheetPart workSheetPart = excelDoc.WorkbookPart.AddNewPart<WorksheetPart>("workSheet" + (i+2));
Worksheet worksheet = new Worksheet();
SheetData sheetdata = new SheetData();
worksheet.Append(sheetdata);
workSheetPart.Worksheet = worksheet;
sheets.Append(templateSheet.CloneNode(true));
}
for (int i = 0; i < (int)(obj.Count/4); i++)
{
uint sheetId = 1;
if (excelDoc.WorkbookPart.Workbook.Sheets.Elements<Sheet>().Count() > 0)
{
sheetId = excelDoc.WorkbookPart.Workbook.Sheets.Elements<Sheet>().Select(s => s.SheetId.Value).Max() + 1;
}
Sheet temp = wbPart.Workbook.Descendants<Sheet>().Skip(i + 1).Take(1).FirstOrDefault();
temp.Name = "Sheet" + (i + 2);
temp.Id = "workSheet" + (i + 2);
temp.SheetId = sheetId;
}
이 코드는 시트를 생성되지만 템플릿은 "시트 1"에 존재하는이없는 - 나는 다음과 같은 코드를 사용하고 있습니다. 어떻게해야합니까? 제발 제안 해주세요.