У нас есть Excel добавить в построенный с использованием офиса. js. Где мы читаем данные из диапазона данных (ie A1: C10), который может состоять из столбца даты. Пожалуйста, обратитесь к изображению ниже
Наше дополнение считывает данные и формирует набор данных CSV, который загружается, когда пользователь нажимает кнопку загрузки. Мы читаем данные, используя следующие строки кода
Excel.run({ delayForCellEdit: true }, async context => {
this.rangeInput.nativeElement.blur();
let sheet;
sheet = context.workbook.worksheets.getItem("Sheet1");
let range = sheet.getRange("A1:D10");
range.load("values");
range.load("numberFormat");
this.isDataLoading = true;
this.updateLoading();
await context.sync();
let rangeData = range.values;
let dataFormat = range.numberFormat;
})
. В приведенном выше коде мы извлекли формат данных каждой ячейки, загрузив числовой формат диапазона (ierange.load("numberFormat")
, который возвращает формат массив. Мы используем этот форматный массив, чтобы решить, есть ли у нас дата в нашем выборе. Основная проблема заключается в том, что у нас есть много форматов даты, поддерживаемых в Excel, и мы внедряем логи преобразования даты c для каждого шаблона отдельно. иметь любой обобщенный метод c, который преобразует серийный номер Excel в любой поддерживаемый (ie все форматы в 270 местоположениях) шаблон даты в Excel.
Чтобы просмотреть шаблоны, поддерживаемые в Excel, попробуйте выбрать другие шаблоны, отформатировав ячейка. (ie щелкните правой кнопкой мыши ячейку -> Формат ячейки-> Дата, затем измените формат).
мы попробовали { ссылка }, который конвертируется в формат ISO, но мы ожидаем, что даты будут в том же порядке, что и пользовательские форматы в Excel (ie среда, апрель 8 2020 должен быть таким же, когда мы конвертируем его из серийного номера Excel).
Пример серийного номера Excel - «22.08.2011 - это 40777 в Excel». Пожалуйста, нажмите здесь , чтобы понять сериал Excel