Лучшие инструменты для создания допустимых файлов XML из файла Excel - PullRequest
3 голосов
/ 13 мая 2010

Мне нужно создать сценарий, который извлекает некоторые данные из сложного файла Excel 2003 (с несколькими листами и разными таблицами на одном листе) и создает различные XML-файлы, которые необходимо проверять на соответствие данному XSD-файлу.

Мой любимый язык - Python; чтобы создать и проверить файлы XML, я бы пошел с lxml .
Что вы предлагаете для разбора файлов XLS?
xlrd - подходящий инструмент для сложных файлов Excel?
Или мне нужно вручную преобразовать все листы в CSV и читать файлы построчно, разбивая и получая данные?

Я также принимаю предложения C #, VB6, VBA.

Ответы [ 4 ]

2 голосов
/ 16 мая 2010

[правовая оговорка: я - автор xlrd]

xlrd вполне подходит для такой работы. Получить последнюю версию от PyPI . Получить вкус из учебника, найденного здесь . Поддержка XLSX находится в альфа-тестировании; напишите мне, если вам это нужно. Неловкость и потеря подхода «сохранить как CSV» была одной из причин, побудивших меня написать xlrd

2 голосов
/ 13 мая 2010

Xlrd в порядке. Мы широко используем его для импорта файлов XLS, полных ссылок и формул с несколькими листами и данными, представленными в пользовательской (не латинской-1) кодировке.

1 голос
/ 16 мая 2010

Я убежден, что наиболее простым решением для этой задачи является использование Excel VBA вместе с синтаксическим анализатором MSXML. Посмотрите здесь для некоторых ссылок, как использовать синтаксический анализатор MSXML в VBA для чтения файлов XML; я думаю, вы можете легко принять это для написания XML-файлов.

0 голосов
/ 13 мая 2010

Я не могу ответить, является ли xlrd / python подходящим инструментом для работы - поскольку я недостаточно хорошо знаю python.

Но есть много способов получить доступ к данным Excel ... в основном у вас есть VBA, встроенный непосредственно в Excel.

Тогда у вас есть Ado.net См. Статью Дэвида Хейдена здесь , которая позволяет вам получить доступ к данным через любой язык DotNet ... даже IronPython

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...