我正在使用select和for xml子句从sql server生成xml文件 生成的xml文件在excel中打开,我需要为每个列/字段添加自定义标头 我可以在sql脚本中指定自定义标头名吗?
根据Shnugo的要求,这里是使用的xml的样本
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<VendorServices>
<VendorService>
<VendorServiceId>0</VendorServiceId>
<VendorId>0</VendorId>
<ServiceId>0</ServiceId>
<Cover>0</Cover>
<Percentage>0</Percentage>
<TechRateHr>0</TechRateHr>
<HelperRateHr>0</HelperRateHr>
</VendorService>
<VendorService>
<VendorServiceId>1</VendorServiceId>
<VendorId>1</VendorId>
<ServiceId>1</ServiceId>
<Cover>0</Cover>
<Percentage>0</Percentage>
<TechRateHr>0</TechRateHr>
<HelperRateHr>0</HelperRateHr>
</VendorService>
</VendorServices>
我可以用Excel 2013打开它,Excel问我是否要打开像xml表和其他一些选项,然后询问有关模式的创建
答案 0 :(得分:1)
我查看了你的例子。这不是一个真正的答案,而是评论的很多......也许它足以让你找到一个完整的解决方案。
嗯,Excel有(有限的)支持本地添加XML并将其视为数据源。如果包含架构(XSD),将使用它,否则,Excel将自动从您的数据创建架构。
我使用this online tool根据示例数据创建架构:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VendorServices">
<xs:complexType>
<xs:sequence>
<xs:element name="VendorService" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:byte" name="VendorServiceId"/>
<xs:element type="xs:byte" name="VendorId"/>
<xs:element type="xs:byte" name="ServiceId"/>
<xs:element type="xs:byte" name="Cover"/>
<xs:element type="xs:byte" name="Percentage"/>
<xs:element type="xs:byte" name="TechRateHr"/>
<xs:element type="xs:byte" name="HelperRateHr"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
如您所见,您的列标题是从元素名称创建的...我没有找到为元素标题添加不同信息。但也许有办法做到这一点......
如果您的文件中包含此架构或在Excel中保存为XML源,则至少可以使打开过程更容易。
您可以执行以下操作之一:
FOR XML PATH
导出您想要的元素名称的数据(如果需要帮助,可以显示您的实际查询)XSLT
转换现有XML XLSX
个文件只不过是一个ZIP文件,您可以将其重命名为FileName.zip
并打开。您只需要/xl/worksheets/*.xml
个文件。也许是sharedStrings.xml
。但我认为你可以轻松学习基本格式。 您可能会阅读此tutorial for Excel and XSD