Я унаследовал модуль электронных таблиц, который читает файлы * .xlsx с функциями XML. Приложение отображает данные с использованием имен листов, и эта часть модуля довольно повреждена.
У меня нет месяца, чтобы найти и прочитать спецификации формата Office Open XML, поэтому я быстро взломал несколько примеров файлов:
Открыть xl/workbook.xml
и цикл /workbook/sheets
:
- Схватить имена с
name
.
- Получить идентификаторы от
r:id
.
- Использовать порядок файлов в качестве порядка отображения.
Открыть xl/_rels/workbook.xml.rels
и цикл /Relationships
с фильтрацией по Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet
:
- Карта с именем
Id
.
- Карта в файл через
Target
.
Корректен ли этот алгоритм?