Вот моя большая проблема. Мне нужно добавить кнопку в существующий проект на 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 в первый раз, но не могу использовать другие методы