Это самый простой способ создать Excel из таблицы HTML.

Я использовал здесь библиотеку XLSX, которая представляет собой библиотеку JavaScript для создания файлов Excel и управления ими. Он является частью библиотеки SheetJS и спроектирован так, чтобы быть простым в использовании и гибким.

С библиотекой XLSX вы можете создавать новые файлы Excel, читать и изменять существующие, а также сохранять их в различных форматах. Он поддерживает широкий спектр функций, включая форматирование ячеек, проверку данных и сводные таблицы.

<html>
<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.16.1/xlsx.full.min.js"></script>
  <style>
    table {
      border-collapse: collapse;
    }
    td, th {
      border: 1px solid black;
      padding: 0.5em;
    }
  </style>
</head>
<body>
  <table id="myTable">
    <tr>
      <th>Name</th>
      <th>Age</th>
      <th>Gender</th>
    </tr>
    <tr>
      <td>Alice</td>
      <td>25</td>
      <td>Female</td>
    </tr>
    <tr>
      <td>Bob</td>
      <td>30</td>
      <td>Male</td>
    </tr>
    <tr>
      <td>Charlie</td>
      <td>35</td>
      <td>Male</td>
    </tr>
  </table>
  <br>
  <button onclick="generateExcel()">Generate Excel</button>
  <script>
    function generateExcel() {
      // get the table element
      var table = document.getElementById("myTable");
      
      // create a new Excel workbook object
      var wb = XLSX.utils.table_to_book(table);
      
      // save the workbook to an Excel file
      XLSX.writeFile(wb, "table.xlsx");
    }
  </script>
</body>
</html>

Первая строка HTML-страницы указывает, что это HTML-документ. Элемент <head> содержит информацию о странице, такую ​​как заголовок, стили и скрипты.

В данном случае мы включаем библиотеку XLSX, связывая ее с CDN (сеть доставки контента) в элементе <script>. Это позволит нам использовать функции, предоставляемые библиотекой, в нашем коде JavaScript.

Элемент <style> содержит код CSS (каскадные таблицы стилей), определяющий стиль страницы. В этом случае мы указываем, что таблицы не должны иметь пробела между ячейками (border-collapse: collapse;) и что ячейки таблицы должны иметь сплошную черную рамку и отступы 0,5em.

Элемент <body> содержит содержимое HTML-страницы, отображаемой в веб-браузере. В этом случае у нас есть таблица HTML с идентификатором «myTable», которая содержит данные для четырех человек. У нас также есть элемент <button> с событием onclick, которое вызывает функцию generateExcel при нажатии кнопки.

Элемент <script> содержит код JavaScript, который запускается в веб-браузере. В этом случае мы определили функцию с именем generateExcel, которая делает следующее:

  1. Он получает элемент таблицы HTML с идентификатором «myTable», используя функцию document.getElementById.
  2. Он создает новый объект книги Excel