@moonsoon Автор модуль не обновляет, поэтому я решил совместимую с BAS версией от 31.1.0 и выше, выложить версию модуля тут LegacyAI_0.16_BAS31_ASYNC_SCOPE_FIX.zip
скорее это делаю для себя, чтобы всегда иметь под рукой дистриб модуля)
@Sedoy, можно вот так
Если бы... Я перепробовал конвертить toString(), String(), ''+(0123456) и т.д и т.п. Все одно меняет на общий.
Вот это читал https://support.microsoft.com/en-us/office/number-format-codes-5026bbd6-04bc-48cd-bf33-80f18b4eae68 и пробовал, ни чего. Может от версии Офиса зависит, у меня 2019?
@Sedoy,
для вставить строку данные также нужно передавать в двумерном массиве чтобы они дополнительно не обрабатывались, а нет там в любом случае обработка
Уже убедился.
А вот, случаем не тестировался модуль на больших объемах? Есть смысл использовать его если у меня от 1мл строк или не стоит заморачиваться?
@GhostZ сегодня столкнулся с нежелательным преобразованием строки в число, строка "24.05", была преобразована в 24,05. Оказалось, что в модуле всем ячейкам присваивается числовой формат (cell.style("numberFormat", styles)), зачем?
Пришлось ноду использовать.
@UserTrue Например в ячейке раньше была дата, а при смене схемы таблицы там уже число, если не сменить формат то ексель будет воспринимать указанное число как дату (Так как дата это число с особым форматом), или было число, а ты указываешь текст и т.д
@GhostZ Пример кода модуля
const util = require(\"../ExcelUtil\");
var [file_path, sheet_index_or_name, data, sync] = [[XLSX_NODE_PARAMETERS]];
var [data, styles] = data;
data = util.format_data(data);
var [file, exist] = await util.create_or_open_file(file_path, true, false);
try{
var workbook = file.workbook;
var sheet = util.get_or_create_sheet(workbook, sheet_index_or_name, exist);
var cell = sheet.cell(\"A1\");
cell.value(data);
cell.style(\"numberFormat\", styles);
sync ? await util.save_file(workbook, file_path) : file.enableSave();
\tfile.setTimeout();
}catch(err){
file.enableSaveError(err);
file.setTimeout();
throw err;
};",```
@UserTrue,
numberFormatэто формат ячейки, например"@"- это текст, а"General"- это общий, подробнее тут.
Ну я как бы знаю его и использовал за долго до появления модуля. И вот в модуле же стоит cell.style("numberFormat", styles); и происходит авто преобразование, как бы сомнительно решение решать за юзера, какой формат нужен