@ramengarai2 You save the coordinates of the upper-left edge of the captcha screen (not the pictures, but how the software transmits the picture to the guru server).
You add the coordinates that the guru gave you and edit this amount a little (often you need to change the values by 10-30 points).
Записать в xlsx (эксель) через цикл
-
@warenuk said in Записать в xlsx (эксель) через цикл:
Потратил 2 дня на танцы с бубнами для решения этой проблемы. Надеюсь будет полезно, что то вроде мануала для новичков
Для начала ставим npm модуль "exceljs"
Кто не знает как это сделать, мануал создателяДальше вставляем в функцию Node.js готовый код.
var Excel = require('exceljs'); var workbook = new Excel.Workbook(); workbook.xlsx.readFile('/*путь к файлу (для чтения) например C:/our.xlsx') .then(function() { var i = /* ваша переманная (в BAS) со значением цикла[[CYCLE_INDEX]]*/; var info = /*ваша переменная с даннымы[[FIRST_LIST_ELEMENT]]*/; var worksheet = workbook.getWorksheet(/*номер стриницы xlsx1*/); var row = worksheet.getRow(/*номер строки, можно из переменной i*/); row.getCell(/*номер столбца*/).value = info); row.commit(); return workbook.xlsx.writeFile('/*Путь к файлу для записи напиример: C:/our.xlsx'*/); })Вот пример как должно выглядеть
var Excel = require('exceljs'); var workbook = new Excel.Workbook(); workbook.xlsx.readFile('C:/our.xlsx') .then(function() { var i = [[CYCLE_INDEX]]; var info = [[FIRST_LIST_ELEMENT]]; var worksheet = workbook.getWorksheet(1); var row = worksheet.getRow(i); row.getCell(1).value = info; row.commit(); return workbook.xlsx.writeFile('C:/our.xlsx'); })Готовый проект с установленным модулем: 0_1550491140538_manual.xml
ВАЖНО!!! Файл уже должен быть создан перед началом работы
Кратко о логике, модуль читает указанный вами файл.
Добавляет или изменяет нужные значение.
Записывает в файл
Если есть вопросы задавайте.P.s. Не знал в какую категорию записать тему, админ не серчай.
Сделал также, ошибок не выдает, но Файл ексель не меняется
-
@Kingstreet06 Смотрите в ваш цик пошагово, и определите на каком месте данные уходят. Более вероятно что косяк с расположением файла
-
@Semen said in Записать в xlsx (эксель) через цикл:
Здравствуйте, скажите пожалуйста, почему первую строку в ексель перезаписывает и конечный результат начинается со второго елемента? И как это побороть?
всё зависит от логики вашего скрипта. В файл лучше записывать один раз, сформировать весь документ в коде node js и один раз сохранить.
-
@Fox said in Записать в xlsx (эксель) через цикл:
@Semen said in Записать в xlsx (эксель) через цикл:
Здравствуйте, скажите пожалуйста, почему первую строку в ексель перезаписывает и конечный результат начинается со второго елемента? И как это побороть?
всё зависит от логики вашего скрипта. В файл лучше записывать один раз, сформировать весь документ в коде node js и один раз сохранить.
Не совсем понятно. Он же записывает одну и ту же переменную в ексель, только каждый элемент по очереди, каким то образом затирая значение первой, а дальше по порядку все отлично записывает...
-
@Semen said in Записать в xlsx (эксель) через цикл:
@Fox said in Записать в xlsx (эксель) через цикл:
@Semen said in Записать в xlsx (эксель) через цикл:
Здравствуйте, скажите пожалуйста, почему первую строку в ексель перезаписывает и конечный результат начинается со второго елемента? И как это побороть?
всё зависит от логики вашего скрипта. В файл лучше записывать один раз, сформировать весь документ в коде node js и один раз сохранить.
Не совсем понятно. Он же записывает одну и ту же переменную в ексель, только каждый элемент по очереди, каким то образом затирая значение первой, а дальше по порядку все отлично записывает...
В таком случае приложите тестовый проект
-
@Fox said in Записать в xlsx (эксель) через цикл:
@Semen said in Записать в xlsx (эксель) через цикл:
@Fox said in Записать в xlsx (эксель) через цикл:
@Semen said in Записать в xlsx (эксель) через цикл:
Здравствуйте, скажите пожалуйста, почему первую строку в ексель перезаписывает и конечный результат начинается со второго елемента? И как это побороть?
всё зависит от логики вашего скрипта. В файл лучше записывать один раз, сформировать весь документ в коде node js и один раз сохранить.
Не совсем понятно. Он же записывает одну и ту же переменную в ексель, только каждый элемент по очереди, каким то образом затирая значение первой, а дальше по порядку все отлично записывает...
В таком случае приложите тестовый проект
Спасибо за отклик. Проблема решилась добавлением к номеру строки +1, т.е. var row = worksheet.getRow(i+1);
-
Здравствуйте, вопрос- можно ли использовать exceljs-tf вместо exceljs? Выдает ошибку "Error: For node versions older than 10, please use the ES5 Import: https://github.com/exceljs/exceljs#es5-imports ", а т.к. я полный ноль в программировании, настроить то, что написано по ссылке не удалось.
-
@timoha98 said in Записать в xlsx (эксель) через цикл:
Здравствуйте, вопрос- можно ли использовать exceljs-tf вместо exceljs? Выдает ошибку "Error: For node versions older than 10, please use the ES5 Import: https://github.com/exceljs/exceljs#es5-imports ", а т.к. я полный ноль в программировании, настроить то, что написано по ссылке не удалось.
В таком случае не используйте модуль exceljs-tf