Экспорт HTML-таблицы в Excel с помощью CSS - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь экспортировать таблицу HTML в Excel, сохраняя стиль таблицы. Я искал в Интернете и нашел несколько примеров, но ни один из них не работает, как ожидалось. У них есть проблемы, такие как CSS не работает или заголовки не поддерживаются.

Это код, который у меня есть, но файл загружается без расширения XLS.

$(function() {
  $("#btnExport").click(function(e) {
    window.open('data:application/vnd.ms-excel,' + $('#dvData').html());
    e.preventDefault();
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div id="dvData">
  <table>
    <tr>
      <th>Column One</th>
      <th>Column Two</th>
      <th>Column Three</th>
    </tr>
    <tr>
      <td>row1 Col1</td>
      <td>row1 Col2</td>
      <td>row1 Col3</td>
    </tr>
    <tr>
      <td style="background-color: #ff0000">row2 Col1</td>
      <td>row2 Col2</td>
      <td>row2 Col3</td>
    </tr>
    <tr>
      <td>row3 Col1</td>
      <td>row3 Col2</td>
      <td><a href="http://www.jquery2dotnet.com/">http://www.jquery2dotnet.com/</a>
      </td>
    </tr>
  </table>
</div>

https://jsfiddle.net/lesson8/jWAJ7/

Я использовал код по этой ссылке, но он не работал: https://www.codeproject.com/Tips/755203/Export-HTML-table-to-Excel-With-CSS

плагин table2excel.js также не работает https://www.jqueryscript.net/table/Export-Html-Table-To-Excel-Spreadsheet-using-jQuery-table2excel.html

1 Ответ

0 голосов
/ 06 июня 2019

Экспорт таблицы HTML в файл Excel в автономный режим и другие возможности редактирования Excel. Это становится сложнее, когда нам нужен CSS таблицы. Вот пример приложения, демонстрирующего экспорт в Excel. Поместите приведенный ниже код в свою часть страницы.

var tableToExcel = (function () { var uri = 'data: application / vnd.ms-excel; base64,' , template = ' {} Лист {Таблица}' , base64 = function (s) {return window.btoa (unescape (encodeURIComponent (s)))} , format = function (s, c) {return s.replace (/ {(\ w +)} / g, function (m, p) {return c [p];})} функция возврата (таблица, имя) { if (! table.nodeType) table = document.getElementById (таблица) var ctx = {рабочий лист: имя || «Рабочий лист», таблица: table.innerHTML} window.location.href = uri + base64 (format (template, ctx)) } }) ()
...