21
Я экспортирую HTML
таблицу в xls
foramt. После экспорта, если вы открываете его в Libre Office, он отлично работает, но тот же открывает пустой экран в Microsoft Office.Экспорт таблицы HTML в Excel с использованием Javascript
Не хочу решение jquery
, пожалуйста, предоставьте любое решение javascript
. Пожалуйста, помогите.
function fnExcelReport() {
var tab_text = "<table border='2px'><tr bgcolor='#87AFC6'>";
var textRange;
var j = 0;
tab = document.getElementById('table'); // id of table
for (j = 0; j < tab.rows.length; j++) {
tab_text = tab_text + tab.rows[j].innerHTML + "</tr>";
//tab_text=tab_text+"</tr>";
}
tab_text = tab_text + "</table>";
tab_text = tab_text.replace(/<A[^>]*>|<\/A>/g, ""); //remove if u want links in your table
tab_text = tab_text.replace(/<img[^>]*>/gi, ""); // remove if u want images in your table
tab_text = tab_text.replace(/<input[^>]*>|<\/input>/gi, ""); // reomves input params
var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");
if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) // If Internet Explorer
{
txtArea1.document.open("txt/html", "replace");
txtArea1.document.write(tab_text);
txtArea1.document.close();
txtArea1.focus();
sa = txtArea1.document.execCommand("SaveAs", true, "Say Thanks to Sumit.xls");
} else //other browser not tested on IE 11
sa = window.open('data:application/vnd.ms-excel,' + encodeURIComponent(tab_text));
return (sa);
}
<iframe id="txtArea1" style="display:none"></iframe>
Call this function on
<button id="btnExport" onclick="fnExcelReport();"> EXPORT
</button>
<table id="table">
<thead>
<tr>
<th>Head1</th>
<th>Head2</th>
<th>Head3</th>
<th>Head4</th>
</tr>
</thead>
<tbody>
<tr>
<td>11</td>
<td>12</td>
<td>13</td>
<td>14</td>
</tr>
<tr>
<td>21</td>
<td>22</td>
<td>23</td>
<td>24</td>
</tr>
<tr>
<td>31</td>
<td>32</td>
<td>33</td>
<td>34</td>
</tr>
<tr>
<td>41</td>
<td>42</td>
<td>43</td>
<td>44</td>
</tr>
</tbody>
</table>
вы пытались открыть реальный HTML с '
... ... 'в Excel, а не только'Смотрите: http://stackoverflow.com/questions/38377796/export-html-table-to-excel-doesnt-open-in-office-2010 –
@Aprillion Я пытался с CSV, но я не хочу, чтобы CSV был расширение. –
ответ
На 2016-07-12, Microsoft толкнул security update для Microsoft Office. Одним из последствий этого обновления было предотвращение того, чтобы файлы HTML из недоверенных доменов открывались Excel, потому что они не могут быть открыты в защищенном режиме.
Существует ТАКЖЕ параметр реестра, который запрещает Excel открывать файлы с расширением .XLS, содержимое которого не соответствует официальному формату файла XLS, хотя по умолчанию он «предупреждает», а не «отрицает».
До этого изменения удалось сохранить данные HTML в файл с расширением XLS, и Excel откроет его правильно - возможно, giving a warning first, что файл не соответствует формату Excel, в зависимости от значения пользователя для
ExtensionHardening
ключ реестра (или соответствующие значения конфигурации).У Microsoft есть made a knowledge-base запись о новом поведении с некоторыми предлагаемыми обходными решениями.
Несколько веб-приложений, которые ранее полагались на экспорт HTML-файлов в виде XLS, столкнулись с трудностями в результате обновления - SalesForce - один из примеров.
Ответы до 12 июля 2016 года на этот и подобные вопросы, скорее всего, будут недействительными.
Следует отметить, что файлы, созданные на БРАУЗЕРЕ из удаленных данных, не падают на эту защиту; это только препятствует загрузке файлов из удаленного источника, которому не доверяют. Поэтому одним из возможных подходов является создание HTML-файла с маркировкой .XLS локально на клиенте.
Другим, конечно же, является создание допустимого файла XLS, который Excel откроет в защищенном режиме.
UPDATE: Microsoft выпустила патч, чтобы исправить это поведение: https://support.microsoft.com/en-us/kb/3181507
источник
2016-08-07 03:23:31
Возможно, связано: [Response.ContentType application/vnd.ms-excel xls перестает работать] (http://stackoverflow.com/questions/38466169/response-contenttype-application-vnd-ms-excel-xls-stopped-working) и [Таблица в Excel больше не работает [duplicate] (http://stackoverflow.com/questions/38649275/table-to-excel-no-longer-works) и [Экспорт Excel в PHP-проблемы] (http: // stackoverflow .com/questions/38799257/excel-exporting-in-php-issues) ... – pnuts
также: [HTML-файл .xls больше не открывается в Excel [дубликат] (http://stackoverflow.com/questions/38826600/html-based-xls-file-doesnt-open-in-excel-больше) и [Javascript excel экспортирует файл, заблокированный окнами [duplicate] (http://stackoverflow.com/questions/38827962/javascript-excel-export- файл-блокированного по-окна). – pnuts
Не увлечь этот ответ, но я подумал, что стоит упомянуть. Excel может открывать файлы .CSV и .TSV, оба из которых очень просты в создании в Javascript. Я не видел никакой конкретной документации, говорящей, что они изменили это поведение; возможно, это то, что вы ищете? – MikeJannino
SheetJS кажется идеально подходит для этого.
Чтобы экспортировать таблицу в файл первенствовать использовать код в этой link (наряду с SheetJS)
Просто подключите идентификатор вашего
table
элемента вexport_table_to_excel
См Demo
источник
2016-08-07 03:46:37 jlynch630
Похоже, что он не обновлялся в последнее время - это актуально?(На самом деле я не знаю никаких изменений в формате, который бы это не вызвал, но это первый вопрос, который я собираюсь получить, если я предлагаю его ...) –
Я не думаю, что формат изменился , и единственным предупреждением, которое дает мне Excel, является: «Файлы из Интернета могут содержать вирусы. Включить редактирование?» – jlynch630
добавить это к вашему головной:
<meta http-equiv="content-type" content="text/plain; charset=UTF-8"/>
и добавить в качестве JavaScript:
Jfiddle: http://jsfiddle.net/cmewv/537/
источник
2016-08-11 13:57:00
Если формат CSV хорошо для вас, вот пример.
Насколько я знаю, Excel может обрабатывать CSV.
источник
2016-08-11 17:56:12 ElMesa
не работает в IE –
попробовать этот
сценарий для этого
источник
2016-08-12 10:23:35
источник
2017-09-12 06:51:41
Смежные вопросы