示例#1
0
        // 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);
        }
示例#2
0
        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);
        }
示例#3
0
        // 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);
        }
示例#4
0
        // 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);
        }
示例#6
0
        /// <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));
        }
示例#7
0
        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);
        }
示例#9
0
        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);
        }
示例#10
0
        /// <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);
        }
示例#12
0
        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);
        }
示例#14
0
        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();
        }
示例#15
0
        // 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);
        }
示例#17
0
 /// <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);
 }
示例#18
0
        // 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);
        }
示例#19
0
        // 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);
        }
示例#20
0
        // 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);
        }
示例#22
0
文件: ExcelUtiles.cs 项目: dzzzq/Giga
 /// <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;
 }