Взломать 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
... но это произойдет не скоро. .
person
John Machin
schedule
30.04.2010