Я делаю генерацию XLSX, и моя программа генерирует битые файлы XLSX. Я делаю это с помощью ABAP XML преобразований , но я считаю, что проблема более распространена и будет представлена в любом инструменте генерации Open XML.
Я говорю о файлах данных листа , который находится в <file>.xlsx\xl\worksheets\
пути к архиву XLSX.
Если файл sheet1.xml
имеет номер из 16+ символов в значении ячейки, то есть <v>
tag
<?xml version="1.0" encoding="utf-8"?>
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<dimension ref="A1:C6"/>
<sheetViews>
<sheetView workbookViewId="0">
<selection activeCell="A1" sqref="A1"/>
</sheetView>
</sheetViews>
<sheetFormatPr defaultRowHeight="12.75"/>
<cols>
<col min="1" max="16384" bestfit="1" width="15" customWidth="1" style="0" hidden="0" outlineLevel="0"/>
</cols>
<sheetData>
<row r="1" spans="1:3 ">
<c r="A1" s="5" t="s">
<v>0</v>
</c>
<c r="B1" s="5" t="s">
<v>0</v>
</c>
<c r="C1" s="5" t="s">
<v>0</v>
</c>
</row>
<row r="2" spans="1:3 ">
<c r="A2">
<v>0000000001</v>
</c>
<c r="B2" t="s">
<v>1</v>
</c>
<c r="C2">
<v>000000000000000000</v>
</c>
</row>
<row r="3" spans="1:3 ">
<c r="A3">
<v>0000000003</v>
</c>
<c r="B3" t="s">
<v>0</v>
</c>
<c r="C3">
<v>000000000000000000</v>
</c>
</row>
</sheetData>
<pageMargins bottom="1" footer="0.5" header="0.5" left="0.75" right="0.75" top="1"/>
<headerFooter alignWithMargins="0"/>
</worksheet>
it выдает такую ошибку
However, if I manually change the sheet1.xml
inside the archive to 15 chars cell value
000000000000000
и перепаковать архив, то файл открывается нормально и этот столбец автоматически преобразован в числовой формат. Тот же результат будет достигнут, если я изменю свое преобразование XML соответственно, чтобы отправить его в XML альфа-значения, то есть преобразовать значения символов в числа на лету.
Путем проверки Открыть XML схемы формата Ничего не нашел о таком ограничении.
Откуда это ограничение?