Взлом вашего пути через XML не должен быть слишком сложным ... но есть осложнения. Только один пример: OOo в своей мудрости решила не писать адрес ячейки явно. Нет атрибута ячейки, например address="E10"
или column="E"
; вам нужно подсчитать строки и столбцы.
Пяти последовательные пустые ячейки представлены
<table:table-cell table:number-columns-repeated="5" />
В number-colums-repeated
атрибутах по умолчанию «1», а также относится к непустым клеткам.
Ухудшается, когда вы сливаете клетки; вы получаете тег covered-table-cell
, который на 90% совпадает с тегом table-cell
, а атрибуты number-columns-spanned
и number-rows-spanned
необходимо учитывать при подсчете столбцов и строк.
Атрибут table:table-row
может иметь атрибут number-rows-repeated
. Это можно использовать для повторения содержимого целой непустой строки, но чаще всего это видно, когда имеется более 1 последовательных пустых строк.
Итак, даже если вы будете удовлетворены подходом «работает над моими данными», это не тривиально.
Возможно, вам понравится ODFpy. Обратите внимание на второе предложение: «« В отличие от других более удобных API, это, по сути, слой абстракции чуть выше формата XML ».« Существует сценарий ODF-to-HTML, который (если он написан для ODS, а также для ODT) может быть взломан, чтобы получить то, что вы хотите.
Если вы предпочитаете «работать с данными почти каждого и поддерживаться и иметь интерфейс, который вам знаком с», вам может потребоваться дождаться функциональности в xlrd
... но это не так. скоро произойдет.
Некоторые подсказки и небольшой код находятся на http://solyaris.wordpress.com/2007/07/06/reading-open-document-with-python/ Похоже, что это не должно быть слишком, слишком сложно (как только вы взломаете свой путь через XML. – msw
@msw: * Выглядит * как будто это не должно быть слишком сложно ... но с тех пор (почти 3 года назад) блоггер не слышался ;-) –
Можете ли вы зависеть от openoffice устанавливается? OOo API имеет привязки python.Хотя API немного сбивает с толку, использование его должно быть более надежным, чем взлом xml. – intuited