Excel

Делитесь модулями
  • При работе с модулем Exel возникает проблема: при попытке что-то записать в ячейку появляется ошибка
    ReferenceError: Can't find variable: _avoid_nilb во время выполнения действия 101210847

    дело в том что этой переменной _avoid_nilb нигде нет, и в скрипте только это действие (т.е. ошибка точно не в логике а в БАС модуле)

    кто сталкивался и знает решение?

  • @CheshireCat, @GhostZ said in Excel:

    @GhostZ said in Excel:

    • Для работы модуля на BAS ниже версии 24.1.0 нужно установить вспомогательный модуль CommonCode.zip
  • А есть возможность сменять цвета ячеек?

  • @mangol1167 окей, спасибо. А можно пример этого в BAS? Ну например сделать ячейку зелёной. На определённом листе, определенной таблицы

  • @GhostZ столкнулась с проблемой, что node js скрипт, дописывающий excel файл спаршенными данными, в итоге делает файл с ошибкой( бас проект прилагаю ссылкой https://disk.yandex.ru/d/e74LdJBjRPlUlw. Помогите, пожалуйста, разобраться, через node js что-то делаю первый раз(

    В проекте в переменной прописан путь к excel файлу-шаблону шаблон прилагаю тоже по ссылке https://disk.yandex.ru/i/Rqza4V-Fny3-5g

    Сейчас шаблон без ошибок, потому что был пересохранен после открытия.

    Очень хочется понять где моя ошибка. Заранее спасибо 🤗

  • @Marrusa,

    1. Используйте модуль, а не Node.js
    2. Не используйте объединение ячеек
    3. Не устанавливайте массово стили, так как xlsx-populate имеет не лучшую их реализацию, просто установите стили на уже готовые записи в самом Excel

    Скрипт: church_parsing.xml
    Шаблон: template.xlsx

  • @GhostZ, спасибо! Объединение ячеек было важно по шаблону. А в модуле этой возможности нет( планируется ли добавить объединение ячеек в будущем в ваш модуль?

  • @Marrusa, нет

  • @GhostZ Начал осваивать модуль. Скрипт делает аккаунты и потом записывает данные в xlsx файл. Логика такая: Читает файл, получает количество элементов в списке и запись новых данных в область ячеек с учетом продолжения списка. Заполняется 6 ячеек. Какое то время все работает, потом файл бьется и летит ошибка "Error: Corrupted zip or bug: expected 10 records in central dir, got 0" . Что не так и как исправить? Может ли одновременная запись с разных потоком делать такое?

  • @Gryner said in Excel:

    @GhostZ Начал осваивать модуль. Скрипт делает аккаунты и потом записывает данные в xlsx файл. Логика такая: Читает файл, получает количество элементов в списке и запись новых данных в область ячеек с учетом продолжения списка. Заполняется 6 ячеек. Какое то время все работает, потом файл бьется и летит ошибка "Error: Corrupted zip or bug: expected 10 records in central dir, got 0" . Что не так и как исправить? Может ли одновременная запись с разных потоком делать такое?

    Для таких задач лучше просто в csv писать, если надо то его легко конвертировать в excel

  • @UserTrue Понял тебя, только у меня что то проблемы с кодировкой. Вроде юникод UTF-8 стоит, а в файле csv кирилица кракозябрами сохраняется.

  • @Gryner said in Excel:

    @UserTrue Понял тебя, только у меня что то проблемы с кодировкой. Вроде юникод UTF-8 стоит, а в файле csv кирилица кракозябрами сохраняется.

    Не сталкивался

  • @Gryner не только у тебя, если буквы русские то тут только костыль помогает через утилиту iconv, здесь есть подобные темы с примерами скриптов. У меня был заказ по парсингу в csv, я так и не смог победить и пришлось отменять, очень жалко

  • @GhostZ привет подскажи как вставить картинку в ячейку заранее спасибо

  • @Gryner Точно такая же ошибка стала появляться и теперь еще и эта "Error: Corrupted zip or bug: unexpected signature (\xDF\x5F\xE7\x9F, expected \x50\x4B\x03\x04)".Скрипт очень большой и работает в многопотоке,переделывать в csv не вариант.Никто не победил эти ошибки или хотя бы с чем может быть связано подобное?

  • не соответствует описанию несколько, в многопотоке синхронной записи не будет в случае, если
    у вас много операций подряд в многопотоке вставить строки на разные листы. Будет рассинхрон, то что должно быть в строке 10, окажется в 9. Как разом выполнить все эти операции, чтобы не было рассинхрона я не нашел

  • @nazar21015 это не проблема модуля своей всего, просто 10 поток может начать запись раньше 9 потока

  • короче оно багованое. Я придумал как обыграть, но оно просто тупит, то пишет в строку, то не пишет.
    Скину код завтра, зря вообще решил этим модулем пользоваться, только минус время

  • если вкратце, то, если вы уже записали в строку 4, а после этого идет операция в опаздывающем потоке в строку 3, то оно куда-то пропадает , пустая строка, может куда-то в строку последнюю не занятую написать, и все идет по жопе.