public void AddContent(PartInfo rel, Stream sourceStream) { PartInfo parentPart = GetPart(rel.RelatedTo); PartInfo clonedPart = new PartInfo(this, rel); string sContentType; if (ContentIsInternalType(rel.Type)) { sContentType = rel.GetContentType(); clonedPart.Target = RemoveLeadingSlash(clonedPart.Target); parentPart.AddRelatedItem(clonedPart); if (m_partsMap.ContainsKey(clonedPart.AbsolutePath()) && sourceStream == null) { // we have already added this content via a relationship elsewhere, don't need to write it return; } m_partsMap.Add(clonedPart.AbsolutePath(), clonedPart); if (sourceStream != null) { string partName = clonedPart.AbsolutePath(); AddZipEntry(partName, sourceStream); if (rel.ContentTypeOverriden()) m_contentTypes.Add("/" + partName, sContentType); } } else {//we should only get here for external rels - so there should never be an additional stream to add parentPart.AddRelatedItem(clonedPart); sContentType = rel.Type; if (m_partsMap.ContainsKey(clonedPart.Target)) { // we have already added this content via a relationship elsewhere, don't need to write it return; } m_partsMap.Add(clonedPart.Target, clonedPart); if (sourceStream != null) { throw new System.InvalidOperationException("Sourcestream is not null for supposedly external hyperlink part"); } } }
private bool IsContentPart(PartInfo part) { switch (part.GetContentType()) { case "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": case "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": case "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": case "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": case "application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml": case "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": return true; } return false; }
private void CountContentType(Stream stuff, PartInfo part) { if (part.GetContentType() == m_sContentType) m_iCount++; }
private bool IsContentPart(PartInfo part) { switch (part.GetContentType()) { case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": case "application/vnd.ms-excel.sheet.macroEnabled.main+xml": case "application/vnd.ms-excel.template.macroEnabled.main+xml": case "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": case "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": case "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": case "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml": case "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": case "application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml": case "application/vnd.ms-excel.intlmacrosheet+xml": case "application/vnd.ms-excel.macrosheet+xml": case "application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml": case "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml": case "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml": case "application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml": case "application/vnd.openxmlformats-officedocument.drawing+xml": return true; } return false; }
private bool IsCommentPart(PartInfo part) { switch (part.GetContentType()) { case "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": return true; } return false; }
private bool IsSheetPart(PartInfo part) { switch (part.GetContentType()) { case "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": case "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": case "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": case "application/vnd.ms-excel.intlmacrosheet+xml": case "application/vnd.ms-excel.macrosheet+xml": return true; } return false; }
private bool IsWorkbookPart(PartInfo part) { switch (part.GetContentType()) { case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": case "application/vnd.ms-excel.sheet.macroEnabled.main+xml": case "application/vnd.ms-excel.template.macroEnabled.main+xml": return true; } return false; }