Excel 插件,用于将数据导出到 XML





5.00/5 (14投票s)
ExcelXMLExport 是一个 Microsoft Excel 2010 / 2013 插件,用于从 Excel 工作表生成 XML 数据。
引言
ExcelExportXML
是一个 Microsoft Excel 2010/2015 插件,用于从 Excel 工作表生成 XML 数据。 它使用 C# 在 Visual Studio 中开发。
它是一个非常简单的插件。 要了解它的工作原理,请考虑一个包含以下数据的 Excel 工作表。
国家 | 首都 | 洲 |
法国 | 巴黎 | 欧洲 |
德国 | 柏林 | 欧洲 |
印度 | 新德里 | 亚洲 |
印度尼西亚 | 雅加达 | 亚洲 |
使用该插件,可以将以上内容导出到以下 XML。
<sheet1>
<row>
<country>France</country>
<capital>Paris</capital>
<continent>Europe</continent>
</row>
<row>
<country>Germany</country>
<capital>Berlin</capital>
<continent>Europe</continent>
</row>
<row>
<country>India</country>
<capital>New Delhi</capital>
<continent>Asia</continent>
</row>
<row>
<country>Indonesia</country>
<capital>Jakarta</capital>
<continent>Asia</continent>
</row>
</sheet1>
安装插件后,您将在 Excel 功能区的“插件”选项卡上看到一个“生成 XML”按钮,如下所示。 单击“生成 XML”将弹出保存文件对话框,您可以在其中保存生成的 XML 文件。
用例 & 假设
当您在 Excel 中有表格数据并且第一行包含列标题时,ExcelExportXml
非常有用。 它的工作基于以下假设
- 第一行被视为列标题,并将转换为 XML 标签。
- 在标题行中遇到第一个空单元格后,将忽略右侧的其余列。
- 仅支持最多 '
Z
' 列,即最多 26 列。 - 所有值都为空的第一行将被视为工作表的结尾。
- 工作表名称和列名不应包含任何空格。
为什么不使用标准的“另存为 XML”功能
Excel 提供了多种导出 XML 数据的方法。 其中一种是“另存为”对话框中的“另存为 XML 数据”。 这需要定义 XML 映射,我认为这需要安装 Microsoft 的开发人员插件。
另一种选择是“另存为 XML 电子表格 2003”,它会生成以下 XML
<Worksheet ss:Name="Sheet1">
<Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="5" x:FullColumns="1"
x:FullRows="1" ss:DefaultRowHeight="15">
<Column ss:Width="51"/>
<Column ss:Width="54"/>
<Column ss:Width="51.75"/>
<Row ss:StyleID="s64">
<Cell><Data ss:Type="String">Country</Data></Cell>
<Cell><Data ss:Type="String">Capital</Data></Cell>
<Cell><Data ss:Type="String">Continent</Data></Cell>
</Row>
<Row>
<Cell><Data ss:Type="String">France</Data></Cell>
<Cell><Data ss:Type="String">Paris</Data></Cell>
<Cell><Data ss:Type="String">Europe</Data></Cell>
</Row>
<Row>
<Cell><Data ss:Type="String">Germany</Data></Cell>
<Cell><Data ss:Type="String">Berlin</Data></Cell>
<Cell><Data ss:Type="String">Europe</Data></Cell>
</Row>
<Row>
<Cell><Data ss:Type="String">India</Data></Cell>
<Cell><Data ss:Type="String">New Delhi</Data></Cell>
<Cell><Data ss:Type="String">Asia</Data></Cell>
</Row>
<Row>
<Cell><Data ss:Type="String">Indonesia</Data></Cell>
<Cell><Data ss:Type="String">Jakarta</Data></Cell>
<Cell><Data ss:Type="String">Asia</Data></Cell>
</Row>
</Table>
</Worksheet>
如您所见,以上可能不是您想要的。 它更多的是 Excel 工作表的表示,而不是数据的语义。 ExcelExportXML
虽然非常有限,但在您拥有表格数据并且第一行包含列标题的常见情况下非常有效。
为 Microsoft Excel 2010 编写插件
使用 Visual Studio 2010 Professional,创建 Excel 插件非常简单。 以下是我为 ExcelExportXml
遵循的步骤
步骤 # 1
创建一个类型为“Excel 2010 插件”的新项目。 该项目将有一个名为ThisAddin.cs的类文件。
步骤 # 2
要在 Excel 功能区上创建一个按钮,请右键单击该项目,然后选择“添加” - > “新建项”。
步骤 # 3
从新的项目列表中选择“功能区 (XML)”,并将功能区类命名为 Ribbon1
。 这将向项目添加两个文件,分别是Ribbon1.cs 和 Ribbon1.xml。
步骤 # 4
在 ThisAddin
类中添加以下代码
protected override Microsoft.Office.Core.IRibbonExtensibility
CreateRibbonExtensibilityObject()
{
return new Ribbon1();
}
步骤 # 5
在 Ribbon1.xml 中,定义将在 Excel 功能区上显示的按钮的属性。 onAction
属性指定单击按钮时将从 Ribbon1.cs 调用的方法 (onAction="OnTextButton"
)。
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns=http://schemas.microsoft.com/office/2009/07/customui
onLoad="Ribbon_Load">
<ribbon>
<tabs>
<tab idMso="TabAddIns">
<group id="MyGroup"
label="Export XML">
<button id="textButton" label="Generate XML"
screentip="Export to XML" onAction="OnTextButton"
supertip="Export excel sheet to XML file."/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
步骤 # 6
将以下方法声明添加到 Ribbon1.cs 并在其中实现您的功能。
public void OnTextButton(Office.IRibbonControl control)
{
//TODO:Add your implementation here
}
历史
- 2015 年 1 月 21 日:删除了列数的限制。 现在可以导出无限数量的列。
- 2011 年 12 月 7 日:首次发布