标签: openxml

如何根据给定的 xml 数据计算 MS Office Powerpoint Shapes 的旋转值

我想获得正确的旋转值以从给定的 OOXML 数据绘制 MS office Powerpoint 2007 文件的形状,如下所示:

<p:sp>
            <p:nvSpPr>
                <p:cNvPr id="3" name="Rectangle 66" />
                <p:cNvSpPr>
                    <a:spLocks noChangeArrowheads="1" />
                </p:cNvSpPr>
                <p:nvPr />
            </p:nvSpPr>
            <p:spPr bwMode="auto">
                ***<a:xfrm rot="5400000">***
                    <a:off x="2443049" y="-1042472" />
                    <a:ext cx="304800" cy="4419600" />
                </a:xfrm>
                <a:prstGeom prst="rect">
                    <a:avLst />
                </a:prstGeom>
                <a:ln>
                    <a:headEnd />
                    <a:tailEnd />
                </a:ln>
            </p:spPr>
Run Code Online (Sandbox Code Playgroud)

旋转值指定为“xfrm rot = 5400000”。考虑到这一点,必须计算其适当的值,因此必须处理形状的高度和宽度以绘制形状。

openxml

5
推荐指数
1
解决办法
703
查看次数

在 OpenXML 中定位视频关系

所以我正在编写一个 pptx 解析器并使用 OpenXML 来加载数据。一切都进行得很顺利(这是谎言 - 我实际上已经准备好将计算机扔到房间里然后跳出窗口),但是我我在加载视频时遇到了一个我根本无法弄清楚的问题。问题是 OpenXML 似乎无法定位指定视频 URI 的关系标记。

我所做的是编写代码来循环浏览幻灯片中的各个部分并注销它们的 ID,如下所示:

SlidePart slidePart = ...;
foreach(var curPart in slidePart.Parts)
  Console.WriteLine("Part ID: " + curPart.RelationshipId);
Run Code Online (Sandbox Code Playgroud)

这样效果很好 - 它注销了 slide.xml.rels 文件中指定的所有关系 - 除了相关文件的视频关系。我可以在 rels 文件中看到视频关系,它与幻灯片中的 videoFile 标签的链接 ID 匹配,但我不知道如何通过代码获得它。我的图像加载工作正常(OpenXML 可以找到图像关系)。视频关系是否与其他关系不同?如何获取视频 URI?

video openxml

5
推荐指数
1
解决办法
750
查看次数

如何知道 Word 文档中特定文本的字体大小(例如)?

这个想法很简单,但答案可能会变得复杂:

事实上,我可以检查字体大小的运行属性。

如果不存在,我需要检查应用于段落的样式以找到为字体大小定义的运行属性,然后是该样式的段落运行属性。

如果没有找到,我需要再次检查有关此样式所基于的样式的所有内容。

如果没有找到,我应该检查样式层次结构中的以下样式,然后继续直到达到默认样式。

我还需要检查上一段是否应用了样式。在这种情况下,应用的样式可以定义影响我正在处理的文本的下一段的样式。

如果没有样式影响我的段落,那么我需要查看样式部分的默认运行属性。之后,我应该查看同一部分中的默认段落属性。

如果什么都不适用,那么大小定义的责任就交给处理文档的应用程序。

我对吗?

我没有来自 OPenXML SDK 和/或 OpenXmlPowerTools 的任何帮助吗?

一个重要的方面是,除了文本字体大小之外,这个问题几乎扩展到任何段落或运行属性。

我的最终目标是根据格式确定一段文本是否是节标题(如heading1、heading2 等),但看起来很难得到像“一段文本的当前格式”这样简单的东西。为了让事情变得更难,我还需要处理(部分)编号,很多时候没有应用于段落的编号格式。

谢谢,

c# ms-word openxml openxml-sdk

5
推荐指数
1
解决办法
2738
查看次数

&lt;color indexed="81"&gt; 是什么意思?

我有一个由 Excel 2007 创建的文档:

<fileVersion appName="xl" lastEdited="4" lowestEdited="4" rupBuild="4506" codeName="{B7FE6334-C1A2-E50D-BD3D-5F4D41BBC2E3}"/>
Run Code Online (Sandbox Code Playgroud)

...在字体定义中包含以下颜色xl/styles.xml

<color indexed="81"/>
Run Code Online (Sandbox Code Playgroud)

我从ECMA标准中了解到<indexedColors>xl/styles.xml如果有这样的集合,则此颜色索引指的是集合,否则指的是标准中显示的默认调色板。我的问题是这个文档不包含<indexedColors>元素,默认调色板只有66个条目,所以我不知道81指的是什么。还有其他人吗?

有趣的是,谷歌搜索color indexed="81"返回了一些包含相同内容的示例 OpenXML 片段,但没有解释。

standards colors spreadsheet openxml ecma

5
推荐指数
1
解决办法
2049
查看次数

OPEN XML 将自定义不可见数据添加到段落/表格

有没有办法为一个段落存储额外的数据,在用户在 MS Word 中打开和保存文档后,这些数据会被保留下来。

为此,我一直在使用 CusotmXML,但事实证明这是不可能的,因为 MS-Word 从文档结构中删除了所有 CusotmXML 元素。

每个段落或表格都有一个 ID,我想将其“配对”到我的数据源。所以稍后当我再次阅读 docx 时,我可以识别文档中每个未更改的段落/表格的来源。

ms-word openxml openxml-sdk

5
推荐指数
1
解决办法
2103
查看次数

“WordprocessingDocument.Open”后文件损坏

我对此有问题:

using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(document, true)) { }
Run Code Online (Sandbox Code Playgroud)

使用上面的方法并尝试在 Word 中打开文档,显示文件已损坏的错误消息。有趣的是,对于 LibreOffice 文件来说是可以的。我在使用此代码之前和之后比较了 WinMarge 文件中的 xml 文件(在 docx 中),两者是相同的。差异仅在于 docx 文件的大小 - 为什么?

c# openxml

5
推荐指数
1
解决办法
2975
查看次数

.xlsx 和 .zip 之间的转换

我想操作Office Open XMLExcel 的格式,但即使只是.zip和之间的转换.xlsx也会产生错误:

  1. test.xlsx通过Excel创建一个非常简单的
  2. 右键单击test.xlsx=>Rename作为text.xlsx.zip
  3. 右键单击text.xlsx.zip=>Extract all到名为的文件夹text.xlsx
  4. 右键单击text.xlsx文件夹 => Send to=>Compressed (zipped) folder命名text_2.xlsx.zip
  5. 右键单击text_2.xlsx.zip=>Rename作为text_2.xlsx
  6. 用Excel打开text_2.xlsx,出现如下错误:

在此输入图像描述 在此输入图像描述

有谁知道那里出了什么问题吗?

openxml

5
推荐指数
1
解决办法
9022
查看次数

如何使用开放XML检索Excel的文化信息?

我的 Excel 文件中的数值用“.”存储。小数分隔符。我想知道,excel总是使用“.” 作为小数点分隔符?如果没有,那么如何检索 Excel 文件的文化信息以正确格式化十进制值?

谢谢。

.net excel culture cultureinfo openxml

5
推荐指数
1
解决办法
1066
查看次数

多个 css 类不起作用

我正在将 docx 转换为 html 格式(使用 apache poi)并将其作为电子邮件发送。

生成的 html 片段看起来像这样

<html>
<head>
	....
	<style>

		span.Normal{
			font-family: 'Arial';font-size: 9.0pt;
		}

		span.Title{
			font-family: 'Cambria';font-size: 28.0pt;color: #000000;
		}

		span.MySubtitle{
			font-family: 'Arial';font-size: 18.0pt;color: #000000;
		}

		span.MyTitle{
			font-family: 'Arial';font-size: 22.0pt;font-weight: bold;color: #000000;
		}

	...
	</style>
</head>
<body> 
....

	<p class="Normal Title MyTitle">
		<span id="_GoBack">
			<span class="Normal Title MyTitle">Welcome Message</span>
			<span class="Normal Title MyTitle"> </span>
			<span class="Normal Title MyTitle">Username</span>
		</p>
		<p class="Normal Title MySubtitle">
			<span class="Normal Title MySubtitle">Issues and Solutions</span>
		</p>

	...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Outlook 客户端无法识别多个 …

css outlook openxml apache-poi outlook-2010

5
推荐指数
2
解决办法
4915
查看次数

如何将条形图添加到 OpenXML 创建的文档中

我的 C# 应用程序使用 OpenXML 创建一个 MSWord 文档,其中已包含多个表。最后一部分是添加条形图。我找不到这个案例的好例子。

感谢您的帮助!

我正在从头开始创建该文档。从...开始:

using (WordprocessingDocument myDoc = WordprocessingDocument.Create(documentStream, WordprocessingDocumentType.Document, autoSave: true))
Run Code Online (Sandbox Code Playgroud)

然后我在 C# 代码中添加新的表格和段落。在我到达条形图之前,所有这些都在起作用。我找到了一个示例项目,它将饼图插入到Word文档中,但我不明白转换它的图表类型之间的差异。这是我找到的饼图示例项目:

https://code.msdn.microsoft.com/office/How-to-create-Chart-into-a7d424f6

感谢您的帮助!

openxml

5
推荐指数
1
解决办法
5372
查看次数