Я читаю содержимое файла Excel (расширение .xlsx), представляющего собой набор файлов XML, содержащихся в zip-файле.
Я пытаюсь прочитать некоторые из этих внутренних файлов XML с помощью Perl. Основной app.xml
файл, который я пытаюсь прочитать, показан ниже:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes">
<Application>Microsoft Excel</Application>
<DocSecurity>0</DocSecurity>
<ScaleCrop>false</ScaleCrop>
<HeadingPairs>
<vt:vector size="4" baseType="variant">
<vt:variant>
<vt:lpstr>Worksheets</vt:lpstr>
</vt:variant>
<vt:variant>
<vt:i4>4</vt:i4>
</vt:variant>
<vt:variant>
<vt:lpstr>Named Ranges</vt:lpstr>
</vt:variant>
<vt:variant>
<vt:i4>2</vt:i4>
</vt:variant>
</vt:vector>
</HeadingPairs>
<TitlesOfParts>
<vt:vector size="6" baseType="lpstr">
<vt:lpstr>Sheet1</vt:lpstr>
<vt:lpstr>Sheet2</vt:lpstr>
<vt:lpstr>Sheet3</vt:lpstr>
<vt:lpstr>Sheet4</vt:lpstr>
<vt:lpstr>Sheet3</vt:lpstr>
<vt:lpstr>Test1</vt:lpstr>
</vt:vector>
</TitlesOfParts>
<Company/>
<LinksUpToDate>false</LinksUpToDate>
<SharedDoc>false</SharedDoc>
<HyperlinksChanged>false</HyperlinksChanged>
<AppVersion>16.0300</AppVersion>
</Properties>
Раздел <HeadingPairs>
содержит две части
- Все не скрытые листы в файле Excel
- Все именованные диапазоны
Мне нужно изменить некоторые значения имени листа и мне нужно знать,
подраздел Worksheets
элемента HeadingPairs
будет всегда первым в произвольном файле Excel.
Если это не всегда первый, тогда у меня проблема. Я не могу сканировать его вообще, так как я имею дело с файлами Excel на нескольких языках, и для каждого языка переводится слово Worksheets
.
Я искал документацию структуры или схем для файла app.xml
, но не нашел ничего, что помогло бы.