Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.07.2016, 11:48
Новичок на форуме
Отправить личное сообщение для АrnowtАА Посмотреть профиль Найти все сообщения от АrnowtАА
 
Регистрация: 13.05.2011
Сообщений: 7

Не сохраняется файл в хроме
Код сохранения таблицы 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.
В фаерфоксе всё работает.
Господа, есть идеи как решить проблему?
Ответить с цитированием
  #2 (permalink)  
Старый 29.07.2016, 12:46
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

АrnowtАА, есть ограничение на длину URL и в разных браузерах оно разное (возможно даже в версиях этих браузеров). Определи поддержка каких браузеров (версий) нужна, установи какой самый минимальный лимит на data url среди них, дроби таблицу этим лимитом на таблицы, получится несколько файлов увы, вот такая идея есть...
Ответить с цитированием
  #3 (permalink)  
Старый 29.07.2016, 12:47
Новичок на форуме
Отправить личное сообщение для АrnowtАА Посмотреть профиль Найти все сообщения от АrnowtАА
 
Регистрация: 13.05.2011
Сообщений: 7

Rise, Спасибо.
НЕ удобно будет для юзеров

Последний раз редактировалось АrnowtАА, 29.07.2016 в 14:23.
Ответить с цитированием
  #4 (permalink)  
Старый 29.07.2016, 18:45
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

АrnowtАА,
Сообщение от АrnowtАА
Общая длина 13 млн символов
Интересно, кому нужна такая таблица в браузере?
Ответить с цитированием
  #5 (permalink)  
Старый 02.08.2016, 16:12
Новичок на форуме
Отправить личное сообщение для АrnowtАА Посмотреть профиль Найти все сообщения от АrnowtАА
 
Регистрация: 13.05.2011
Сообщений: 7

Решение проблемы.

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);
        })

Последний раз редактировалось АrnowtАА, 02.08.2016 в 16:14.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно сохранить загруженный файл? 2chan Node.JS 10 03.04.2016 23:11
Преобразование Base64 в файл в IndexedDb pakskiy Общие вопросы Javascript 4 15.04.2015 13:26
jsdoc - почему не работает файл конфигурации? aRpi AJAX и COMET 0 11.01.2014 20:01
Не работает файл htacces kilogram Серверные языки и технологии 16 17.04.2012 20:57
Как можно достать файл из <input type="file"/> преобразовать файл в base 64 maxcab Events/DOM/Window 2 28.06.2011 22:52