Могу ли я каким-либо образом прикрепить файл Excel к моему HTML или Javascript для использования в качестве базы данных?

#javascript #html #excel

#javascript #HTML #excel

Вопрос:

Я хочу автоматически заполнить данные пользователя на моем веб-сайте, и мне это нужно для получения данных из файла Excel. Таким образом, данные на моем веб-сайте автоматически изменятся, если они будут обновлены в Excel. К сожалению, мне нужно сделать это, используя только ванильный Javascript.

Ответ №1:

Нет. Вы не можете * использовать ванильный JavaScript для извлечения данных из файла Excel, расположенного на вашем сервере. Однако, если вы хотите заполнить данные на своей странице из файла разметки и использовать что-то вроде JSON или XML, это гораздо более выполнимо и, я думаю, отвечает вашему варианту использования. Вот простой пример:

data.js :

 var xhr = new XMLHttpRequest();

xhr.responseType = 'json';
xhr.open('GET', 'data.json');

xhr.onload = function() {
  build_table(xhr.response);
}

function build_table(data) {
  var result = '';
  for (var i = 0; i < data.length; i  ) {
    result  = build_row(data[i]);
  }
  document.getElementById('data').innerHTML  = resu<
}

function build_row(data) {
  var result = '<tr>';
  result  = '<td>'   data.firstname   '</td>';
  result  = '<td>'   data.lastname   '</td>';
  result  = '<td>'   data.country   '</td>';
  result  = '</tr>';
  return resu<
}
  

index.html :

 <head>
  <title>AJAX Example</title>
  <script src="data.js"></script>
</head>
<body>
  <table id="data">
    <tr>
      <th>First Name</th>
      <th>Last Name</th>
      <th>Country</th>
    </tr>
  </table>
</body>
  

data.json :

 [
    {
        "firstname": "John",
        "lastname": "Smith",
        "country": "United States"
    },
    {
        "firstname": "Alice",
        "lastname": "Lastname",
        "country": "Germany"
    },
    {
        "firstname": "Bob",
        "lastname": "Bobson",
        "country": "United States"
    }
]
  

Если вам необходимо работать с данными Excel, я бы использовал библиотеки Python openpyxl и json для чтения и записи ваших данных в этот файл разметки соответственно, хотя я уверен, что аналогичные библиотеки существуют для выбранного вами языка.

Я не думаю, что следующее применимо, но просто для полноты картины: если это вариант для вас, вы могли бы заставить свой веб-сервер создать этот HTML перед его отправкой, используя один из нескольких вариантов для вашего уровня доступа к данным ( openpyxl является одним из них).

* Буквально говоря, можно получить доступ к .xlsx файлу через AJAX, разархивировать его с помощью zip.js или аналогичного и обработать его содержимое XML. Я не думаю, что вы хотите это делать.