При экспортировании отчета в виде XLS-файла из Salesforce с помощью кнопки "Export Details" при последующем открытии этого Excel-файла на компьютере офис показывает предупреждение о том, что формат файла не совпадает с его расширением:

Несовпадение формата и расширения XLS-файла

Можно нажать на кнопку "Да", чтобы открыть файл. Или нажать на кнопку "Нет", чтобы не открывать :)

Справку Microsoft вообще смысла нет открывать - там нет нужной информации.




 

Полный текст предупреждения на русском языке:

 

Действительный формат открываемого файла (report.xls) отличается от указываемого его расширением  имени файла. Перед открытием данного файла убедитесь, что он не поврежден и получен из надежного источника. Открыть этот файл сейчас?

 

Полный текст предупреждения на английском языке:

 

The file format and extension of report.xls don't match. The file could be corrupted or unsafe. Unless you trust its source, don't open it. Do you want to open it anyway?

 

 Самое интересное, что при экспорте из Salesforce было четко указано:

  • формат файла - Excel Format .xls
  • кодировка файла - Unicode (UTF-8), хотя тип выбранной кодировки абсолютно не влияет на ситуацию.

 Несовпадение формата и расширения XLS-файла

 

Как убрать сообщение о несовпадении формата и расширения у XLS-файла?

Для того, чтобы это предупреждение для данного файла больше не отображалось при его открытии, нужно пересохранить этот файл, изменив его тип с "Веб-страница (*.htm,*.html)" на "Лист Microsoft Excel 97-2003 (*.xls)" или на "Книга Excel с поддержкой макросов (*.xlsx)":

Несовпадение формата и расширения XLS-файла

При сохранении нового отчета придется повторять эту процедуру снова :((((

 

Как навсегда убрать сообщение о несовпадении формата и расширения у XLS-файла?

На компьютере с OS Windows можно отключить это предупреждение и сделать так, чтобы MS Office сразу открывал файлы, у которых тип не совпадает с содержимым. Для этого необходимо внести изменение в реестр в соответствующей ветке установленной версии MS Office.

Необходимо в ветке реестра [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\14.0\Excel\Security] (указанный путь для MS Ofice 2012!) создать параметр DWORD (32 бита) с именем ExtensionHardening и значением 0.

Для упрощения данной операции можно создать текстовый файл со следующим содержимым:

 

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\14.0\Excel\Security]
"EnableDEP"=dword:00000000
"ExtensionHardening"=dword:00000000

 

сохранить и сменить расширение с .txt на .reg

Затем запустить этот файл и разрешить внесение изменений в реестр Windows.

После этого сообщение "Действительный формат открываемого файла (report.xls) отличается от указываемого его расширением  имени файла. Перед открытием данного файла убедитесь, что он не поврежден и получен из надежного источника. Открыть этот файл сейчас?" не будет отображаться, и файл будет сразу открываться.




  

 

Как открывать такие файлы на смартфоне?

С одной стороны это не проблема - получив отчет из Salesforce, пересохранить файл и спокойно дальше с ним работать, но, с другой стороны, данное несовпадение не дает просматривать эти файлы на мобильных устройствах - например, ни iOS-приложение Outlook не может отобразить содержимое таких файлов, ни приложение Office (ох уж эти Microsoft!):

Несовпадение формата и расширения XLS-файла   Несовпадение формата и расширения XLS-файла

Поиск в интернете - как решить эту проблему, не был продуктивным. Была найдена информация, что компания Microsoft, начиная с MS Office 2007 внедрила эту проверку и назвала её "Extension Hardening" (с натяжкой можно перевести это на русский как "Усиление расширения"), эта проверка гарантирует (или не гарантирует и сообщает об этом :), что содержимое открываемого файла соответствует указанному расширению.

Для файлов с расширением XLS тип файла (MIME) должен быть в формате XLS (BIFF8) - application/vnd.ms-excel, чтобы открываться без предупреждения.

Если тип файла имеет другой формат, то пользователь обязательно получит предупреждение в сплывающем окне, поскольку содержимое файла отличается от расширения или типа MIME. Например, HTML-файл имеет следующий MIME: text/html.




  

Проверить MIME не сложно. Если открыть XLS-файл-отчет? полученный из Salesforce, то сразу в первой строке видно, что тип файла - HTML. И html-теги в следующих строках дополнительно это подтвеждают:

Несовпадение формата и расширения XLS-файла

Получается, что по факту Salesforce экспортирует HTML-файл, но расширение к нему прицепляет экселевское...

Умный Excel при открытии таких файлов воспринимает и отображает их нормально, но для полноценного дальнейшего использования все-таки надо их вручную преобразовывать в другой тип (XLS или XLSX).

Странно, что при экспорте нет возможности указать типа файла - HTML/HTM, в этом случае он открывался бы для просмотра в другом приложении, а не в капризном Excel.

 

Но это не всё!

При создании XLS-файлов в Salesforce с помощью APEX похожее предупрежедение также может отображатся, так как в этом случае файл с расширением XLS скорее всего будет представлять собой XML-файл.

 

Комментарии (1)

This comment was minimized by the moderator on the site

Данная проблема с несовпадением расширения и типа файла актуальна только для Salesforce Classic.
В версии Lightning используются иные - более современные способы генерирования XLS-файлов, так все норм!

Здесь не опубликовано еще ни одного комментария

Оставьте свой комментарий

  1. Опубликовать комментарий как Гость.
0 Значки
Вложения (0 / 3)
Поделитесь своим местоположением
Яндекс.Метрика