2015-05-11 10 views
0

Я хочу, чтобы экспортировать таблицу из HTML в файл первенствовать с помощью этой функцииЭкспорт данных в определенном месте Javascript

var tableToExcel = (function() { 
    var uri = 'data:application/vnd.ms-excel;base64,'; 
    var template = '<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>{table}</table></body></html>'; 
    var base64 = function (s) { 
     return window.btoa(unescape(encodeURIComponent(s))) 
    } 
    var format = function (s, c) { 
     return s.replace(/{(\w+)}/g, 
      function (m, p) { return c[p]; }) 
    } 

    return function (table, name) { 
     if (!table.nodeType) 
      table = document.getElementById(table) 
     var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML } 
     var url = uri + base64(format(template, ctx)); 
     window.location.href = url; 
    } 
})() 

По умолчанию имя файла, кажется, Download.xls, я уже могу установить его на другой один с помощью этой функции, которая обертывает загрузку (я скорректировал первую функцию, теперь возвращает url вместо того, чтобы открывать ее в браузере).

function download(table, name) { 
var link = document.createElement('a'); 
link.download = "LoL.xls"; 
link.href = tableToExcel(table, name); 
link.click(); 
} 

Однако он всегда загружает immidiatly при вызове функции (например, нажав на кнопку). Я бы хотел щелкнуть по кнопке - выбрать имя файла и, что более важно, местоположение, а затем загрузить файл excel.

Возможно ли изменить местоположение для загрузки? Есть ли способ получить приглашение для загрузки (имя + местоположение)?

рассматривает

+1

Возможный дубликат: http://stackoverflow.com/questions/6677281/user-specified-download-location – TomSlick

+0

Я не уверен, что это то же самое, что я только хочу экспортировать данные, я не могу найти место для вставки заголовка в свой код , У вас есть предложение? –

+0

Как насчет этого: http://stackoverflow.com/questions/364946/how-to-make-pdf-file-downloadable-in-html-link Проверьте второй ответ сверху. – TomSlick

ответ

0

Как отмечалось в этом вопросе уже: User specified download location

это не представляется возможным, чтобы заставить «сохранить как» диалог, пользователь должен указать в своих браузерных вариантов, если он хочет для выбора места загрузки или если используется значение по умолчанию

Смежные вопросы