Преобразование HTML-таблицы в профессиональный документ Excel

RedDeveloper
05.01.2023 11:39
Преобразование HTML-таблицы в профессиональный документ Excel

Это самый простой способ создания 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 (Content Delivery Network) в элементе <script>. Это позволит нам использовать функции, предоставляемые библиотекой, в нашем коде JavaScript.

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

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

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

  1. Получает элемент таблицы HTML с идентификатором "myTable" с помощью функции document.getElementById.
  2. Она создает новый объект рабочей книги Excel
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?

20.08.2023 18:21

Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией

20.08.2023 17:46

В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox

19.08.2023 18:39

Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest

19.08.2023 17:22

В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!

Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️

18.08.2023 20:33

Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL

14.08.2023 14:49

Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.