<!DOCTYPE html>
<html>
<head>
  <meta name="robots" content="noindex">
  <title>SheetJS + Dojo Store Export Demo</title>
	<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/dojo/1.14.1/dijit/themes/claro/claro.css">
</head>
<body class="claro">
  <h1>SheetJS + Dojo Store Export Demo</h1>
  <br/>
  This demo exports data from a simple Dojo store, attempting to create a XLSX workbook.
  <br/>
  (this HTML page is not minified -- feel free to view source!)<br/><br/>
  <a href="https://docs.sheetjs.com">SheetJS CE Documentation</a><br/><br/>
<script>
  dojoConfig = {
    parseOnLoad: true,
    packages: [
      { name: "xlsx", location: "https://cdn.sheetjs.com/xlsx-latest/package/dist", main: "xlsx.full.min" }
    ]
  };
</script>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.14.1/dojo/dojo.js" data-dojo-config=""></script>
<script>
require([
  "dojo/store/Memory",
  "dijit/registry",
  "xlsx"
], function(Memory, registry, _XLSX) {
  /* create simple Memory store */
  var data = [
    { Name: "Bill Clinton", Index: 42 },
    { Name: "GeorgeW Bush", Index: 43 },
    { Name: "Barack Obama", Index: 44 },
    { Name: "Donald Trump", Index: 45 },
    { Name: "Joseph Biden", Index: 46 }
  ];
  var store = new Memory({data: data});

  /* pull all data rows from the store */
  var rows = store.query(function() { return true; });

  /* generate SheetJS workbook */
  var ws = XLSX.utils.json_to_sheet(rows);
  var wb = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(wb, ws, "Export");

  /* write to file */
  XLSX.writeFile(wb, "SheetJSDojoStoreExport.xlsx");
});
</script>
</body>
</html>