问题标签 [openxml-powertools]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
openxml - 接受插入拒绝删除openxml
我需要比较两个 Word 文件并将所有插入内容合并到第三个文件中。我已经设法使用 OpenXML-Power-Tools 和 WmlCompare 做到这一点,但我如何只拒绝删除?
接受插入很容易,OpenXmlPowerTools.RevisionAccepter
但我无法拒绝删除工作,这样我就可以在没有修改的情况下获得合并文件。
我应该采用这种方法还是您会建议不同的方法?
规则是:
- 1) 可以在文件中的任何位置添加文本。
- 2)文本总是添加到文件中,从不删除。
- 3) 文件具有 .docx 文件扩展名
excel - OpenXML PowerTools:是否可以将 Excel 电子表格写入 .Net MemoryStream?
我正在使用 PowerTools 以编程方式创建 Excel 电子表格。
我使用 Nuget 在我的 C#/ASP.Net Core 项目中安装了 PowerTools 4.5.3.2。该项目还使用 DocumentFormat.OpenXml v2.9.1。
我可以生成电子表格了。
但 ...
我想将完成的电子表格作为 .Net MemoryStream 传回给用户。
我仔细研究了https://github.com/OfficeDev/Open-Xml-PowerTools上的 PowerTools 文档和示例程序。
但在我的一生中,我还没有看到任何方法让 PowerTools 将生成的数据作为 MemoryStream 提供给我。或者,就此而言,让 PowerTools 使用我传递给它的 MemoryStream 的任何方式。
问:有什么建议吗?
笔记
我想做的就是:
我的 ASP.Net Web 控制器调用一个从头开始生成 .xlsx 电子表格的函数。
该函数使用 OpenXML PowerTools(因为这似乎是在 .xlsx 中包含数据透视表的最直接方式)
一旦函数返回,控制器需要将 .xlsx 作为 Asp.Net Core FileStreamResult 对象返回给 Web 客户端。
换句话说,我想做的就是从 2(工作)到 3(这就是我卡住的地方)。我似乎无法将成功创建的电子表格“转换”为与 MVC FileStreamResult 兼容的对象,以便控制器传回给调用者。
帮助!
c# - OpenXML SpreadsheetDocument SaveAs() 给出文件使用错误
我正在尝试使用从 ASP.Net Core Web 应用程序调用的 OpenXMLPowerTools v4.5.3.2、DocumentFormat.OpenXML v2.9.1 动态生成 Excel 电子表格。
我已经验证可以生成电子表格。
问题是我需要生成电子表格......并将其作为 MEMORY STREAM 返回(因此 ASP.Net Core Web 控制器
HCExcelReport.cs:
我已经尝试了无数的东西...
...但是如果我使用 PowerTools,我看不到任何替代doc.SaveAs()
...
...如果我使用doc.SaveAs()
,该文件似乎会保持“正在使用”,直到我的网络应用程序退出。
问:有什么建议吗?
c# - OpenXML - 用表格替换字符串
我想用一个表替换一个字符串,我不能让它工作。
下面是替换字符串的代码:
我应该怎么办 ?
c# - OpenXML 更改默认跟踪更改设置
我正在使用 OpenXML,特别是使用 word 文档跟踪更改。我想更改插入的颜色;但是,我不知道如何使用 OpenXML 或 OpenXMLPowerTools 访问插入颜色设置。通常,在实际的 Word 文档中,您可以导航到审阅选项卡中的标记选项并设置插入(或删除)的颜色。关于如何使用 OpenXML 做到这一点的任何想法?提前致谢。
powershell - 如何设置 Open-XML-PowerTools
我正在尝试使用 Open-XML-PowerTools。我想在 powershell 命令行上执行它。但是,我还没有到可以实际使用它的地步,因为我似乎无法正确完成设置。那么你能给我一些建议吗?
我做过的事情:
我尝试按照 Github 页面上的构建说明进行操作。 https://github.com/OfficeDev/Open-Xml-PowerTools/tree/master
git clone https://github.com/EricWhiteDev/Open-XML-SDK (master) 目录下:C:\Users\user\Documents\WindowsPowerShell\Modules
并且“Visual Studio 2019”目录位于以下位置:
C:\Users\user\Documents\Visual Studio 2019
所以,同级为“WindowsPowerShel”目录。
git clone https://github.com/OfficeDev/Open-Xml-PowerTools/tree/master(master ) 与1同目录下即C:\Users\user\Documents\WindowsPowerShell\Modules
通过 Visual Studio 2019(Microsoft Visual Studio Community 2019 版本 16.6.5)打开项目目录“Open-XML-SDK”中的 Open-XML-SDK.sln。构建解决方案,然后从测试资源管理器运行“测试全部”。
通过 Visual Studio 2019 打开项目目录“Open-XML-PowerTools”中的 Open-XML-PowerTools.sln(同上)。构建解决方案,然后从测试资源管理器运行“测试全部”。
以管理员身份启动 PowerShell ISE 并确保将 Set-ExecutionPolicy 设置为 Unrestricted。
从 PowerShell 中,输入“Import-Module Open-XML-PowerTools”。但是出现错误说,
whereモジュール ディレクトリに有効なモジュール ファイルが見つからなかったため、指定されたモジュール 'Open-Xml-PowerTools' は読み込まれませんでした。発生場所 行:1 文字:1
意思是“因为在模块目录中找不到有效的模块文件,没有读取指定的模块'Open-Xml-PowerTools',出现行的位置:1 个字母:1”在日语中。
c# - 修改后的word文档没有保存在内存流中
我正在使用 Microsoft 图形 API 作为流从 SharePoint 获取 Word 文档,并更改该文件中的一些内容并将保存的内容下载为文件,但是当我打开文件时,修改后的内容不可用。下载的文件仍然显示原始内容。
从上面的代码中获得字节数组后,我将使用控制器中的这一行下载文件
我究竟做错了什么?
c# - 如何从 PresentationDocument 对象中获取字节数组或流
我有对 PowerPoint 文件进行切片和切块的 Open Office XML 代码。
由于 Open XML SDK 的性质,此代码中的大部分都在文件系统上的文件中读取和写入。目标是完全消除这些临时文件,并用字节数组和/或内存流替换它们。
其中一些代码将来自不同幻灯片源的 PowerPoint 合并在一起。下面是此代码的一个示例。想象一个包含 PowerPoint 演示文稿的数据库。 PmlDocument
是 Open XML Power Tools 中的一个类:
Wherebyte[] data
代表一个新的 PowerPoint PPTX,然后我可以将其保存回数据库。
这段代码工作得很好,因为在这个例子中我已经在使用字节数组了。当我必须处理PresentationDocument
对象时会出现问题。在我们的程序中已经对这些对象进行了大量处理,当前从这些对象获取字节数组的方法是这样做:
这不是我想要的。
不幸的是,似乎没有更好的方法从PresentationDocument
. 有谁知道如何在内存中做到这一点,也许是一个MemoryStream
对象?
注意:我读过OfficeTalk: Working with In-Memory Open XML Documents,但它似乎假设您已经有一个正确文档格式的字节数组。
asp.net-core - OpenXML MainDocumentPart.Document.Save() 似乎没有保存在 .Net 5 Core
我一直在将应用程序从 .net 框架移植到 .net 5。我正在尝试通过读取模板文件、使用 Open-XML-PowerTools 替换一些文本并保存新版本来生成 Word 文档。我无法让“Save()”做任何事情!
这里有一些稍微简化的代码来演示这个问题:
创建的文件只是旧文件的副本,没有替换。我可以看到使用调试器查看 MainDocument 的 innerXML 替换成功。它似乎只是没有写回流。
我试过使用.MainDocumentPart.PutXDocument();
而不是.Save()
- 它没有区别。
我正在使用 DocumentFormat.OpenXML 2.12 版、System.IO.Packaging 5.0.0 和 Open-XML-PowerTools 4.4.0
有什么想法吗?快把我逼疯了!
c# - 检查docx文件中是否存在单词
我在我的代码中加载了这个 docx 文件:
本文档在正文、页眉或页脚中包含单词“foo”,检查“foo”单词是否存在的最简单方法是什么?