Взломать ваш путь через 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
... но это не так. скоро произойдет.