Не сохраняется файл в хроме
Код сохранения таблицы html в excel
table = document.getElementById('grid__staticWrapper') var ctx = {worksheet: "excel" || 'Worksheet', table: table.innerHTML} window.location.href = ('data:application/vnd.ms-excel,' + encodeURIComponent(ctx.table)); Были проведены следующие опыты Так всё работает ctx.table = ctx.table.substring(0,1000000) Не работает ctx.table = ctx.table.substring(0,2000000) Общая длина 13 млн символов В консоле ошибок нет. Только в Network пишет status-canseled или data. В фаерфоксе всё работает. Господа, есть идеи как решить проблему? |
АrnowtАА, есть ограничение на длину URL и в разных браузерах оно разное (возможно даже в версиях этих браузеров). Определи поддержка каких браузеров (версий) нужна, установи какой самый минимальный лимит на data url среди них, дроби таблицу этим лимитом на таблицы, получится несколько файлов увы, вот такая идея есть...
|
Rise, Спасибо.
НЕ удобно будет для юзеров |
АrnowtАА,
Цитата:
|
Решение проблемы.
table = document.getElementById('grid__staticWrapper').innerHTML var parts = [ new Blob(['<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>'] , {type: 'vnd.ms-excel'}), table + '</table></body></html>', new Uint16Array([33]) ]; // Construct a file var file = new File(parts, 'integrator.xls', { type: "overide/mimetype" // optional - default = '' }); var fr = new FileReader(); fr.onload = function(){ $("[data-show = 'excel']").attr("href", URL.createObjectURL(file)).attr("download", file.name).text('Скачать'); } fr.readAsText(file); }) |
Часовой пояс GMT +3, время: 22:01. |