Member 14367500 Ответов: 1

Пожалуйста, укажите тип контента для открытия файла xlsx в браузере


он работает для MS-OFFICE EXCEL 2007, но не работает в EXCEL 2010 или более поздней версии

1. приложение var тип данных = '/донгов.openxmlformats-officedocument.квалификатором.лист

это работает для excel 2007, но не работает для excel 2010. пожалуйста мне нужна помощь

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

Я пробовал все это, но это не работает для MS-OFFICE 2010

1. приложение var тип данных = '/донгов.МС-в формате Excel.12'
2. приложение var тип данных = '/донгов.в MS-Excel, а в base64,';
3. var dataType = 'application/octet-stream';
4. приложение var тип данных = '/донгов.в MS-Excel с';

1 Ответов

Рейтинг:
0

MadMyche

Код MIME для файлов XLSX выглядит следующим образом
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet


Member 14367500

ВАР тип ="применение/донгов.openxmlformats-officedocument.квалификатором.лист";

Member 14367500

JSP-файл
Превосходить js файл

функция exportExcel(tableID, filename = "){

ВАР downloadLink;
/приложения в /var тип данных = '/донгов.МС-в формате Excel.12'
//Ответ.Значение contentType ="применение/донгов.openxmlformats-officedocument.квалификатором.лист";
/ в / var тип данных ="применение/донгов.openxmlformats-officedocument.квалификатором.лист";

var dataType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
var tableSelect = document.getElementById(tableID);
var tableHTML = tableSelect.outerHTML.replace(/ /g, '%20');

// Укажите имя файла
filename = имя файла?имя файла:'excel_data';

// Создать элемент ссылки на скачивание
downloadLink = document.createElement("a");

document.body.appendChild(ссылка для скачивания);

если(навигатор.msSaveOrOpenBlob){
ВАР Blob-объект = новый большой двоичный объект (['ufeff\', tableHTML], {
тип: тип данных
});
навигатор.msSaveOrOpenBlob( Blob-объекта, именем);
}еще{
// Создайте ссылку на файл
downloadLink.href = 'data:' + dataType + ', ' + tableHTML;

// Установка имени файла
downloadLink.download = имя файла;

//запуск функции
downloadLink.нажмите();

}
}

это не сработало, как для приложения Office 2010/vnd.openxmlformats-officedocument.spreadsheetml.sheet

MadMyche

Похоже, что проблема не в типе контента, а в самом контенте, который не является допустимым файлом Excel.
Да, HTML-таблица будет работать (небрежно) в более старом формате; но это также не было допустимо во всей реальности

Member 14367500

Я надеюсь, что contenttype означает тип MIME
.XLSX-файл

MadMyche

Нет, на самом деле это означает контент-тип. Часто используется взаимозаменяемо с типом MIME но они разные

Content-Type в данном контексте представляет собой HTTP-заголовок, указывающий тип носителя ресурса, состоящий до 3 частей
1. тип носителя: двухкомпонентный идентификатор форматов файлов и содержимого
2. кодировка: стандарт кодировки символов.
3. граница: требуется для составных объектов

MIME является стандартом для расширения формата электронной почты и имеет заголовки, содержащие аналогичную информацию
1. MIME версии
2. Тип Контента
3. Содержание-Диспозиция
4. ...и так далее

Member 14367500

я не устанавливал тип контента [то есть что-то вроде этого response.setContentType()],
вот и все в моем коде выше
var dataType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';

Member 14367500

я думаю, что это то, что вы имеете в виду
заголовок('Content-Disposition: attachment; filename="name_of_excel_file.xls");
но просто чтобы напомнить вам, что я не использую .aspx-это javascript в spring mvc