I'm trying to parse an Excel spreadsheet (.xlsx) into JSON.
I'm using the SheetJS node package for it.
However I can't realize such a simple thing as - how do I get a column name in the same format as it is stored internally?
Below is my code:
function _buildColumnsArray(range) {
// range = A1:CA38
// ...
// should return ['A', ..., 'Z', 'AA', ..., 'AZ', 'BA', ..., 'BZ', 'CA'...]
}
// --------
var workbook = XLSX.readFile(fileUrl),
sheets = workbook.Sheets,
result = {};
result.sheetNames = [];
for (var i = 0; i < workbook.SheetNames.length; i++) {
var sheet = workbook.Sheets[workbook.SheetNames[i]],
csvSheet = XLSX.utils.sheet_to_csv(sheet);
// '!ref' referring to a specific range by docs
if (sheet[!ref]) {
var columns = _buildColumnsArray(sheet[!ref]),
rows = _buildRowsArray(columns, csvSheet);
// build final result
result[workbook.SheetNames[i]] = {
columns: columns,
rows: rows
};
result.sheetNames.push(workbook.SheetNames[i]);
}
}
Here is what I'm currently trying which is not perfectly working: https://jsfiddle.net/t8hej9hu/