Tag: openxml

使用OpenXmlReader

我讨厌借助StackOverflow这样(看似)基本的东西,但我在过去的几个小时里一直在和微软打架,似乎已经走到了死胡同。 我正在尝试阅读(大)Excel 2007+电子表格,谷歌已经告诉我,使用OpenXml SDK是一个非常受欢迎的选择。 所以我给了这个东西一个镜头,阅读了一些教程,检查了微软自己的库页面,并且得到了很少的东西。 我正在使用一个小测试电子表格,只有一列数字和一个字符串 – 大规模测试将在稍后进行。 我尝试了几种与我即将发布的实现相似的实现,但没有一种实现读取数据。 下面的代码主要来自另一个StackOverflow线程,它似乎已经工作 – 对我来说不是这样。 我想我会让你们检查/调试/帮助这个版本,因为它可能比我今天写的任何内容都要少。 static void ReadExcelFileSAX(string fileName) { using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(fileName, true)) { WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart; WorksheetPart worksheetPart = workbookPart.WorksheetParts.First(); OpenXmlPartReader reader = new OpenXmlPartReader(worksheetPart); string text; string rowNum; while (reader.Read()) { if (reader.ElementType == typeof(Row)) { do { if (reader.HasAttributes) { […]

如何使用OpenXml 2.0将任何文件类型嵌入到Microsoft Word中

我花了很多时间试图找出一种使用OpenXml 2.0将任何文件嵌入Microsoft Word的好方法; Office文档相当容易,但其他文件类型如PDF,TXT,GIF,JPG,HTML等等。 在C#中使用任何文件类型的好方法是什么?

使用OpenXML将图像插入DocX并设置大小

我正在使用OpenXML将图像插入到我的文档中。 Microsoft提供的代码可以工作,但会使图像更小: public static void InsertAPicture(string document, string fileName) { using (WordprocessingDocument wordprocessingDocument = WordprocessingDocument.Open(document, true)) { MainDocumentPart mainPart = wordprocessingDocument.MainDocumentPart; ImagePart imagePart = mainPart.AddImagePart(ImagePartType.Jpeg); using (FileStream stream = new FileStream(fileName, FileMode.Open)) { imagePart.FeedData(stream); } AddImageToBody(wordprocessingDocument, mainPart.GetIdOfPart(imagePart)); } } private static void AddImageToBody(WordprocessingDocument wordDoc, string relationshipId) { // Define the reference of the image. var […]

将多个word文档合并为一个Open Xml

我有大约10个word文档,我使用open xml和其他东西生成。 现在我想创建另一个word文档,我想逐个加入到这个新创建的文档中。 我想使用open xml,任何提示都会很明显。 以下是我的代码: private void CreateSampleWordDocument() { //string sourceFile = Path.Combine(“D:\\GeneralLetter.dot”); //string destinationFile = Path.Combine(“D:\\New.doc”); string sourceFile = Path.Combine(“D:\\GeneralWelcomeLetter.docx”); string destinationFile = Path.Combine(“D:\\New.docx”); try { // Create a copy of the template file and open the copy //File.Copy(sourceFile, destinationFile, true); using (WordprocessingDocument document = WordprocessingDocument.Open(destinationFile, true)) { // Change the document type […]

使用Open XML SDK替换Word文件中的书签文本

我假设v2.0更好……他们有一些很好的“如何:……”的例子,但是书签看起来并不像表格那么明显……书签是由两个 XML元素BookmarkStart定义的书签结束 。 我们有一些带有书签的模板作为书签,我们只想用其他文本替换书签……没有奇怪的格式化,但如何选择/替换书签文字?

OpenXML标记搜索

我正在编写一个.NET应用程序,它应该读取200页长的.docx文件(通过DocumentFormat.OpenXML 2.5)来查找文档应该包含的某些标记的所有出现。 为了清楚起见,我不是在寻找OpenXML标签,而是寻找应该由文档编写者设置到文档中的标签,作为我需要在第二阶段填写的值的占位符。 此类标签应采用以下格式: (其中TAG可以是任意字符序列)。 正如我所说,我必须找到所有这些标签的出现加上(如果可能)找到已发现标签出现的“页面”。 我在Web上发现了一些东西,但不止一次基本方法是将文件的所有内容转储到字符串中,然后查看这样的字符串,无论.docx编码如何。 这或者导致误报或根本不匹配(而测试.docx文件包含多个标签),其他示例可能与我对OpenXML的了解有点差异。 找到这样的标签的正则表达式模式应该是这样的: 标签可以在整个文档中找到(在表格,文本,段落内,也可以在页眉和页脚中)。 我在Visual Studio 2013 .NET 4.5中进行编码,但如果需要,我可以回来。 PS我更喜欢不使用Office Interop API的代码,因为目标平台不会运行Office。 我可以生成的最小.docx示例存储此内部文档 TRY <!TAG1 !> TRY2 最诚挚的问候,迈克

使用OpenXML将%数字格式应用于单元格值

我想使用open XML C#应用%(百分比)数字格式 我有数值3.6,我想在Excel中显示该数字为3.6%。 我如何实现这一目标?