Импорт из Excel Angular JS - PullRequest
       24

Импорт из Excel Angular JS

0 голосов
/ 16 мая 2018

Я пытаюсь импортировать Excel в UI-сетки.Я пытаюсь использовать библиотеку js xlsx.Я могу преобразовать xlsx в JSON, но я не уверен, как я могу заполнить xlsx в пользовательской сетке.Ниже приведена ui-grid

$scope.samplesGridOptions = {
enableColumnResizing: true,
enableRowSelection: true,
multiSelect: false,
enableGridMenu: true,
enableCellEditOnFocus: true,
columnDefs: [
    { field: 'externalID', displayName: 'External ID' },
    { field: 'apexLotNum', displayName: 'APEX Lot' },
    {
        field: 'chamberName',
        displayName: 'Chamber Name',
        editType: 'dropdown',
        editableCellTemplate: 'ui-grid/dropdownEditor',
        enableCellEdit: true, editDropdownOptionsArray: $scope.chamberNameList,
        editDropdownIdLabel: 'value',
        editDropdownValueLabel: 'value'
    }
],
gridMenuCustomItems: [],
onRegisterApi: function (gridApi) {
    $scope.samplesGridAPI = gridApi;
    $scope.samplesGridOptions.data = $scope.virtualSampleList;
}
};

Я пытаюсь использовать библиотеку js-xlsx ниже для анализа загруженного файла Excel.Но не уверен, как вставить это в пользовательский интерфейс, плохо знакомый с javascripting и библиотеками

    $scope.ParseExcelDataAndSave = function () {
        var file = $scope.SelectedFileForUpload;
        if (file) {
            var reader = new FileReader();
            reader.onload = function (e) {
                var data = e.target.result;
                var workbook = XLSX.read(data, { type: 'binary' });
                var sheetName = workbook.SheetNames[0];
                var excelData = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
                var jsonData = JSON.stringify(excelData);
                if (jsonData.length > 0) {
                        **//Here I am not sure how can I populate the ui-grid from the JSON**
                }
                else {
                    $scope.Message = "No data found";
                }
            }
            reader.onerror = function (ex) {
                console.log(ex);
            }

            reader.readAsBinaryString(file);
        }
    }
...