Как получить данные Excel по номерам ячеек - PullRequest
0 голосов
/ 21 февраля 2019

Я хочу получить данные Excel в HTML.Я использую следующий скрипт, но я хочу использовать номер ячейки вместо заголовка Excel, поскольку заголовок может быть другим.

Затем я хочу преобразовать эти данные HTML в JSON и отправить их в базу данных, чтобы заголовок Excelне имеет никакого эффектаЯ хочу игнорировать заголовок Excel и использовать местоположение ячейки только для извлечения данных

<div id="dvExcel"></div>
<input type="file" id="fileUpload" />
<input type="button" id="upload" value="Upload" onclick="Upload()" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/jszip.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/xlsx.js"></script>

function Upload() {
  var fileUpload = document.getElementById("fileUpload");
  var regex = /^([a-zA-Z0-9\s_\\.\-:])+(.xls|.xlsx)$/;
  if (regex.test(fileUpload.value.toLowerCase())) {
    if (typeof(FileReader) != "undgefined") {
      var reader = new FileReader();

      if (reader.readAsBinaryString) {
        reader.onload = function(e) {
          ProcessExcel(e.target.result);
        };
        reader.readAsBinaryString(fileUpload.files[0]);
      } else {
        reader.onload = function(e) {
          var data = "";
          var bytes = new Uint8Array(e.target.result);
          for (var i = 0; i < bytes.byteLength; i++) {
            data += String.fromCharCode(bytes[i]);
          }
          ProcessExcel(data);
        };
        reader.readAsArrayBuffer(fileUpload.files[0]);
      }
    } else {
      alert("This browser does not support HTML5.");
    }
  } else {
    alert("Please upload a valid Excel file.");
  }
};

function ProcessExcel(data) {
  //Read the Excel File data.
  var workbook = XLSX.read(data, {
    type: 'binary'
  });

  var firstSheet = workbook.SheetNames[0];
  var excelRows = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[firstSheet]);
  var table = document.createElement("table");
  table.border = "1";
  var row = table.insertRow(-1);
  var headerCell = document.createElement("TH");
  headerCell.innerHTML = "Id";
  row.appendChild(headerCell);

  for (var i = 0; i < excelRows.length; i++) {
    //Add the data row.
    var row = table.insertRow(-1);
    var cell = row.insertCell(-1);
    cell.innerHTML = excelRows[i].Id;
  }

  var dvExcel = document.getElementById("dvExcel");
  dvExcel.innerHTML = "";
  dvExcel.appendChild(table);
};

Вместо excelRows[i].Id Я хочу использовать номер ячейки Excel, поскольку заголовок Id может отличаться, но данныеЯ хочу этого поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...