2010-05-13 69 views
3

我需要创建一个脚本,用于从复杂的Excel 2003文件(在单个工作表内有多个工作表和不同的表)中提取一些数据,并生成需要的不同XML文件针对给定的XSD文件进行验证。从Excel文件创建有效XML文件的最佳工具

我的首选语言是Python; 来创建和验证XML文件我会去lxml
你对解析XLS文件有何建议?
xlrd适用于复杂Excel文件的正确工具吗?
或者我是否需要手动将所有工作表转换为CSV格式,并逐行读取文件,拆分并获取数据?

我接受C#,VB6,VBA建议。

+0

难道是.xslx Office 2007格式? – Tomalak 2010-05-13 07:15:48

+0

脚本或进程是否可以访问Excel? – Adrian 2010-05-13 08:13:40

+0

@Adrian当然。 – systempuntoout 2010-05-13 08:15:25

回答

2

[免责声明:我xlrd的作者]

xlrd很适合为这种工作。从PyPI获取最新版本。从教程找到here的味道。 XLSX支持在alpha测试中;如果您需要,请发邮件给我。 save-as-CSV方法的尴尬和损失是促使我编写xlrd的原因之一。

+0

你的图书馆工作就像一个魅力,再次感谢。 – systempuntoout 2010-11-18 15:10:25

2

Xlrd没问题。我们广泛使用它来导入XLS文件,其中包含多个工作表和以自定义(非Latin-1)编码方式呈现的数据。

0

我不能回答xlrd/python是否是正确的工具 - 因为我不太了解python。

但是有很多方法可以访问excel数据......主要的是你有VBA直接构建到Excel中。

然后,你必须Ado.net See David Hayden's article here它允许你通过任何DOTNET的语言访问数据......甚至IronPython

+0

表有多个表(不同行上的标题),在这种情况下,ADO也能工作吗? – systempuntoout 2010-05-13 09:01:17

+0

我试过ADO.net,它对复杂的表单不合适。把它们看作是独立的床单。 xlrd看到他们正确,但那么你必须导入python :-) – 2012-10-01 08:24:52

1

我确信此任务的最简单解决方案是将Excel VBA与MSXML解析器一起使用。查看here了解一些链接如何在VBA中使用MSXML分析器来读取XML文件;我认为,您可以轻松地将它用于编写XML文件。