// Adds child parts and generates content of the specified part. private void CreateParts(SpreadsheetDocument document, List <ProjectFile> projectFiles) { ExtendedFilePropertiesPart extendedFileProperties = document.AddNewPart <ExtendedFilePropertiesPart>("rId3"); GenerateExtendedFilePropertiesContent(extendedFileProperties); WorkbookPart workbook = document.AddWorkbookPart(); GenerateWorkbookContent(workbook); WorkbookStylesPart workbookStyles = workbook.AddNewPart <WorkbookStylesPart>("rId2"); GenerateWorkbookStylesContent(workbookStyles); //from this point is the content WorksheetPart worksheet = workbook.AddNewPart <WorksheetPart>("rId1"); GenerateWorksheetContent(worksheet, projectFiles); SharedStringTablePart sharedStringTablePart = workbook.AddNewPart <SharedStringTablePart>("rId4"); GenerateSharedStringTablePartContent(sharedStringTablePart); SetPackageProperties(document); }
public void Print(SpreadsheetDocument document) { var extendedFilePropertiesPart = document.AddNewPart<ExtendedFilePropertiesPart>("rId3"); generateExtendedFilePropertiesPartContent(extendedFilePropertiesPart); var workbookPart = document.AddWorkbookPart(); generateWorkbookPartContent(workbookPart); var workbookStylesPart = workbookPart.AddNewPart<WorkbookStylesPart>("rId3"); GenerateWorkbookStylesPartContent(workbookStylesPart); var themePart = workbookPart.AddNewPart<ThemePart>("rId2"); generateThemePartContent(themePart); var worksheetPart = workbookPart.AddNewPart<WorksheetPart>("rId1"); GenerateWorksheetPartContent(worksheetPart); var spreadsheetPrinterSettingsPart = worksheetPart.AddNewPart<SpreadsheetPrinterSettingsPart>("rId1"); generateSpreadsheetPrinterSettingsPartContent(spreadsheetPrinterSettingsPart); var sharedStringTablePart = workbookPart.AddNewPart<SharedStringTablePart>("rId4"); GenerateSharedStringTablePartContent(sharedStringTablePart); setPackageProperties(document); }
// Adds child parts and generates content of the specified part. private void CreateParts(SpreadsheetDocument document) { ExtendedFilePropertiesPart extendedFilePropertiesPart1 = document.AddNewPart<ExtendedFilePropertiesPart>("rId3"); GenerateExtendedFilePropertiesPart1Content(extendedFilePropertiesPart1); WorkbookPart workbookPart1 = document.AddWorkbookPart(); GenerateWorkbookPart1Content(workbookPart1); WorksheetPart worksheetPart1 = workbookPart1.AddNewPart<WorksheetPart>("rId3"); GenerateWorksheetPart1Content(worksheetPart1); WorksheetPart worksheetPart2 = workbookPart1.AddNewPart<WorksheetPart>("rId2"); GenerateWorksheetPart2Content(worksheetPart2); WorksheetPart worksheetPart3 = workbookPart1.AddNewPart<WorksheetPart>("rId1"); GenerateWorksheetPart3Content(worksheetPart3); WorkbookStylesPart workbookStylesPart1 = workbookPart1.AddNewPart<WorkbookStylesPart>("rId5"); GenerateWorkbookStylesPart1Content(workbookStylesPart1); ThemePart themePart1 = workbookPart1.AddNewPart<ThemePart>("rId4"); GenerateThemePart1Content(themePart1); SetPackageProperties(document); }
// Adds child parts and generates content of the specified part. private void CreateParts(SpreadsheetDocument document) { ExtendedFilePropertiesPart extendedFilePropertiesPart1 = document.AddNewPart<ExtendedFilePropertiesPart>("rId3"); GenerateExtendedFilePropertiesPart1Content(extendedFilePropertiesPart1); WorkbookPart workbookPart1 = document.AddWorkbookPart(); GenerateWorkbookPart1Content(workbookPart1); WorkbookStylesPart workbookStylesPart1 = workbookPart1.AddNewPart<WorkbookStylesPart>("rId3"); GenerateWorkbookStylesPart1Content(workbookStylesPart1); ThemePart themePart1 = workbookPart1.AddNewPart<ThemePart>("rId2"); GenerateThemePart1Content(themePart1); WorksheetPart worksheetPart1 = workbookPart1.AddNewPart<WorksheetPart>("rId1"); GenerateWorksheetPart1Content(worksheetPart1); DrawingsPart drawingsPart1 = worksheetPart1.AddNewPart<DrawingsPart>("rId2"); GenerateDrawingsPart1Content(drawingsPart1); ImagePart imagePart1 = drawingsPart1.AddNewPart<ImagePart>("image/jpeg", "rId1"); GenerateImagePart1Content(imagePart1); SpreadsheetPrinterSettingsPart spreadsheetPrinterSettingsPart1 = worksheetPart1.AddNewPart<SpreadsheetPrinterSettingsPart>("rId1"); GenerateSpreadsheetPrinterSettingsPart1Content(spreadsheetPrinterSettingsPart1); CalculationChainPart calculationChainPart1 = workbookPart1.AddNewPart<CalculationChainPart>("rId5"); GenerateCalculationChainPart1Content(calculationChainPart1); SharedStringTablePart sharedStringTablePart1 = workbookPart1.AddNewPart<SharedStringTablePart>("rId4"); GenerateSharedStringTablePart1Content(sharedStringTablePart1); SetPackageProperties(document); }
// Adds child parts and generates content of the specified part. private void CreateParts(SpreadsheetDocument document) { var extendedFilePropertiesPart1 = document.AddNewPart <ExtendedFilePropertiesPart>("rId3"); GenerateExtendedFilePropertiesPart1Content(extendedFilePropertiesPart1); var workbookPart1 = document.AddWorkbookPart(); GenerateWorkbookPart1Content(workbookPart1); var worksheetPart1 = workbookPart1.AddNewPart <WorksheetPart>("rId3"); GenerateWorksheetPartContent(worksheetPart1); var worksheetPart2 = workbookPart1.AddNewPart <WorksheetPart>("rId2"); GenerateWorksheetPartContent(worksheetPart2); var worksheetPart3 = workbookPart1.AddNewPart <WorksheetPart>("rId1"); GenerateWorksheetPartContent(worksheetPart3); var workbookStylesPart1 = workbookPart1.AddNewPart <WorkbookStylesPart>("rId5"); GenerateWorkbookStylesPart1Content(workbookStylesPart1); var themePart1 = workbookPart1.AddNewPart <ThemePart>("rId4"); GenerateThemePart1Content(themePart1); SetPackageProperties(document); }
/// <summary> /// Import style from source to target document /// </summary> /// <param name="sourceDoc"></param> /// <param name="id"></param> /// <param name="targetDoc"></param> /// <returns></returns> protected static uint ImportStyle(SpreadsheetDocument sourceDoc, uint id, SpreadsheetDocument targetDoc) { // Get style parts var srcStylePart = sourceDoc.WorkbookPart.GetPartsOfType <WorkbookStylesPart>().FirstOrDefault(); if (srcStylePart == null) { throw new InvalidOperationException("StylesPart was not found in source document!"); } if (srcStylePart.Stylesheet == null) { throw new InvalidOperationException("Stylesheet was not found in source document!"); } var tgtStylePart = targetDoc.WorkbookPart.GetPartsOfType <WorkbookStylesPart>().FirstOrDefault(); if (tgtStylePart == null) { tgtStylePart = targetDoc.AddNewPart <WorkbookStylesPart>(); } if (tgtStylePart.Stylesheet == null) { tgtStylePart.Stylesheet = new Stylesheet(); } // Get the source style var srcCellFormat = srcStylePart.Stylesheet.CellFormats.ElementAt((int)id) as CellFormat; if (srcCellFormat == null) { throw new InvalidOperationException(String.Format("CellFormat {0} was not found in source document!", id)); } // Import the style to target return(ImportCellFormat(srcStylePart.Stylesheet, srcCellFormat, tgtStylePart.Stylesheet)); }
private void AddParts(SpreadsheetDocument parent, string NombreHoja) { var extendedFilePropertiesPart1 = parent.AddNewPart <ExtendedFilePropertiesPart>("rId3"); var coreFilePropertiesPart1 = parent.AddNewPart <CoreFilePropertiesPart>("rId2"); var workbookPart1 = parent.AddWorkbookPart(); var workbookStylesPart1 = workbookPart1.AddNewPart <WorkbookStylesPart>("rId3"); var themePart1 = workbookPart1.AddNewPart <ThemePart>("rId2"); var worksheetPart1 = workbookPart1.AddNewPart <WorksheetPart>("rId1"); GenerateExtendedFilePropertiesPart1(NombreHoja).Save(extendedFilePropertiesPart1); GenerateWorkbookPart1(NombreHoja, workbookPart1.GetIdOfPart(worksheetPart1)).Save(workbookPart1); GenerateCoreFilePropertiesPart1(coreFilePropertiesPart1); GenerateWorkbookStylesPart1().Save(workbookStylesPart1); GenerateThemePart1().Save(themePart1); GenerateWorksheetPart1().Save(worksheetPart1); }
private void CreatePartsSubsectorPollutionSourceFieldSheet(SpreadsheetDocument document) { int SheetOrdinal = 0; BaseEnumService baseEnumService = new BaseEnumService(_TaskRunnerBaseService._BWObj.appTaskModel.Language); TVItemService tvItemService = new TVItemService(_TaskRunnerBaseService._BWObj.appTaskModel.Language, _TaskRunnerBaseService._User); List <string> SheetNameList = new List <string>(); SheetNameList.Add("Active - " + baseEnumService.GetEnumText_TVTypeEnum(TVTypeEnum.Subsector)); SheetNameList.Add("Inactive - " + baseEnumService.GetEnumText_TVTypeEnum(TVTypeEnum.Subsector)); XlsxBase.AddSheetNameAndID(SheetNameList[0]); XlsxBase.AddSheetNameAndID(SheetNameList[1]); ExtendedFilePropertiesPart extendedFilePropertiesPart = document.AddNewPart <ExtendedFilePropertiesPart>("rId1000"); XlsxBase.GenerateExtendedFilePropertiesPart1Content(extendedFilePropertiesPart); WorkbookPart workbookPart = document.AddWorkbookPart(); XlsxBase.GenerateWorkbookPart1Content(workbookPart); SheetOrdinal = 0; WorksheetPart worksheetA = workbookPart.AddNewPart <WorksheetPart>(XlsxBase.sheetNameAndIDList[SheetOrdinal].SheetID); GenerateWorksheetAContentSubsectorPollutionSourceFieldSheet(worksheetA, workbookPart.Workbook, SheetNameList[0], SheetOrdinal, true); foreach (UsedHyperlink usedHyperlink in XlsxBase.UsedHyperlinkList) { worksheetA.AddHyperlinkRelationship(new System.Uri(usedHyperlink.URL, System.UriKind.Absolute), true, usedHyperlink.Id); } SheetOrdinal = 1; WorksheetPart worksheetB = workbookPart.AddNewPart <WorksheetPart>(XlsxBase.sheetNameAndIDList[SheetOrdinal].SheetID); GenerateWorksheetAContentSubsectorPollutionSourceFieldSheet(worksheetB, workbookPart.Workbook, SheetNameList[1], SheetOrdinal, false); foreach (UsedHyperlink usedHyperlink in XlsxBase.UsedHyperlinkList) { worksheetB.AddHyperlinkRelationship(new System.Uri(usedHyperlink.URL, System.UriKind.Absolute), true, usedHyperlink.Id); } SharedStringTablePart sharedStringTablePart = workbookPart.AddNewPart <SharedStringTablePart>("rId2000"); XlsxBase.GenerateSharedStringTablePart1Content(sharedStringTablePart); WorkbookStylesPart workbookStylesPart = workbookPart.AddNewPart <WorkbookStylesPart>("rId3000"); XlsxBase.GenerateWorkbookStylesPart1Content(workbookStylesPart); ThemePart themePart = workbookPart.AddNewPart <ThemePart>("rId4000"); XlsxBase.GenerateThemePart1Content(themePart); XlsxBase.SetPackageProperties(document); }
public ExtendedFilePropertiesPart Do(SpreadsheetDocument package, XlsxFileContent content) { var properties = new Properties(); properties.AddNamespaceDeclaration("vt", "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"); properties.Append( new Application { Text = "Microsoft Excel" }, new DocumentSecurity { Text = "0" }, new ScaleCrop { Text = "false" }, new HeadingPairs( MakeVector(VectorBaseValues.Variant, new Variant(new VTLPSTR { Text = "Ћисты" }), new Variant(new VTInt32 { Text = content.Worksheets.Length.ToString() }) ) ), new TitlesOfParts( MakeVector(VectorBaseValues.Lpstr, content.Worksheets.Select(x => new VTLPSTR { Text = x.Title }) ) ), new Company { Text = content.Properties.Company }, new LinksUpToDate { Text = "false" }, new SharedDocument { Text = "false" }, new HyperlinksChanged { Text = "false" }, new ApplicationVersion { Text = "15.0300" } ); var extendedFilePropertiesPart = package.AddNewPart <ExtendedFilePropertiesPart>(); extendedFilePropertiesPart.Properties = properties; return(extendedFilePropertiesPart); }
/// <summary> /// Import shared string item from one document to another /// </summary> /// <param name="sourceDoc">Source excel document</param> /// <param name="id">Id of shared string item</param> /// <param name="targetDoc">Target excel document</param> /// <returns></returns> protected static uint ImportSharedString(SpreadsheetDocument sourceDoc, uint id, SpreadsheetDocument targetDoc) { // Prepare resource parts var srcSharedStringPart = sourceDoc.WorkbookPart.GetPartsOfType <SharedStringTablePart>().FirstOrDefault(); if (srcSharedStringPart == null) { throw new InvalidOperationException("SharedStringPart was not found in Source document!"); } if (srcSharedStringPart.SharedStringTable == null) { throw new InvalidOperationException("SharedStringTable was not found in Source document!"); } var tgtSharedStringPart = targetDoc.WorkbookPart.GetPartsOfType <SharedStringTablePart>().FirstOrDefault(); if (tgtSharedStringPart == null) { // Create one tgtSharedStringPart = targetDoc.AddNewPart <SharedStringTablePart>(); } if (tgtSharedStringPart.SharedStringTable == null) { tgtSharedStringPart.SharedStringTable = new SharedStringTable(); } // Get original shared string item var srcItem = srcSharedStringPart.SharedStringTable.ElementAt((int)id) as SharedStringItem; if (srcItem == null) { throw new InvalidOperationException( String.Format("SharedStringItem {0} was not found in source document!", id)); } // Try to find same shared string item in target uint i = 0; foreach (var item in tgtSharedStringPart.SharedStringTable.Elements <SharedStringItem>()) { if (item.InnerText == srcItem.InnerText) { // Found same value return(i); } i++; } // Not found, import it var tgtItem = srcItem.Clone() as SharedStringItem; tgtSharedStringPart.SharedStringTable.AppendChild(tgtItem); return(i); }
private void CreateParts(SpreadsheetDocument document) { int SheetOrdinal = 0; BaseEnumService baseEnumService = new BaseEnumService(_TaskRunnerBaseService._BWObj.appTaskModel.Language); TVItemService tvItemService = new TVItemService(_TaskRunnerBaseService._BWObj.appTaskModel.Language, _TaskRunnerBaseService._User); XlsxBase.AddSheetNameAndID(baseEnumService.GetEnumText_TVTypeEnum(TVTypeEnum.Province)); ExtendedFilePropertiesPart extendedFilePropertiesPart = document.AddNewPart <ExtendedFilePropertiesPart>("rId1000"); XlsxBase.GenerateExtendedFilePropertiesPart1Content(extendedFilePropertiesPart); WorkbookPart workbookPart = document.AddWorkbookPart(); XlsxBase.GenerateWorkbookPart1Content(workbookPart); // update percentage _TaskRunnerBaseService.SendPercentToDB(_TaskRunnerBaseService._BWObj.appTaskModel.AppTaskID, 10); SheetOrdinal = 0; WorksheetPart worksheetA = workbookPart.AddNewPart <WorksheetPart>(XlsxBase.sheetNameAndIDList[SheetOrdinal].SheetID); GenerateWorksheetAContent(worksheetA, SheetOrdinal); // update percentage _TaskRunnerBaseService.SendPercentToDB(_TaskRunnerBaseService._BWObj.appTaskModel.AppTaskID, 30); foreach (UsedHyperlink usedHyperlink in XlsxBase.UsedHyperlinkList) { worksheetA.AddHyperlinkRelationship(new System.Uri(usedHyperlink.URL, System.UriKind.Absolute), true, usedHyperlink.Id); } SharedStringTablePart sharedStringTablePart = workbookPart.AddNewPart <SharedStringTablePart>("rId2000"); XlsxBase.GenerateSharedStringTablePart1Content(sharedStringTablePart); WorkbookStylesPart workbookStylesPart = workbookPart.AddNewPart <WorkbookStylesPart>("rId3000"); XlsxBase.GenerateWorkbookStylesPart1Content(workbookStylesPart); ThemePart themePart = workbookPart.AddNewPart <ThemePart>("rId4000"); XlsxBase.GenerateThemePart1Content(themePart); XlsxBase.SetPackageProperties(document); }
public ExcelTabularBook() { _outputStream = new MemoryStream(); _tempFilePath = ""; _package = SpreadsheetDocument.Create(_outputStream, SpreadsheetDocumentType.Workbook); var coreFilePropertiesPart = _package.AddNewPart<CoreFilePropertiesPart>(CORE_FILE_PROPERTIES_PART_ID); GenerateCoreFilePropertiesPart(coreFilePropertiesPart); _workbookPart = _package.AddWorkbookPart(); WorkbookStylesPart workbookStylesPart = _workbookPart.AddNewPart<WorkbookStylesPart>(WORKBOOK_STYLES_PART_ID); GenerateWorkbookStylesPart().Save(workbookStylesPart); _workbook = AddWorkBook(_workbookPart); _workbook.AppendChild(new Sheets()); }
// Adds child parts and generates content of the specified part. private void CreateParts(SpreadsheetDocument document) { ExtendedFilePropertiesPart extendedFilePropertiesPart1 = document.AddNewPart<ExtendedFilePropertiesPart>("rId3"); GenerateExtendedFilePropertiesPart1Content(extendedFilePropertiesPart1); WorkbookPart workbookPart1 = document.AddWorkbookPart(); GenerateWorkbookPart1Content(workbookPart1); ThemePart themePart1 = workbookPart1.AddNewPart<ThemePart>("rId3"); GenerateThemePart1Content(themePart1); ExtendedPart extendedPart1 = workbookPart1.AddExtendedPart("http://schemas.openxmlformats.org/officeDocument/2006/relationships/powerPivotData", "application/vnd.openxmlformats-officedocument.model+data", "data", "rId7"); GenerateExtendedPart1Content(extendedPart1); PivotTableCacheDefinitionPart pivotTableCacheDefinitionPart1 = workbookPart1.AddNewPart<PivotTableCacheDefinitionPart>("rId2"); GeneratePivotTableCacheDefinitionPart1Content(pivotTableCacheDefinitionPart1); WorksheetPart worksheetPart1 = workbookPart1.AddNewPart<WorksheetPart>("rId1"); GenerateWorksheetPart1Content(worksheetPart1); TableDefinitionPart tableDefinitionPart1 = worksheetPart1.AddNewPart<TableDefinitionPart>("rId3"); GenerateTableDefinitionPart1Content(tableDefinitionPart1); QueryTablePart queryTablePart1 = tableDefinitionPart1.AddNewPart<QueryTablePart>("rId1"); GenerateQueryTablePart1Content(queryTablePart1); SpreadsheetPrinterSettingsPart spreadsheetPrinterSettingsPart1 = worksheetPart1.AddNewPart<SpreadsheetPrinterSettingsPart>("rId2"); GenerateSpreadsheetPrinterSettingsPart1Content(spreadsheetPrinterSettingsPart1); PivotTablePart pivotTablePart1 = worksheetPart1.AddNewPart<PivotTablePart>("rId1"); GeneratePivotTablePart1Content(pivotTablePart1); pivotTablePart1.AddPart(pivotTableCacheDefinitionPart1, "rId1"); SharedStringTablePart sharedStringTablePart1 = workbookPart1.AddNewPart<SharedStringTablePart>("rId6"); GenerateSharedStringTablePart1Content(sharedStringTablePart1); WorkbookStylesPart workbookStylesPart1 = workbookPart1.AddNewPart<WorkbookStylesPart>("rId5"); GenerateWorkbookStylesPart1Content(workbookStylesPart1); ConnectionsPart connectionsPart1 = workbookPart1.AddNewPart<ConnectionsPart>("rId4"); GenerateConnectionsPart1Content(connectionsPart1); SetPackageProperties(document); }
private void SaveDocument(SpreadsheetDocument document) { SaveContext context = new SaveContext(); WorkbookPart workbookPart = document.AddWorkbookPart(); foreach (IdPartPair pair in workbookPart.Parts) { workbookPart.ChangeIdOfPart(pair.OpenXmlPart, context.RelIdGenerator.GetNext(RelType.Workbook)); } var extendedFilePropertiesPart = document.ExtendedFilePropertiesPart ?? document.AddNewPart <ExtendedFilePropertiesPart>( context.RelIdGenerator.GetNext(RelType.Workbook)); GenerateExtendedFilePropertiesPartContent(extendedFilePropertiesPart); CreateWorkbookContent(workbookPart, context); WriteCustomProperties(document); document.Save(); document.Close(); }
// Adds child parts and generates content of the specified part. private void CreateParts(SpreadsheetDocument document) { ExtendedFilePropertiesPart extendedFilePropertiesPart1 = document.AddNewPart<ExtendedFilePropertiesPart>("rId3"); GenerateExtendedFilePropertiesPart1Content(extendedFilePropertiesPart1); WorkbookPart workbookPart1 = document.AddWorkbookPart(); GenerateWorkbookPart1Content(workbookPart1); SlicerCachePart slicerCachePart1 = workbookPart1.AddNewPart<SlicerCachePart>("rId3"); GenerateSlicerCachePart1Content(slicerCachePart1); SharedStringTablePart sharedStringTablePart1 = workbookPart1.AddNewPart<SharedStringTablePart>("rId7"); GenerateSharedStringTablePart1Content(sharedStringTablePart1); SlicerCachePart slicerCachePart2 = workbookPart1.AddNewPart<SlicerCachePart>("rId2"); GenerateSlicerCachePart2Content(slicerCachePart2); WorksheetPart worksheetPart1 = workbookPart1.AddNewPart<WorksheetPart>("rId1"); GenerateWorksheetPart1Content(worksheetPart1); TableDefinitionPart tableDefinitionPart1 = worksheetPart1.AddNewPart<TableDefinitionPart>("rId3"); GenerateTableDefinitionPart1Content(tableDefinitionPart1); TableDefinitionPart tableDefinitionPart2 = worksheetPart1.AddNewPart<TableDefinitionPart>("rId2"); GenerateTableDefinitionPart2Content(tableDefinitionPart2); DrawingsPart drawingsPart1 = worksheetPart1.AddNewPart<DrawingsPart>("rId1"); GenerateDrawingsPart1Content(drawingsPart1); SlicersPart slicersPart1 = worksheetPart1.AddNewPart<SlicersPart>("rId4"); GenerateSlicersPart1Content(slicersPart1); WorkbookStylesPart workbookStylesPart1 = workbookPart1.AddNewPart<WorkbookStylesPart>("rId6"); GenerateWorkbookStylesPart1Content(workbookStylesPart1); ThemePart themePart1 = workbookPart1.AddNewPart<ThemePart>("rId5"); GenerateThemePart1Content(themePart1); SlicerCachePart slicerCachePart3 = workbookPart1.AddNewPart<SlicerCachePart>("rId4"); GenerateSlicerCachePart3Content(slicerCachePart3); SetPackageProperties(document); }
// Adds child parts and generates content of the specified part. private void CreateParts(SpreadsheetDocument document) { var context = new SaveContext(); var workbookPart = document.WorkbookPart ?? document.AddWorkbookPart(); var worksheets = WorksheetsInternal; var partsToRemove = workbookPart.Parts.Where(s => worksheets.Deleted.Contains(s.RelationshipId)).ToList(); partsToRemove.ForEach(s => workbookPart.DeletePart(s.OpenXmlPart)); context.RelIdGenerator.AddValues(workbookPart.Parts.Select(p => p.RelationshipId).ToList(), RelType.Workbook); var extendedFilePropertiesPart = document.ExtendedFilePropertiesPart ?? document.AddNewPart<ExtendedFilePropertiesPart>( context.RelIdGenerator.GetNext(RelType.Workbook)); GenerateExtendedFilePropertiesPartContent(extendedFilePropertiesPart); GenerateWorkbookPartContent(workbookPart, context); var sharedStringTablePart = workbookPart.SharedStringTablePart ?? workbookPart.AddNewPart<SharedStringTablePart>( context.RelIdGenerator.GetNext(RelType.Workbook)); GenerateSharedStringTablePartContent(sharedStringTablePart, context); var workbookStylesPart = workbookPart.WorkbookStylesPart ?? workbookPart.AddNewPart<WorkbookStylesPart>( context.RelIdGenerator.GetNext(RelType.Workbook)); GenerateWorkbookStylesPartContent(workbookStylesPart, context); foreach (var worksheet in WorksheetsInternal.Cast<XLWorksheet>().OrderBy(w => w.Position)) { //context.RelIdGenerator.Reset(RelType.); WorksheetPart worksheetPart; var wsRelId = worksheet.RelId; if (workbookPart.Parts.Any(p => p.RelationshipId == wsRelId)) { worksheetPart = (WorksheetPart)workbookPart.GetPartById(wsRelId); var wsPartsToRemove = worksheetPart.TableDefinitionParts.ToList(); wsPartsToRemove.ForEach(tdp => worksheetPart.DeletePart(tdp)); } else worksheetPart = workbookPart.AddNewPart<WorksheetPart>(wsRelId); context.RelIdGenerator.AddValues(worksheetPart.HyperlinkRelationships.Select(hr => hr.Id).ToList(), RelType.Workbook); context.RelIdGenerator.AddValues(worksheetPart.Parts.Select(p => p.RelationshipId).ToList(), RelType.Workbook); if (worksheetPart.DrawingsPart != null) context.RelIdGenerator.AddValues( worksheetPart.DrawingsPart.Parts.Select(p => p.RelationshipId).ToList(), RelType.Workbook); // delete comment related parts (todo: review) DeleteComments(worksheetPart, worksheet, context); if (worksheet.Internals.CellsCollection.GetCells(c => c.HasComment).Any()) { var worksheetCommentsPart = worksheetPart.AddNewPart<WorksheetCommentsPart>(context.RelIdGenerator.GetNext(RelType.Workbook)); GenerateWorksheetCommentsPartContent(worksheetCommentsPart, worksheet); //VmlDrawingPart vmlDrawingPart = worksheetPart.AddNewPart<VmlDrawingPart>(worksheet.LegacyDrawingId); var vmlDrawingPart = worksheetPart.VmlDrawingParts.FirstOrDefault(); if (vmlDrawingPart == null) { if (XLHelper.IsNullOrWhiteSpace(worksheet.LegacyDrawingId)) { worksheet.LegacyDrawingId = context.RelIdGenerator.GetNext(RelType.Workbook); worksheet.LegacyDrawingIsNew = true; } vmlDrawingPart = worksheetPart.AddNewPart<VmlDrawingPart>(worksheet.LegacyDrawingId); } GenerateVmlDrawingPartContent(vmlDrawingPart, worksheet, context); } GenerateWorksheetPartContent(worksheetPart, worksheet, context); if (worksheet.PivotTables.Any()) { GeneratePivotTables(workbookPart, worksheetPart, worksheet, context); } //DrawingsPart drawingsPart = worksheetPart.AddNewPart<DrawingsPart>("rId1"); //GenerateDrawingsPartContent(drawingsPart, worksheet); //foreach (var chart in worksheet.Charts) //{ // ChartPart chartPart = drawingsPart.AddNewPart<ChartPart>("rId1"); // GenerateChartPartContent(chartPart, (XLChart)chart); //} } GenerateCalculationChainPartContent(workbookPart, context); if (workbookPart.ThemePart == null) { var themePart = workbookPart.AddNewPart<ThemePart>(context.RelIdGenerator.GetNext(RelType.Workbook)); GenerateThemePartContent(themePart); } if (CustomProperties.Any()) { document.GetPartsOfType<CustomFilePropertiesPart>().ToList().ForEach(p => document.DeletePart(p)); var customFilePropertiesPart = document.AddNewPart<CustomFilePropertiesPart>(context.RelIdGenerator.GetNext(RelType.Workbook)); GenerateCustomFilePropertiesPartContent(customFilePropertiesPart); } SetPackageProperties(document); }
/// <summary> /// Import style from source to target document /// </summary> /// <param name="sourceDoc"></param> /// <param name="id"></param> /// <param name="targetDoc"></param> /// <returns></returns> protected static uint ImportStyle(SpreadsheetDocument sourceDoc, uint id, SpreadsheetDocument targetDoc) { // Get style parts var srcStylePart = sourceDoc.WorkbookPart.GetPartsOfType<WorkbookStylesPart>().FirstOrDefault(); if (srcStylePart == null) throw new InvalidOperationException("StylesPart was not found in source document!"); if (srcStylePart.Stylesheet == null) throw new InvalidOperationException("Stylesheet was not found in source document!"); var tgtStylePart = targetDoc.WorkbookPart.GetPartsOfType<WorkbookStylesPart>().FirstOrDefault(); if (tgtStylePart == null) tgtStylePart = targetDoc.AddNewPart<WorkbookStylesPart>(); if (tgtStylePart.Stylesheet == null) tgtStylePart.Stylesheet = new Stylesheet(); // Get the source style var srcCellFormat = srcStylePart.Stylesheet.CellFormats.ElementAt((int) id) as CellFormat; if (srcCellFormat == null) throw new InvalidOperationException(String.Format("CellFormat {0} was not found in source document!", id)); // Import the style to target return ImportCellFormat(srcStylePart.Stylesheet, srcCellFormat, tgtStylePart.Stylesheet); }
// Adds child parts and generates content of the specified part. private void CreateParts(SpreadsheetDocument document, List<ProjectFile> projectFiles) { ExtendedFilePropertiesPart extendedFileProperties = document.AddNewPart<ExtendedFilePropertiesPart>("rId3"); GenerateExtendedFilePropertiesContent(extendedFileProperties); WorkbookPart workbook = document.AddWorkbookPart(); GenerateWorkbookContent(workbook); WorkbookStylesPart workbookStyles = workbook.AddNewPart<WorkbookStylesPart>("rId2"); GenerateWorkbookStylesContent(workbookStyles); //from this point is the content WorksheetPart worksheet = workbook.AddNewPart<WorksheetPart>("rId1"); GenerateWorksheetContent(worksheet, projectFiles); SharedStringTablePart sharedStringTablePart = workbook.AddNewPart<SharedStringTablePart>("rId4"); GenerateSharedStringTablePartContent(sharedStringTablePart); SetPackageProperties(document); }
// Adds child parts and generates content of the specified part. private void CreateParts(SpreadsheetDocument document) { ExtendedFilePropertiesPart extendedFilePropertiesPart1 = document.AddNewPart<ExtendedFilePropertiesPart>("rId3"); GenerateExtendedFilePropertiesPart1Content(extendedFilePropertiesPart1); WorkbookPart workbookPart1 = document.AddWorkbookPart(); GenerateWorkbookPart1Content(workbookPart1); WorksheetPart worksheetPart1 = workbookPart1.AddNewPart<WorksheetPart>("rId8"); GenerateWorksheetPart1Content(worksheetPart1); TimeLinePart timeLinePart1 = worksheetPart1.AddNewPart<TimeLinePart>("rId3"); GenerateTimeLinePart1Content(timeLinePart1); DrawingsPart drawingsPart1 = worksheetPart1.AddNewPart<DrawingsPart>("rId2"); GenerateDrawingsPart1Content(drawingsPart1); ChartPart chartPart1 = drawingsPart1.AddNewPart<ChartPart>("rId2"); GenerateChartPart1Content(chartPart1); ChartPart chartPart2 = drawingsPart1.AddNewPart<ChartPart>("rId1"); GenerateChartPart2Content(chartPart2); PivotTablePart pivotTablePart1 = worksheetPart1.AddNewPart<PivotTablePart>("rId1"); GeneratePivotTablePart1Content(pivotTablePart1); PivotTableCacheDefinitionPart pivotTableCacheDefinitionPart1 = pivotTablePart1.AddNewPart<PivotTableCacheDefinitionPart>("rId1"); GeneratePivotTableCacheDefinitionPart1Content(pivotTableCacheDefinitionPart1); PivotTableCacheRecordsPart pivotTableCacheRecordsPart1 = pivotTableCacheDefinitionPart1.AddNewPart<PivotTableCacheRecordsPart>("rId1"); GeneratePivotTableCacheRecordsPart1Content(pivotTableCacheRecordsPart1); workbookPart1.AddPart(pivotTableCacheDefinitionPart1, "rId13"); TimeLineCachePart timeLineCachePart1 = workbookPart1.AddNewPart<TimeLineCachePart>("rId18"); GenerateTimeLineCachePart1Content(timeLineCachePart1); WorksheetPart worksheetPart2 = workbookPart1.AddNewPart<WorksheetPart>("rId3"); GenerateWorksheetPart2Content(worksheetPart2); TimeLinePart timeLinePart2 = worksheetPart2.AddNewPart<TimeLinePart>("rId3"); GenerateTimeLinePart2Content(timeLinePart2); DrawingsPart drawingsPart2 = worksheetPart2.AddNewPart<DrawingsPart>("rId2"); GenerateDrawingsPart2Content(drawingsPart2); ChartPart chartPart3 = drawingsPart2.AddNewPart<ChartPart>("rId2"); GenerateChartPart3Content(chartPart3); ChartPart chartPart4 = drawingsPart2.AddNewPart<ChartPart>("rId1"); GenerateChartPart4Content(chartPart4); PivotTablePart pivotTablePart2 = worksheetPart2.AddNewPart<PivotTablePart>("rId1"); GeneratePivotTablePart2Content(pivotTablePart2); PivotTableCacheDefinitionPart pivotTableCacheDefinitionPart2 = pivotTablePart2.AddNewPart<PivotTableCacheDefinitionPart>("rId1"); GeneratePivotTableCacheDefinitionPart2Content(pivotTableCacheDefinitionPart2); PivotTableCacheRecordsPart pivotTableCacheRecordsPart2 = pivotTableCacheDefinitionPart2.AddNewPart<PivotTableCacheRecordsPart>("rId1"); GeneratePivotTableCacheRecordsPart2Content(pivotTableCacheRecordsPart2); TimeLineCachePart timeLineCachePart2 = workbookPart1.AddNewPart<TimeLineCachePart>("rId21"); GenerateTimeLineCachePart2Content(timeLineCachePart2); WorksheetPart worksheetPart3 = workbookPart1.AddNewPart<WorksheetPart>("rId7"); GenerateWorksheetPart3Content(worksheetPart3); TimeLinePart timeLinePart3 = worksheetPart3.AddNewPart<TimeLinePart>("rId3"); GenerateTimeLinePart3Content(timeLinePart3); DrawingsPart drawingsPart3 = worksheetPart3.AddNewPart<DrawingsPart>("rId2"); GenerateDrawingsPart3Content(drawingsPart3); ChartPart chartPart5 = drawingsPart3.AddNewPart<ChartPart>("rId2"); GenerateChartPart5Content(chartPart5); ChartPart chartPart6 = drawingsPart3.AddNewPart<ChartPart>("rId1"); GenerateChartPart6Content(chartPart6); PivotTablePart pivotTablePart3 = worksheetPart3.AddNewPart<PivotTablePart>("rId1"); GeneratePivotTablePart3Content(pivotTablePart3); pivotTablePart3.AddPart(pivotTableCacheDefinitionPart1, "rId1"); workbookPart1.AddPart(pivotTableCacheDefinitionPart2, "rId12"); TimeLineCachePart timeLineCachePart3 = workbookPart1.AddNewPart<TimeLineCachePart>("rId17"); GenerateTimeLineCachePart3Content(timeLineCachePart3); SharedStringTablePart sharedStringTablePart1 = workbookPart1.AddNewPart<SharedStringTablePart>("rId25"); GenerateSharedStringTablePart1Content(sharedStringTablePart1); WorksheetPart worksheetPart4 = workbookPart1.AddNewPart<WorksheetPart>("rId2"); GenerateWorksheetPart4Content(worksheetPart4); TableDefinitionPart tableDefinitionPart1 = worksheetPart4.AddNewPart<TableDefinitionPart>("rId3"); GenerateTableDefinitionPart1Content(tableDefinitionPart1); TableDefinitionPart tableDefinitionPart2 = worksheetPart4.AddNewPart<TableDefinitionPart>("rId2"); GenerateTableDefinitionPart2Content(tableDefinitionPart2); TableDefinitionPart tableDefinitionPart3 = worksheetPart4.AddNewPart<TableDefinitionPart>("rId1"); GenerateTableDefinitionPart3Content(tableDefinitionPart3); TimeLineCachePart timeLineCachePart4 = workbookPart1.AddNewPart<TimeLineCachePart>("rId16"); GenerateTimeLineCachePart4Content(timeLineCachePart4); TimeLineCachePart timeLineCachePart5 = workbookPart1.AddNewPart<TimeLineCachePart>("rId20"); GenerateTimeLineCachePart5Content(timeLineCachePart5); WorksheetPart worksheetPart5 = workbookPart1.AddNewPart<WorksheetPart>("rId1"); GenerateWorksheetPart5Content(worksheetPart5); TableDefinitionPart tableDefinitionPart4 = worksheetPart5.AddNewPart<TableDefinitionPart>("rId3"); GenerateTableDefinitionPart4Content(tableDefinitionPart4); TableDefinitionPart tableDefinitionPart5 = worksheetPart5.AddNewPart<TableDefinitionPart>("rId2"); GenerateTableDefinitionPart5Content(tableDefinitionPart5); TableDefinitionPart tableDefinitionPart6 = worksheetPart5.AddNewPart<TableDefinitionPart>("rId1"); GenerateTableDefinitionPart6Content(tableDefinitionPart6); WorksheetPart worksheetPart6 = workbookPart1.AddNewPart<WorksheetPart>("rId6"); GenerateWorksheetPart6Content(worksheetPart6); TimeLinePart timeLinePart4 = worksheetPart6.AddNewPart<TimeLinePart>("rId3"); GenerateTimeLinePart4Content(timeLinePart4); DrawingsPart drawingsPart4 = worksheetPart6.AddNewPart<DrawingsPart>("rId2"); GenerateDrawingsPart4Content(drawingsPart4); ChartPart chartPart7 = drawingsPart4.AddNewPart<ChartPart>("rId2"); GenerateChartPart7Content(chartPart7); ChartPart chartPart8 = drawingsPart4.AddNewPart<ChartPart>("rId1"); GenerateChartPart8Content(chartPart8); PivotTablePart pivotTablePart4 = worksheetPart6.AddNewPart<PivotTablePart>("rId1"); GeneratePivotTablePart4Content(pivotTablePart4); pivotTablePart4.AddPart(pivotTableCacheDefinitionPart1, "rId1"); WorksheetPart worksheetPart7 = workbookPart1.AddNewPart<WorksheetPart>("rId11"); GenerateWorksheetPart7Content(worksheetPart7); TimeLinePart timeLinePart5 = worksheetPart7.AddNewPart<TimeLinePart>("rId3"); GenerateTimeLinePart5Content(timeLinePart5); DrawingsPart drawingsPart5 = worksheetPart7.AddNewPart<DrawingsPart>("rId2"); GenerateDrawingsPart5Content(drawingsPart5); ChartPart chartPart9 = drawingsPart5.AddNewPart<ChartPart>("rId2"); GenerateChartPart9Content(chartPart9); ChartPart chartPart10 = drawingsPart5.AddNewPart<ChartPart>("rId1"); GenerateChartPart10Content(chartPart10); PivotTablePart pivotTablePart5 = worksheetPart7.AddNewPart<PivotTablePart>("rId1"); GeneratePivotTablePart5Content(pivotTablePart5); pivotTablePart5.AddPart(pivotTableCacheDefinitionPart1, "rId1"); WorkbookStylesPart workbookStylesPart1 = workbookPart1.AddNewPart<WorkbookStylesPart>("rId24"); GenerateWorkbookStylesPart1Content(workbookStylesPart1); WorksheetPart worksheetPart8 = workbookPart1.AddNewPart<WorksheetPart>("rId5"); GenerateWorksheetPart8Content(worksheetPart8); TimeLinePart timeLinePart6 = worksheetPart8.AddNewPart<TimeLinePart>("rId3"); GenerateTimeLinePart6Content(timeLinePart6); DrawingsPart drawingsPart6 = worksheetPart8.AddNewPart<DrawingsPart>("rId2"); GenerateDrawingsPart6Content(drawingsPart6); ChartPart chartPart11 = drawingsPart6.AddNewPart<ChartPart>("rId2"); GenerateChartPart11Content(chartPart11); ChartPart chartPart12 = drawingsPart6.AddNewPart<ChartPart>("rId1"); GenerateChartPart12Content(chartPart12); PivotTablePart pivotTablePart6 = worksheetPart8.AddNewPart<PivotTablePart>("rId1"); GeneratePivotTablePart6Content(pivotTablePart6); pivotTablePart6.AddPart(pivotTableCacheDefinitionPart1, "rId1"); TimeLineCachePart timeLineCachePart6 = workbookPart1.AddNewPart<TimeLineCachePart>("rId15"); GenerateTimeLineCachePart6Content(timeLineCachePart6); ThemePart themePart1 = workbookPart1.AddNewPart<ThemePart>("rId23"); GenerateThemePart1Content(themePart1); WorksheetPart worksheetPart9 = workbookPart1.AddNewPart<WorksheetPart>("rId10"); GenerateWorksheetPart9Content(worksheetPart9); TimeLinePart timeLinePart7 = worksheetPart9.AddNewPart<TimeLinePart>("rId3"); GenerateTimeLinePart7Content(timeLinePart7); DrawingsPart drawingsPart7 = worksheetPart9.AddNewPart<DrawingsPart>("rId2"); GenerateDrawingsPart7Content(drawingsPart7); ChartPart chartPart13 = drawingsPart7.AddNewPart<ChartPart>("rId2"); GenerateChartPart13Content(chartPart13); ChartPart chartPart14 = drawingsPart7.AddNewPart<ChartPart>("rId1"); GenerateChartPart14Content(chartPart14); PivotTablePart pivotTablePart7 = worksheetPart9.AddNewPart<PivotTablePart>("rId1"); GeneratePivotTablePart7Content(pivotTablePart7); pivotTablePart7.AddPart(pivotTableCacheDefinitionPart1, "rId1"); TimeLineCachePart timeLineCachePart7 = workbookPart1.AddNewPart<TimeLineCachePart>("rId19"); GenerateTimeLineCachePart7Content(timeLineCachePart7); WorksheetPart worksheetPart10 = workbookPart1.AddNewPart<WorksheetPart>("rId4"); GenerateWorksheetPart10Content(worksheetPart10); TimeLinePart timeLinePart8 = worksheetPart10.AddNewPart<TimeLinePart>("rId3"); GenerateTimeLinePart8Content(timeLinePart8); DrawingsPart drawingsPart8 = worksheetPart10.AddNewPart<DrawingsPart>("rId2"); GenerateDrawingsPart8Content(drawingsPart8); ChartPart chartPart15 = drawingsPart8.AddNewPart<ChartPart>("rId2"); GenerateChartPart15Content(chartPart15); ChartPart chartPart16 = drawingsPart8.AddNewPart<ChartPart>("rId1"); GenerateChartPart16Content(chartPart16); PivotTablePart pivotTablePart8 = worksheetPart10.AddNewPart<PivotTablePart>("rId1"); GeneratePivotTablePart8Content(pivotTablePart8); pivotTablePart8.AddPart(pivotTableCacheDefinitionPart1, "rId1"); WorksheetPart worksheetPart11 = workbookPart1.AddNewPart<WorksheetPart>("rId9"); GenerateWorksheetPart11Content(worksheetPart11); TimeLinePart timeLinePart9 = worksheetPart11.AddNewPart<TimeLinePart>("rId3"); GenerateTimeLinePart9Content(timeLinePart9); DrawingsPart drawingsPart9 = worksheetPart11.AddNewPart<DrawingsPart>("rId2"); GenerateDrawingsPart9Content(drawingsPart9); ChartPart chartPart17 = drawingsPart9.AddNewPart<ChartPart>("rId2"); GenerateChartPart17Content(chartPart17); ChartPart chartPart18 = drawingsPart9.AddNewPart<ChartPart>("rId1"); GenerateChartPart18Content(chartPart18); PivotTablePart pivotTablePart9 = worksheetPart11.AddNewPart<PivotTablePart>("rId1"); GeneratePivotTablePart9Content(pivotTablePart9); pivotTablePart9.AddPart(pivotTableCacheDefinitionPart1, "rId1"); TimeLineCachePart timeLineCachePart8 = workbookPart1.AddNewPart<TimeLineCachePart>("rId14"); GenerateTimeLineCachePart8Content(timeLineCachePart8); TimeLineCachePart timeLineCachePart9 = workbookPart1.AddNewPart<TimeLineCachePart>("rId22"); GenerateTimeLineCachePart9Content(timeLineCachePart9); SetPackageProperties(document); }
// Adds child parts and generates content of the specified part. private void CreateParts(SpreadsheetDocument document) { WebExTaskpanesPart webExTaskpanesPart1 = document.AddNewPart<WebExTaskpanesPart>("rId2"); GenerateWebExTaskpanesPart1Content(webExTaskpanesPart1); WebExtensionPart webExtensionPart1 = webExTaskpanesPart1.AddNewPart<WebExtensionPart>("rId2"); GenerateWebExtensionPart1Content(webExtensionPart1); WebExtensionPart webExtensionPart2 = webExTaskpanesPart1.AddNewPart<WebExtensionPart>("rId1"); GenerateWebExtensionPart2Content(webExtensionPart2); WorkbookPart workbookPart1 = document.AddWorkbookPart(); GenerateWorkbookPart1Content(workbookPart1); ThemePart themePart1 = workbookPart1.AddNewPart<ThemePart>("rId3"); GenerateThemePart1Content(themePart1); WorksheetPart worksheetPart1 = workbookPart1.AddNewPart<WorksheetPart>("rId2"); GenerateWorksheetPart1Content(worksheetPart1); DrawingsPart drawingsPart1 = worksheetPart1.AddNewPart<DrawingsPart>("rId1"); GenerateDrawingsPart1Content(drawingsPart1); WebExtensionPart webExtensionPart3 = drawingsPart1.AddNewPart<WebExtensionPart>("rId3"); GenerateWebExtensionPart3Content(webExtensionPart3); ImagePart imagePart1 = webExtensionPart3.AddNewPart<ImagePart>("image/png", "rId1"); GenerateImagePart1Content(imagePart1); ImagePart imagePart2 = drawingsPart1.AddNewPart<ImagePart>("image/png", "rId2"); GenerateImagePart2Content(imagePart2); WebExtensionPart webExtensionPart4 = drawingsPart1.AddNewPart<WebExtensionPart>("rId1"); GenerateWebExtensionPart4Content(webExtensionPart4); webExtensionPart4.AddPart(imagePart2, "rId1"); drawingsPart1.AddPart(imagePart1, "rId4"); WorksheetPart worksheetPart2 = workbookPart1.AddNewPart<WorksheetPart>("rId1"); GenerateWorksheetPart2Content(worksheetPart2); DrawingsPart drawingsPart2 = worksheetPart2.AddNewPart<DrawingsPart>("rId1"); GenerateDrawingsPart2Content(drawingsPart2); ImagePart imagePart3 = drawingsPart2.AddNewPart<ImagePart>("image/png", "rId2"); GenerateImagePart3Content(imagePart3); WebExtensionPart webExtensionPart5 = drawingsPart2.AddNewPart<WebExtensionPart>("rId1"); GenerateWebExtensionPart5Content(webExtensionPart5); webExtensionPart5.AddPart(imagePart3, "rId1"); WorkbookStylesPart workbookStylesPart1 = workbookPart1.AddNewPart<WorkbookStylesPart>("rId4"); GenerateWorkbookStylesPart1Content(workbookStylesPart1); ExtendedFilePropertiesPart extendedFilePropertiesPart1 = document.AddNewPart<ExtendedFilePropertiesPart>("rId4"); GenerateExtendedFilePropertiesPart1Content(extendedFilePropertiesPart1); SetPackageProperties(document); }
// Adds child parts and generates content of the specified part. private void CreateParts(SpreadsheetDocument document) { ExtendedFilePropertiesPart extendedFilePropertiesPart1 = document.AddNewPart<ExtendedFilePropertiesPart>("rId3"); GenerateExtendedFilePropertiesPart1Content(extendedFilePropertiesPart1); WorkbookPart workbookPart1 = document.AddWorkbookPart(); GenerateWorkbookPart1Content(workbookPart1); ThemePart themePart1 = workbookPart1.AddNewPart<ThemePart>("rId3"); GenerateThemePart1Content(themePart1); WorksheetPart worksheetPart1 = workbookPart1.AddNewPart<WorksheetPart>("rId2"); GenerateWorksheetPart1Content(worksheetPart1); DrawingsPart drawingsPart1 = worksheetPart1.AddNewPart<DrawingsPart>("rId1"); GenerateDrawingsPart1Content(drawingsPart1); DiagramStylePart diagramStylePart1 = drawingsPart1.AddNewPart<DiagramStylePart>("rId3"); GenerateDiagramStylePart1Content(diagramStylePart1); ExtendedPart extendedPart1 = drawingsPart1.AddExtendedPart("http://schemas.microsoft.com/office/2007/relationships/hdphoto", "image/vnd.ms-photo", "wdp", "rId7"); GenerateExtendedPart1Content(extendedPart1); DiagramLayoutDefinitionPart diagramLayoutDefinitionPart1 = drawingsPart1.AddNewPart<DiagramLayoutDefinitionPart>("rId2"); GenerateDiagramLayoutDefinitionPart1Content(diagramLayoutDefinitionPart1); DiagramDataPart diagramDataPart1 = drawingsPart1.AddNewPart<DiagramDataPart>("rId1"); GenerateDiagramDataPart1Content(diagramDataPart1); ImagePart imagePart1 = drawingsPart1.AddNewPart<ImagePart>("image/png", "rId6"); GenerateImagePart1Content(imagePart1); DiagramPersistLayoutPart diagramPersistLayoutPart1 = drawingsPart1.AddNewPart<DiagramPersistLayoutPart>("rId5"); GenerateDiagramPersistLayoutPart1Content(diagramPersistLayoutPart1); DiagramColorsPart diagramColorsPart1 = drawingsPart1.AddNewPart<DiagramColorsPart>("rId4"); GenerateDiagramColorsPart1Content(diagramColorsPart1); WorksheetPart worksheetPart2 = workbookPart1.AddNewPart<WorksheetPart>("rId1"); GenerateWorksheetPart2Content(worksheetPart2); DrawingsPart drawingsPart2 = worksheetPart2.AddNewPart<DrawingsPart>("rId3"); GenerateDrawingsPart2Content(drawingsPart2); ChartPart chartPart1 = drawingsPart2.AddNewPart<ChartPart>("rId1"); GenerateChartPart1Content(chartPart1); ChartColorStylePart chartColorStylePart1 = chartPart1.AddNewPart<ChartColorStylePart>("rId2"); GenerateChartColorStylePart1Content(chartColorStylePart1); ChartStylePart chartStylePart1 = chartPart1.AddNewPart<ChartStylePart>("rId1"); GenerateChartStylePart1Content(chartStylePart1); SpreadsheetPrinterSettingsPart spreadsheetPrinterSettingsPart1 = worksheetPart2.AddNewPart<SpreadsheetPrinterSettingsPart>("rId2"); GenerateSpreadsheetPrinterSettingsPart1Content(spreadsheetPrinterSettingsPart1); WorksheetCommentsPart worksheetCommentsPart1 = worksheetPart2.AddNewPart<WorksheetCommentsPart>("rId6"); GenerateWorksheetCommentsPart1Content(worksheetCommentsPart1); TableDefinitionPart tableDefinitionPart1 = worksheetPart2.AddNewPart<TableDefinitionPart>("rId5"); GenerateTableDefinitionPart1Content(tableDefinitionPart1); VmlDrawingPart vmlDrawingPart1 = worksheetPart2.AddNewPart<VmlDrawingPart>("rId4"); GenerateVmlDrawingPart1Content(vmlDrawingPart1); worksheetPart2.AddHyperlinkRelationship(new System.Uri("http://www.ericwhite.com/", System.UriKind.Absolute), true, "rId1"); CalculationChainPart calculationChainPart1 = workbookPart1.AddNewPart<CalculationChainPart>("rId6"); GenerateCalculationChainPart1Content(calculationChainPart1); SharedStringTablePart sharedStringTablePart1 = workbookPart1.AddNewPart<SharedStringTablePart>("rId5"); GenerateSharedStringTablePart1Content(sharedStringTablePart1); WorkbookStylesPart workbookStylesPart1 = workbookPart1.AddNewPart<WorkbookStylesPart>("rId4"); GenerateWorkbookStylesPart1Content(workbookStylesPart1); SetPackageProperties(document); }
/// <summary> /// Import shared string item from one document to another /// </summary> /// <param name="sourceDoc">Source excel document</param> /// <param name="id">Id of shared string item</param> /// <param name="targetDoc">Target excel document</param> /// <returns></returns> protected static uint ImportSharedString(SpreadsheetDocument sourceDoc, uint id, SpreadsheetDocument targetDoc) { // Prepare resource parts var srcSharedStringPart = sourceDoc.WorkbookPart.GetPartsOfType<SharedStringTablePart>().FirstOrDefault(); if (srcSharedStringPart == null) throw new InvalidOperationException("SharedStringPart was not found in Source document!"); if (srcSharedStringPart.SharedStringTable == null) throw new InvalidOperationException("SharedStringTable was not found in Source document!"); var tgtSharedStringPart = targetDoc.WorkbookPart.GetPartsOfType<SharedStringTablePart>().FirstOrDefault(); if (tgtSharedStringPart == null) { // Create one tgtSharedStringPart = targetDoc.AddNewPart<SharedStringTablePart>(); } if (tgtSharedStringPart.SharedStringTable == null) { tgtSharedStringPart.SharedStringTable = new SharedStringTable(); } // Get original shared string item var srcItem = srcSharedStringPart.SharedStringTable.ElementAt((int)id) as SharedStringItem; if (srcItem == null) throw new InvalidOperationException( String.Format("SharedStringItem {0} was not found in source document!", id)); // Try to find same shared string item in target uint i = 0; foreach (var item in tgtSharedStringPart.SharedStringTable.Elements<SharedStringItem>()) { if (item.InnerText == srcItem.InnerText) { // Found same value return i; } i++; } // Not found, import it var tgtItem = srcItem.Clone() as SharedStringItem; tgtSharedStringPart.SharedStringTable.AppendChild(tgtItem); return i; }