Excel XML 表格标题带有空格

发布于 2024-10-20 13:26:04 字数 792 浏览 0 评论 0原文

我通过 Web 服务公开系统中的表,以在 Excel 工作表中使用(作为 XML 源)。表的标题可以包含空格和其他在 XML 元素名称中无效的字符。 Excel 可以满足这一要求,我的系统也可以满足这一要求,但中间格式 (XML) 却不能。

那么,XML 源是否可以告诉 Excel(通过架构或数据)使用与元素名称不同的表标题?例如:

<xs:element name="place-of-origin">
  <xs:annotation>
    <xs:appinfo><od:displayName>Place of origin</od:displayName></xs:appinfo>
  </xs:annotation>
</xs:element>

编辑: 这是一个 示例 XML 文件 和 < a href="http://paste.pocoo.org/show/351645/" rel="nofollow">对应的 XSD。在 Excel 中打开该表会生成一个列标题为“sex_of_person”的表格 — 所以问题是:XML 或架构如何表示该标题应该是“sex of person”(带空格)或“#$!%”(对不起),或任何其他无效的 XML 名称 字符串?

I'm exposing tables in my system via a webservice to use within Excel worksheets (as an XML Source). The tables can have headers that contain spaces and other characters not valid in XML element names. Excel is fine with that, and my system is fine with that, but the intermediate format (XML) is not.

So, can the XML Source tell Excel (via schema or data) to use a table heading different from the element name? E.g. something like:

<xs:element name="place-of-origin">
  <xs:annotation>
    <xs:appinfo><od:displayName>Place of origin</od:displayName></xs:appinfo>
  </xs:annotation>
</xs:element>

Edit: here's a sample XML file and corresponding XSD. Opening this in Excel yields a table with a column heading “sex_of_person” — so the question is: how can the XML or schema express that this heading should be “sex of person” (with spaces), or “#$!%” (excuse me), or any other string not valid as an XML name?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

审判长 2024-10-27 13:26:04

您说您使用 XML 作为“数据源”,从而使用 Excel 的 XML 功能(从 2003 版开始)。

当您在 Excel 中打开 XML 文件时,Excel 会提供将其转换为可读形式的选项(并提供自动推断 XML 架构的选项)。

完成此操作后,Excel 将在后台“使用”XML 文件(以及隐式生成的 XML 架构,但您可以使用现有架构)作为 XML 源。

带有打开的 XML 文件和 XML 源的 Excel 2007

从现在开始,对于 Excel,可以更改列标题(Excel 有一个将 sex_of_person 从 XML 文件链接到表的第二列的内部方法)。
List with Changed column header

为了演示这一点,我在示例中删除了除一行之外的所有行。请注意,当我在 XML 窗格中选择“sex_of_person”时,Excel 如何选择第二行“人的性别”(没有标题)。现在,当我单击刷新(在我的德语版本中:“Datan aktualisieren”)时,Excel 会重新加载 XML 文件并将值插入相应的列中。使用“导入”,您甚至可以更改 XML 源(前提是格式保持不变)。

因此,从现在开始,我不会在 Excel 中打开 XML 文件(正如您可能所做的那样),但我会打开此 Excel 文件,该文件从现在开始定义演示文稿(即从 XML 元素到列的链接)并包含链接到 XML 文件。

我不太确定这就是你的意思。

问候
安德烈亚斯

You say you use your XML as a "data-source" thereby using the XML-functionality of Excel (beginning with version 2003).

When you open an XML-file in Excel, Excel offers you the option to transform it into a readable form (and giving you the option to automatically infere an XML-schema).

Once you have done this, Excel has -- in the background -- 'used' the XML-file (and the implicitly generated XML-schema, but you can use your excisting schema) as an XML-Source.

Excel 2007 with opened XML-file and XML-source

From now on for Excel the column title can be changed (Excel has an internal way to link sex_of_person from the XML file to the second column of the table).
List with changed column headers

To demonstrate this I have in my example deleted all the lines except one. Note how Excel selects the second row "Sex of person" (without the header) when I choose "sex_of_person" in the XML pane. Now when I click refresh (in my german version: "Daten aktualisieren") Excel reloads the XML file and inserts the values in the corresponding columns. Using "Import" you can even change the XML source (provided that the format stays the same).

So from now on I don't open the XML file in Excel (as you possibly have done) but I open this Excel-file that from now on defines the presentation (i.e. links from XML-element to a column) and includes the link to the XML-file.

I am not absolutely sure this is what you meant.

Regards
Andreas

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文