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:47
Новичок на форуме
Отправить личное сообщение для АrnowtАА Посмотреть профиль Найти все сообщения от АrnowtАА
 
Регистрация: 13.05.2011
Сообщений: 7

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

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

АrnowtАА,
Сообщение от АrnowtАА
Общая длина 13 млн символов
Интересно, кому нужна такая таблица в браузере?
Ответить с цитированием
  #4 (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