TechieeGeek Ответов: 1

Предупреждение о безопасности оконных форм при загрузке/открытии файла excel


В форме окна при загрузке или открытии файла excel каждый раз отображается предупреждение: "формат файла и расширение имени файла не совпадают. Файл может быть поврежден или небезопасен. Если вы не доверяете его источнику, не открывайте его. Ты все равно хочешь его открыть?"

Как я могу предотвратить это предупреждение?

Что я уже пробовал:

Предупреждение появляется даже после изменения расширения с .xls на .xlsx.

Code I am using:-

Response.Clear();
Response.ContentType = "application/x-msexcel"; 
Response.AddHeader("Content-Disposition", "attachment; filename=File.xls");
Response.ContentEncoding = Encoding.UTF8; 
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
div1.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();

F-ES Sitecore

Вы можете попробовать другой тип MIME (ContentType), google "xlsx mime type". Однако проблема может заключаться просто в том, что вы отправляете html из "div1" и сообщаете браузеру, что это файл xlsx, но это не так, это html.

Mehdi Gholam

Html-файлы не являются XLS-файлами, следовательно, ошибка, используйте "text/html"

TechieeGeek

Изменение расширения не решило никаких проблем. Получаю то же самое сообщение.

1 Ответов

Рейтинг:
0

Dave Kreskowiak

У вас есть mime-тип "application/x-msexcel", но содержимое файла, который вы пишете, является HTML, а не допустимым файлом EXCEL.

Просто поместив что-то похожее на лист в Excel в файл, вы не сделаете его файлом Excel.

Вам придется либо изменить тип mime на что-то более подходящее для HTML-контента, например "text/html", либо использовать библиотеку, например OpenXML или ClosedXML, для создания фактического содержимого Excel. То, что вы делаете, зависит от того, что ваше приложение ожидает от содержимого файла.


TechieeGeek

Я попытался изменить тип MIME на HTML, как было предложено. Тем не менее я получаю ту же ошибку при открытии excel. Так что в таком случае использование внешней библиотеки является единственным решением.

Dave Kreskowiak

Это потому, что HTML - файл не является файлом Excel. То, что вы написали в файл, не является чем-то, что Excel может понять. Вы должны использовать библиотеку для записи соответствующего содержимого в файл, чтобы Excel мог его прочитать.