internal void InitNew(ExcelPivotTable pivotTable, ExcelRangeBase sourceAddress, string xml) { var pck = pivotTable.WorkSheet._package.ZipPackage; CacheDefinitionXml = new XmlDocument(); var sourceWorksheet = pivotTable.WorkSheet.Workbook.Worksheets[sourceAddress.WorkSheetName]; if (xml == null) { LoadXmlSafe(CacheDefinitionXml, GetStartXml(sourceWorksheet, sourceAddress), Encoding.UTF8); TopNode = CacheDefinitionXml.DocumentElement; } else { CacheDefinitionXml = new XmlDocument(); CacheDefinitionXml.LoadXml(xml); TopNode = CacheDefinitionXml.DocumentElement; SetXmlNodeString(_sourceWorksheetPath, sourceAddress.WorkSheetName); SetXmlNodeString(_sourceAddressPath, sourceAddress.Address); } CacheId = _wb.GetNewPivotCacheId(); var c = CacheId; CacheDefinitionUri = GetNewUri(pck, "/xl/pivotCache/pivotCacheDefinition{0}.xml", ref c); Part = pck.CreatePart(CacheDefinitionUri, ContentTypes.contentTypePivotCacheDefinition); AddRecordsXml(); CacheDefinitionXml.Save(Part.GetStream()); _pivotTables.Add(pivotTable); }
private ExcelPivotTableCacheField CreateField(string name, int index, bool databaseField = true) { //Add Cache definition field. var cacheTopNode = CacheDefinitionXml.SelectSingleNode("//d:cacheFields", NameSpaceManager); var cacheFieldNode = CacheDefinitionXml.CreateElement("cacheField", ExcelPackage.schemaMain); cacheFieldNode.SetAttribute("name", name); if (databaseField == false) { cacheFieldNode.SetAttribute("databaseField", "0"); } cacheTopNode.AppendChild(cacheFieldNode); return(new ExcelPivotTableCacheField(NameSpaceManager, cacheFieldNode, this, index)); }
internal void InitNew(ExcelPivotTable pivotTable, ExcelRangeBase sourceAddress, string xml) { var pck = pivotTable.WorkSheet._package.ZipPackage; CacheDefinitionXml = new XmlDocument(); var sourceWorksheet = pivotTable.WorkSheet.Workbook.Worksheets[sourceAddress.WorkSheetName]; if (xml == null) { LoadXmlSafe(CacheDefinitionXml, GetStartXml(sourceWorksheet, sourceAddress), Encoding.UTF8); TopNode = CacheDefinitionXml.DocumentElement; } else { CacheDefinitionXml = new XmlDocument(); CacheDefinitionXml.LoadXml(xml); TopNode = CacheDefinitionXml.DocumentElement; SetXmlNodeString(_sourceWorksheetPath, sourceAddress.WorkSheetName); SetXmlNodeString(_sourceAddressPath, sourceAddress.Address); } CacheId = _wb.GetNewPivotCacheId(); var c = CacheId; CacheDefinitionUri = GetNewUri(pck, "/xl/pivotCache/pivotCacheDefinition{0}.xml", ref c); Part = pck.CreatePart(CacheDefinitionUri, ExcelPackage.schemaPivotCacheDefinition); //CacheRecord. Create an empty one. CacheRecordUri = GetNewUri(pck, "/xl/pivotCache/pivotCacheRecords{0}.xml", ref c); ResetRecordXml(pck); RecordRelationship = Part.CreateRelationship(UriHelper.ResolvePartUri(CacheDefinitionUri, CacheRecordUri), Packaging.TargetMode.Internal, ExcelPackage.schemaRelationships + "/pivotCacheRecords"); RecordRelationshipID = RecordRelationship.Id; CacheDefinitionXml.Save(Part.GetStream()); _pivotTables.Add(pivotTable); }