Tag: openxml sdk

更改Word文档的边距

我创建了一个带有按钮的Web部件,该按钮一旦单击就会生成一个包含特定列表的列表项值的word文档。 我希望能够更改文档的边距(顶部,底部边距),但我不确定如何继续。 任何人都可以阐明如何实现这一目标吗? 到目前为止,我的代码如下: void GenerateBadges_Click(object sender, EventArgs e) { string Title = null; string jobTitle = null; WordprocessingDocument document = WordprocessingDocument.Create(@”C:\sample- badges.docx”, WordprocessingDocumentType.Document); MainDocumentPart mainDocumenPart = document.AddMainDocumentPart(); mainDocumenPart.Document = new Document(); Body documentBody = new Body(); mainDocumenPart.Document.Append(documentBody); SPWeb web = SPContext.Current.Web; SPList list = web.Lists[“SampleList”]; SPListItemCollection collListItems = list.Items; //getting the internal name for […]

将多个单元格添加到单个行

我是新手,当我尝试在一行中添加多个单元格时,它说有不可读的内容。 这就是我所拥有的。 SpreadsheetDocument ssDoc = SpreadsheetDocument.Create(saveFile, SpreadsheetDocumentType.Workbook); // Add a WorkbookPart to the document WorkbookPart workbookPart = ssDoc.AddWorkbookPart(); workbookPart.Workbook = new Workbook(); // Add a WorksheetPart to theWorkbookPart WorksheetPart worksheetPart = workbookPart.AddNewPart(); worksheetPart.Worksheet = new Worksheet(new SheetData()); Sheets sheets = ssDoc.WorkbookPart.Workbook.AppendChild(new Sheets()); Sheet sheet = new Sheet() { Id = ssDoc.WorkbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name […]

如何使用OpenXML Sdk替换Paragraph的文本

我正在使用.Net OpenXml SDK 2.0解析一些Openxml word文档。 作为处理的一部分,我需要用其他句子替换某些句子。 在迭代段落时,我知道当我找到需要替换的东西时,但我很难过如何替换它。 例如,假设我需要替换”a contract exclusively for construction work that is not building work.”这句话”a contract exclusively for construction work that is not building work.” 使用html片段到下面的Sharepoint可重用内容。 a contract exclusively for construction work that is not building work. PS:我使用xslt得到了docx到Html的转换,所以在这个阶段这不是问题 Paragraph节点的InnerText属性为我提供了正确的文本,但内部文本属性本身不可设置。 所以Regex.Match(currentParagraph.InnerText, currentString).Success返回true并告诉我当前段落包含我想要的文本。 正如我所说,InnerText本身不可设置,所以我尝试使用outerxml创建一个新的段落如下。 string modifiedOuterxml = Regex.Replace(currentParagraph.OuterXml, currentString, reusableContentString); OpenXmlElement parent = currentParagraph.Parent; […]

C#用于替换docx中的文本字符串

使用C#,有没有一种很好的方法来查找和替换docx文件中的文本字符串而不在该机器上安装word?

如何在Open xml中使用样式索引?

任何人都可以解释OpenXml中的样式索引如何工作? 我有业务需求,我需要将背景颜色应用于Excel工作表中的某些单元格。 并且某些样式已经应用于其他单元格。 所以我需要决定我需要应用哪种样式的索引。

为什么我的自定义XML在Word保存时不会转移到新版本的DOCX文件?

我正在向docx添加一些自定义XML,以便在我正在编写的应用程序中跟踪它。 我通过ZIP库打开Word文档,并通过官方Open XML SDK路由手动完成它。 两者都有相同的结果,我的XML被插入到文档中的customXml文件夹中。 对于这两种方法,Word中的文档打开正常,并且XML存在。 但是,当我将文档保存为MyDoc2.docx时,例如我的所有XML都消失了。 我究竟做错了什么? Microsoft链接我一直关注: http://msdn.microsoft.com/en-us/library/bb608597.aspx http://msdn.microsoft.com/en-us/library/bb608612.aspx 我从Open XML SDK 2.0中获取的代码: public static void AddNewPart(string document, string fileName) { using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(document, true)) { MainDocumentPart mainPart = wordDoc.MainDocumentPart; CustomXmlPart myXmlPart = mainPart.AddCustomXmlPart(CustomXmlPartType.CustomXml); using (FileStream stream = new FileStream(fileName, FileMode.Open)) { myXmlPart.FeedData(stream); } } } 谢谢,约翰

如何将图像插入OpenXML Word文档的标题?

我的OpenXML Word文档生成项目需要文本,表格和图像。 但首先, 我需要一个带有徽标(图像)的文档标题。 我已经使用Microsoft示例通过使用Open XML SDK 2.0 for Microsoft Office在Word 2007中使用页眉和页脚生成文档创建页眉和页脚,文本标题工作正常,但图像显示在标题中损坏的图像图标, 正确大小的边框 ,以及消息“此图像当前无法显示”。 此外,我可以将选定的图像加载到文档正文中。 以下是我创建ImagePart的方法: // Create AG logo part. _agLogoPart = mainDocumentPart.AddImagePart(ImagePartType.Jpeg); using (FileStream stream = new FileStream(_agLogoFilename, FileMode.Open)) { _agLogoPart.FeedData(stream); } _agLogoRel = mainDocumentPart.GetIdOfPart(_agLogoPart); 使用从Microsoft示例派生的LoadImage方法加载图像,但添加宽度和高度参数,并返回Drawing对象: private static Drawing LoadImage(string relationshipId, string filename, string picturename, double inWidth, double inHeight) { double emuWidth = […]

openXML spreadsheetdocument返回MVC文件下载的字节数组

我正在尝试将openXML电子表格文档作为byte []返回,然后我可以使用它来允许我的MVC将该文件发送给用户。 这是我的spreadsheetdocument方法返回字节数组 using (MemoryStream mem = new MemoryStream()) { SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument. Create(mem, SpreadsheetDocumentType.Workbook); // Add a WorkbookPart to the document. WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart(); workbookpart.Workbook = new Workbook(); // Add a WorksheetPart to the WorkbookPart. WorksheetPart worksheetPart = workbookpart.AddNewPart(); worksheetPart.Worksheet = new Worksheet(new SheetData()); // Add Sheets to the Workbook. Sheets sheets […]

OpenXml表错误“每个之前需要元素”

我创建了一个Word模板,然后我通过OpenXML SDK进行处理,用数据库查询中的数据替换文档的某些内容。 该模板由一些基本文本组成,其中纯文本内容控件注入我想要替换文本的位置。 然后我使用这些控件中的文本作为查找替换值的键。 在大多数情况下,这工作正常(我只是更新Text对象的Text属性)。 在一种情况下,我用表替换文本。 在这种情况下,我在代码中构建一个表,然后用新的Table对象替换SdtContentRun对象的内容(Run对象的父对象,后者又是Text对象的父对象)… var sdtContentRunElements = from sdtContentRun in this.Document.MainDocumentPart.RootElement.Descendants() select sdtContentRun; sdtContentRunElements.ForEach(sdtContentRunElement => { Run firstRunElement = sdtContentRunElement.Descendants().FirstOrDefault(); if (firstRunElement != null) { Text firstTextElement = firstRunElement.Descendants().FirstOrDefault(); if (firstTextElement != null) { switch (firstTextElement.Text) { case TableBookmark: Table advisoryTable = new Table(…); // See below OpenXmlElement parent = firstRunElement.Parent; parent.RemoveAllChildren(); […]

在C#中通过OpenXML在word文件中定义带有RTL方向的段落

如何使用C#中的OpenXML为单词中的段落设置从右到左的方向? 我使用下面的代码来定义它,但它们不会做任何改变: RunProperties rPr = new RunProperties(); Style style = new Style(); style.StyleId = “my_style”; style.Append(new Justification() { Val = JustificationValues.Right }); style.Append(new TextDirection() { Val = TextDirectionValues.TopToBottomRightToLeft }); style.Append(rPr); 最后我将为我的段落设置这种风格: … heading_pPr.ParagraphStyleId = new ParagraphStyleId() { Val = “my_style” }; 但是看到输出文件没有变化。 我找到了一些post,但他们根本没有帮助我,比如: 更改word文件中的文本方向 怎么能解决这个问题? 提前致谢。