Действительно ли возможно использовать какую-либо причудливость HTML5 для экспорта локального устройства хранения данных в Excel?

Этот вопрос подобен, но не выделяет возможностей экспортировать данные. Мысли?

8
задан Community 23 May 2017 в 12:31
поделиться

2 ответа

Я думаю, вы неправильно понимаете ответ на вопрос, на который ссылаетесь, он предлагает вам использовать URI данных для экспорта.

Excel - это немного сложная цель, к которой нужно стремиться, поскольку формат файла сам по себе является двоичным ( или OOXML ). Если вам просто нужно что-то, что открывается в Excel, вы можете экспортировать более простой CSV как URI данных. Следующий код немного груб и готов и был протестирован только в Firefox:

function exportData() {
    var data = '';
    for (var i=1;i<=2;i++) {
        var sep = '';
        for (var j=1;j<=4;j++) {
            data +=  sep + document.getElementById(i + '_' + j).value;
            sep = ',';
        }
        data += '\r\n';
    }
    var exportLink = document.createElement('a');
    exportLink.setAttribute('href', 'data:text/csv;base64,' + window.btoa(data));
    exportLink.appendChild(document.createTextNode('test.csv'));
    document.getElementById('results').appendChild(exportLink);
}

Вот разметка страницы:

<input type="number" id="1_1" value="2">,
<input type="number" id="1_2" value="1">,
<input type="number" id="1_3" value="4">,
<input type="number" id="1_4" value="3">
<br>
<input type="number" id="2_1" value="1">,
<input type="number" id="2_2" value="2">,
<input type="number" id="2_3" value="3">,
<input type="number" id="2_4" value="4">
<br>
<button onclick="exportData()">Export as CSV</button>
<div id="results"></div>

Демо здесь . Нажмите кнопку, чтобы получить ссылку, нажмите ссылку, и вы получите файл. Измените значения, щелкните ссылку еще раз, и вы получите другой файл. Firefox заставлял меня каждый раз выбирать Excel, чтобы открывать его, но я не знаю, моя ли это конфигурация или общая проблема.

CSV in Excel 2007
(источник: boogdesign.com )

Как я уже сказал, тестировался только в Firefox, и он будет работать только в браузерах, которые поддерживают URI данных . Вам также понадобится функция window.btoa () или реализация собственного кодировщика base64 .

26
ответ дан 5 December 2019 в 05:55
поделиться

Мне неизвестны библиотеки Javascript, которые могут создавать файл Excel. Но вы можете просто экспортировать его как HTML или CSV - обратите внимание, что Javascript не может создавать файлы (пока), но рабочий черновик HTML учитывает это: http://www.w3.org/TR/file-writer- api /

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

Вы можете создать файл для загрузки с помощью Downloadify: https://github.com/dcneiner/Downloadify

2
ответ дан 5 December 2019 в 05:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: