Excel

Делитесь модулями
  • @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"- это общий, подробнее тут.

  • @GhostZ said in Excel:

    @UserTrue, numberFormat это формат ячейки, например "@" - это текст, а "General"- это общий, подробнее тут.

    Ну я как бы знаю его и использовал за долго до появления модуля. И вот в модуле же стоит cell.style("numberFormat", styles); и происходит авто преобразование, как бы сомнительно решение решать за юзера, какой формат нужен

  • @UserTrue, не моё решение, но проблемы не вижу так как если не дата то всегда устанавливается общий формат и из него можно без проблем преобразовать в любой формат действием установки стиля.
    b6962cd4-6048-4525-b0b4-26046f6385d3-image.png

  • @GhostZ said in Excel:

    @UserTrue, не моё решение, но проблемы не вижу так как если не дата то всегда устанавливается общий формат и из него можно без проблем преобразовать в любой формат действием установки стиля.

    Да у меня стоял текстовый стиль в ячейки, а модуль при записи форматирует в число

  • @UserTrue, в будущем добавлю отключение авто преобразования, пока можно указывать значение в виде двумерного массива [ ["24.05"] ], тогда оно не будет преобразовывается.

    70a20613-bff1-4048-af32-fb794f8ddae5-image.png

  • @GhostZ said in Excel:

    [ ["24.05"] ]

    А у меня и был двухмерный массив,
    2021-05-20_025725.png

    Доп:
    А ну да с запись в ячейку работает, а запись на лист нет. У меня был готовый двумерный массив, когда я столкнулся с этим

  • @UserTrue, да в других действиях записи преобразовывает всегда, а какой вообще смысл не прообразовывать такое число?

  • @GhostZ said in Excel:

    @UserTrue, да в других действиях записи преобразовывает всегда, а какой вообще смысл не прообразовывать такое число?

    А это не число, а день и месяц. Ну вот так захотел клиент ))

  • @UserTrue, мда, ясно, ну как доделаю модуль которым сейчас занят сделаю небольшое обновление ексель модуля, а пока можно двумерный массив записывать действием записи ячейки.

  • @GhostZ said in Excel:

    @UserTrue, мда, ясно, ну как доделаю модуль которым сейчас занят сделаю небольшое обновление ексель модуля, а пока можно двумерный массив записывать действием записи ячейки.

    Мне вообще не к спеху, я люблю ноду )) Просто, чтобы знал

  • Будет ли добавлена функция запуска макроса в excel?

  • @fiery said in Excel:

    Будет ли добавлена функция запуска макроса в excel?

    нет ) Модуль не подключается к екселю, а просто читает и редактирует файл.

  • Когда же модуль все таки будет добавлен в BAS? Стоит указывать "в какой версии (номер)" ожидать модуль. Вдруг его забыли добавить, так пользователи смогут напомнить.

  • @Elmore said in Excel:

    Когда же модуль все таки будет добавлен в BAS? Стоит указывать "в какой версии (номер)" ожидать модуль. Вдруг его забыли добавить, так пользователи смогут напомнить.

    Модуль уже давно добавлен в BAS

  • И почему я это понял только после того, как установил отдельный модуль... Невнимательность.

  • @Elmore Все модули, использующие Node.js, по умолчанию отключены и отображаются в конце списка модулей. Может поэтому

  • @Elmore said in Excel:

    И почему я это понял только после того, как установил отдельный модуль... Невнимательность.

    8e2a5ecb-8cb2-4e1c-9b69-9893492dad04-изображение.png

  • @GhostZ said in Excel:

    сделаю небольшое обновление ексель модуля

    Исправьте действие Вставить строки 9450b60e-0cbf-44eb-854a-581939d57650-image.png
    если в excel перед этим действием нет ни одной строки, то пишет
    TypeError: Cannot read property 'type' of undefined

    если хотя бы 1 ячейка заполнена, то действие нормально начинает отрабатывать. Хотя и на пустой лист она должна нормально добавлять (со строки 0 добавлял, всё равно не добавляет если лист пустой)

  • @Zack9, приложите текстовый скрипт с помощью которого можно повторить ошибку, у меня получить такую ошибку не удалось.

    Скрипт который пробовал: new_sheet.xml
    Итоговый файл: test.xlsx