Как конвертировать несколько таблиц в Excel нескольких рабочих листов в JavaScript - PullRequest
0 голосов
/ 26 февраля 2019

Это мой код для нескольких листов.Я хочу две разные таблицы в одном файле Excel.Прямо сейчас у меня есть две структуры данных, Player Info и BankDetail.Однако поведение таково, что я получаю обе структуры данных в одном листе.

Не могли бы вы помочь в этом.Две вкладки листа созданы успешно.

var ctx = "";
var workbookXML = "";
var worksheetsXML = "";

var format = function(s, c) {
  return s.replace(/{(\w+)}/g, function(m, p) {
    return c[p];
  })
};

tmplWorksheetXML = '<Worksheet ss:Name="{nameWS}"><Table>{rows}</Table></Worksheet>'

if (data.PlayerInfo.length != 0) {
  var xcelTable = "<Row>"
  xcelTable += "<tr><th>PlayerId</th><th>PlayerType</th><th>UploadedBy</th><th>UploadedWhen</th><th>Filename</th></tr>"
  for (var i = 0; i < data.ListGDPRVendorDocuments.length; i++) {
    xcelTable += "<tr><td>" + data.PlayerInfo[i].PlayerId + "</td><td>" + data.PlayerInfo[i].PlayerType + "</td><td>" + data.PlayerInfo[i].UploadedBy + "</td><td>" + data.PlayerInfo[i].UploadedWhen + "</td><td>" + data.PlayerInfo[i].Filename + "</td></tr>";
  }
  xcelTable += "</Row>";

  ctx = {
    rows: xcelTable,
    nameWS: 'mydoc1'
  };
  worksheetsXML += format(tmplWorksheetXML, ctx);
}

if (data.BankDetail.length != 0) {
  var xcelTable1 = "<Row>"
  xcelTable1 += "<tr><th>BankName</th><th>IsFinanceInformationSubmitted</th></tr>"
  for (var i = 0; i < data.BankDetail.length; i++) {
    xcelTable1 += "<tr><td>" + data.BankDetail[i].BankName + "</td><td>" + data.BankDetail[i].IsFinanceInformationSubmitted + "</td></tr>";
  }
  xcelTable1 += "</Row>";

  ctx = {
    rows: xcelTable1,
    nameWS: 'mydoc1'
  };
  worksheetsXML += format(tmplWorksheetXML, ctx);
}

var base64 = function(s) {
  return window.btoa(unescape(encodeURIComponent(s)))
};

ctx = {
  created: (new Date()).getTime(),
  worksheets: worksheetsXML
};

var uri = 'data:application/vnd.ms-excel;base64,'
var template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body>{worksheets}</body></html>';
workbookXML = format(template, ctx);

console.log(workbookXML);

var link = document.createElement("A");
link.href = uri + base64(workbookXML);
link.download = 'Workbook.xls';
link.target = '_blank';
document.body.appendChild(link);
link.click();
document.body.removeChild(link)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...