Tag: openxml sdk

使用OpenXML将图片插入Word文档的标题

我知道这里有同样的问题,但答案有点模糊,并没有显示完整的源代码。 我有一个生成标题的方法,但它不起作用(在图像位置显示x)。 public static void AddPicHeader(string docxFileName) { using(WordprocessingDocument doc = WordprocessingDocument.Open(docxFileName, true)) { var mainDocPart = doc.MainDocumentPart; var imgPart = mainDocPart.AddImagePart(ImagePartType.Png, “rId999”); var image = GetImageFromFile(logoFileName); var imagePartID = mainDocPart.GetIdOfPart(imgPart); GenerateImagePartContent(imgPart, image); if(!mainDocPart.HeaderParts.Any()) { mainDocPart.DeleteParts(mainDocPart.HeaderParts); var newHeaderPart = mainDocPart.AddNewPart(); var rId = mainDocPart.GetIdOfPart(newHeaderPart); var headerRef = new HeaderReference { Id = rId }; var […]

OpenXml:工作表子元素更改排序导致损坏的文件

我正在尝试使用openxml来生成自动excel文件。 我面临的一个问题是使用excel的开放式xml对象模型来容纳我的对象模型。 我必须达到一个点,我意识到我为工作表附加子元素的顺序很重要。 例如: workSheet.Append(sheetViews); workSheet.Append(columns); workSheet.Append(sheetData); workSheet.Append(mergeCells); workSheet.Append(drawing); 上面的排序不会给出任何错误。 但以下内容: workSheet.Append(sheetViews); workSheet.Append(columns); workSheet.Append(sheetData); workSheet.Append(drawing); workSheet.Append(mergeCells); 给出错误 所以这不允许我随时创建一个绘图对象并将其附加到工作表中。 这迫使我在使用它们之前创建这些元素。 任何人都可以告诉我,我是否正确理解了这个问题? 因为我相信我们应该能够打开任何excel文件,必要时为工作表创建一个新的子元素并附加它。 但现在这可能会破坏这些元素应该被追加的顺序。 谢谢。

OpenXML向现有Excel文件添加新行

我有很多XLSX文件,我需要在文件中的最后一行后添加一个新行。 我正在使用OpenXML,到目前为止我知道如何打开/创建电子表格,但我在现有文件中添加新行的搜索没有返回任何内容。 有任何想法吗 ?

OpenXML将段落样式(Heading1,Heading2,Head 3 Etc)添加到文字处理文档中

任何人都可以指导我如何使用开放式XML文字处理在段落上添加预定义样式吗? 我在论坛上尝试了各种解决方案,但对我来说没什么用。 这是我想要完成的: // Create a document by supplying the filepath. WordprocessingDocument wordDocument = WordprocessingDocument.Create(“E:/Test/Executive.Docx”, WordprocessingDocumentType.Document); // Add a main document part. MainDocumentPart mainPart = wordDocument.AddMainDocumentPart(); // Create the document structure and add some text. mainPart.Document = new Document(); Body body = mainPart.Document.AppendChild(new Body()); Paragraph para = body.AppendChild(new Paragraph()); Run run = para.AppendChild(new Run()); run.AppendChild(new […]

OpenXML中的CellValues.InlineString和CellValues.String有什么区别?

我正在尝试编写一些代码来生成Excel电子表格,我不确定CellValues.InlineString和CellValues.String在单元格上插入文本有什么区别。 我要用这个: private void UpdateCellTextValue(Cell cell,string cellValue) { InlineString inlineString = new InlineString(); Text cellValueText = new Text { Text = cellValue }; inlineString.AppendChild(cellValueText); cell.DataType = CellValues.InlineString; cell.AppendChild(inlineString); } 这个 private void UpdateCellTextValue(Cell cell, string cellValue) { cell.CellValue = new CellValue(cellValue); cell.DataType = new EnumValue(CellValues.String); } 或者只是这个(InsertSharedStringItem返回新插入的共享字符串项的Id) private void SetCellSharedTextValue(Cell cell,string cellValue) { int stringId […]

将HTML字符串添加到OpenXML(* .docx)文档

我正在尝试使用Microsoft的OpenXML 2.5库来创建OpenXML文档。 一切都很好,直到我尝试在我的文档中插入HTML字符串。 我已经在网上搜索过,这是我到目前为止所提出的内容(仅剪切到我遇到问题的部分): Paragraph paragraph = new Paragraph(); Run run = new Run(); string altChunkId = “id1”; AlternativeFormatImportPart chunk = document.MainDocumentPart.AddAlternativeFormatImportPart( AlternativeFormatImportPartType.Html, altChunkId); chunk.FeedData(new MemoryStream(Encoding.UTF8.GetBytes(ioi.Text))); AltChunk altChunk = new AltChunk { Id = altChunkId }; run.AppendChild(new Break()); paragraph.AppendChild(run); body.AppendChild(paragraph); 显然,我在这个例子中并没有实际添加altChunk,但我尝试将它附加到任何地方 – 运行,段落,正文等。在任何情况下,我都无法打开Word 2010中的docx文件。 这让我有点疯狂,因为它似乎应该是直截了当的(我承认我不完全理解AltChunk“的事情”)。 非常感谢任何帮助。 旁注:我发现有一件事很有意思,我不知道它是否真的有问题, 这个响应表明AltChunk在使用MemoryStream工作时会破坏文件。 谁能证实这是/不是真的?

openXmlSdk在Run Element中插入新行

我在Run Element中有文本。 我试图用line break替换字符串中的\r .. 案文如下 This is an example project for testing purposes. \rThis is all sample data, none of this is real information. \r\rThis field allows for the entry of more information, a larger text field for example purposes 并且Run Element的innerXml被翻译成 This is an example project for testing purposes. This is all sample […]

Microsoft Open XML SDL 2.0将文档附加到模板文档asp.net c#

我的asp.net c#web-application通过用数据填充现有模板word文档来创建word文档。 现在,我需要将下一页中的其他现有文档添加到该文档中。 例如:我的模板有两页。 我需要附加的文件有一页。 结果我想得到一个3页的单词文档。 如何使用Microsoft Open XML SDK 2.0将文档附加到asp.net/c#中的现有word文档?

无法插入OpenXmlElement“newChild”,因为它是树的一部分

标题说明了我得到的错误。 我试图使用OpenXml 隐藏 word doc中的所有文本。 目前,当我尝试追加段落属性时,我收到上述错误。 我在网上找不到这个错误。 返回错误的代码 using (WordprocessingDocument wdDoc = WordprocessingDocument.Open(mDoc_copy, true)) { // Manage namespaces to perform XPath queries. NameTable nt = new NameTable(); XmlNamespaceManager nsManager = new XmlNamespaceManager(nt); nsManager.AddNamespace(“w”, wordmlNamespace); // Get the document part from the package. // Load the XML in the document part into an XmlDocument instance. XmlDocument […]

使用OpenXML SDK 2.0将页眉和页脚添加到现有的空单词文档中

我正在尝试在空文档中添加页眉和页脚。 当将docx更改为zip时,我使用此代码在word / document.xml中添加Header部分。 ApplyHeader(doc); public static void ApplyHeader(WordprocessingDocument doc) { // Get the main document part. MainDocumentPart mainDocPart = doc.MainDocumentPart; // Delete the existing header parts. mainDocPart.DeleteParts(mainDocPart.HeaderParts); // Create a new header part and get its relationship id. HeaderPart newHeaderPart = mainDocPart.AddNewPart(); string rId = mainDocPart.GetIdOfPart(newHeaderPart); // Call the GeneratePageHeaderPart helper method, passing in […]