Name
sn_table_bldr_wzd.ExcelSpreadsheetColumns
Description
No description available
Script
var ExcelSpreadsheetColumns = Class.create();
ExcelSpreadsheetColumns.prototype = {
initialize: function(queryParams) {
this.headerRow = this._getHeaderRow(queryParams.headerRow);
this.attachmentSysId = this._getAttachmentSysId(queryParams.attachmentSysId);
this.sheetNumber = this._getSheetNumber(queryParams.sheetNumber);
},
build: function() {
var attachmentStream = new GlideSysAttachment().getContentStream(this.attachmentSysId);
var parser = new sn_impex.GlideExcelParser();
parser.setHeaderRowNumber(this.headerRow);
parser.setSheetNumber(this.sheetNumber);
if (!parser.parse(attachmentStream)) {
throw gs.getMessage("Attachment could not be parsed as an Excel Spreadsheet '{0}'", this.attachmentSysId);
}
var columns = {};
var tableInfo = parser.getTableInfo();
for (var name in tableInfo) {
columns[name] = {
label: name,
internal_type: tableInfo[name].getType(),
max_length: Math.max(tableInfo[name].getLength(), TBWConstants.MIN_COLUMN_LENGTH)
};
}
return {
columns: columns
};
},
_getAttachmentSysId: function(sysId) {
if (!sysId) {
throw gs.getMessage("Attachment SysID is required ");
}
var res = Validators.isValidAttachment(sysId);
if (!res.isValid) {
throw TBWUtil.error(res);
}
return sysId;
},
_getHeaderRow: function(headerRowParam) {
// Note: GlideExcelParser expects a zero-based header row number.
var row = headerRowParam ? (+headerRowParam[0] - 1) : 0;
if (isNaN(row) || typeof row !== "number") {
throw gs.getMessage("Header row invalid '{0}'", headerRowParam);
}
return row;
},
_getSheetNumber: function(sheetNumberParam) {
// Note: GlideExcelParser expects a zero-based sheetNumber
var sheetNumber = sheetNumberParam ? (+sheetNumberParam[0] - 1) : 0;
if (isNaN(sheetNumber) || typeof sheetNumber !== "number") {
throw gs.getMessage("Sheet Number invalid '{0}'", sheetNumberParam);
}
return sheetNumber;
},
type: 'ExcelSpreadsheetColumns'
};
Sys ID
a9d43b1f77cd011066cfa9ff9a5a99dd