这是我的大麻烦。我需要将按钮添加到AngularJS上的现有项目。用户单击它时,站点必须打开文件打开对话框。然后用户必须选择.xslx文件,应用程序必须从选择书本中复制模板表,向其中添加数据并打开文件保存对话框。 现在我有:
$scope.fileNameChanged = function (excel_loader) {
var files = excel_loader.files;
var xlxsFile = files[0];
var fileName = xlxsFile.name;
alert("got filename " + fileName);
};
function addCellToSheet(worksheet, address, value) {
/* cell object */
var cell = {t:'?', v:value};
/* assign type */
if(typeof value == "string") cell.t = 's'; // string
else if(typeof value == "number") cell.t = 'n'; // number
else if(value === true || value === false) cell.t = 'b'; // boolean
else if(value instanceof Date) cell.t = 'd';
else throw new Error("cannot store value");
/* add to worksheet, overwriting a cell if it exists */
worksheet[address] = cell;
/* find the cell range */
var range = XLSX.utils.decode_range(worksheet['!ref']);
var addr = XLSX.utils.decode_cell(address);
/* extend the range to include the new cell */
if(range.s.c > addr.c) range.s.c = addr.c;
if(range.s.r > addr.r) range.s.r = addr.r;
if(range.e.c < addr.c) range.e.c = addr.c;
if(range.e.r < addr.r) range.e.r = addr.r;
/* update range */
worksheet['!ref'] = XLSX.utils.encode_range(range);
}
<label class="import-file">
<input type="file" id = "excel_loader" class="btn btn-default" accept = ".xlsx" onchange="angular.element(this).scope().fileNameChanged(this)">
</label>
但是我不知道如何解析xlsx文件并在上面添加数据。我尝试了100500个示例,但它们没有成功%(实际上我是第一次看到AngularJS,但是不能使用其他方法