Пример проблемы на ровном месте
Иногда в работе возникают проблемы действительно на ровном месте.
Все разработчики читают документацию, делают продукт согласно документации, радуются... А потом им приходит письмо с текстом вроде "У вас продукт плохой, ссылки в документе не работают!".
И разработчик невольно загрустит, особенно когда поймёт, что проблема-то не в нём, а в монополисте, ПО которого тоже поддерживает эти документы, но изобретает свои "костыли", меняет формат и никому об этом не рассказывает.
Вот, буквально сегодняшняя проблема была закрыта следующим текстом:
Анализ XLSX-файла показал, что система СУВК формирует ссылки в файле по стандарту Microsoft.
Ниже, содержимое файла sheet1.xml.rels, который содержит ссылки, согласно стандарту:
Файл с ошибкой, который содержит неправильные с точки зрения Р7 (на основании стандарта) ссылки:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="https://suvk-cdn.mosenergosbyt.ru/contactmanage/" TargetMode="External"/></Relationships>
Ссылка на ресурс содержится файле xl/worksheets/sheet1.xml:
<hyperlink ref="A1" r:id="rId1" location="servicecard:317878226" xr:uid="{1A592582-CD4A-4935-A007-E532EE172353}"/></hyperlinks>
Правильно сформированный файл, в том формате, который понимает Р7:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="https://suvk-cdn.mosenergosbyt.ru/contactmanage/#servicecard:317878226" TargetMode="External"/></Relationships>
Ссылка на ресурс содержится файле xl/worksheets/sheet1.xml:
<hyperlinks><hyperlink r:id="rId1" ref="A1" tooltip=""/></hyperlinks>
Обходной вариант: использование ПО LibreOffice - это ПО понимает "особенность" собственного формата Microsoft.
Рекомендации разработчику: добавить аналогичную кнопку выгрузки в файл, но выгрузку в файл стандарта ODS (OpenDocument Spreadsheet). Ручное пересохранение файла в MS Excel в формат OSD приводит к тому, что с точки зрения ссылки из файла удаляются, т.к. находятся в неположенном месте.