Я использую SheetJS для загрузки листа Excel в ui.table
.При загрузке я добавляю технический идентификатор к именам столбцов, который мне понадобится позже в моем проекте.Вот как я добавляю технический идентификатор:
getColumnNames: function(worksheet, aData) {
var firstRow = aData[0];
var oColumns = [];
var cells = Object.keys(worksheet);
for (var i = 0; i < Object.keys(firstRow).length; i++) {
var columnName = Object.keys(firstRow)[i];
var technicalName = "COL" + ('0' + (i+1)).slice(-2);
oColumns.push({
columnId: columnName,
technicalId: technicalName
});
}
return oColumns;
},
При создании модели я связываю columnId
и technicalId
с каждым столбцом.
Мои пользователи должны иметьвозможность переупорядочить столбцы таблицы для сопоставления с другой таблицей.(Контекст здесь не очень актуален) Так что в основном под моей загруженной таблицей есть еще одна таблица, и пользователь должен иметь возможность изменить порядок столбцов «uploadTable», чтобы они соответствовали таблице ниже.
Теперь по порядкуЧтобы сделать правильное отображение, мой технический идентификатор должен быть скорректирован после того, как изменение порядка выполнено.Поэтому я хотел бы добавить функцию, которая выполняется после того, как пользователь нажал кнопку «обновить».
Эта функция должна настраивать техническую columnNames
.-> Например, данные загружаются, столбец в позиции 1 имеет технический идентификатор "COL01", теперь он перетаскивается в позицию 2 -> технический идентификатор должен измениться на COL02 и наоборот.
Я считаю, что единственныйспособ сделать это - получить доступ к DomRef таблицы, потому что это единственное место, где хранится текущая структура таблицы, но я не совсем уверен, как мне поступить.
Моя функция переупорядочения получает толькоданные пока:
onReorder : function() {
var table = this.getView().byId("uploadData");
var currentStructre = table.getDomRef();
},
Буду признателен за любые намеки на это.Если что-то неясно, я с удовольствием объясню!