Запись картинок в Excel



  • Всем привет. Начал свое ознакомление с BAS совсем недавно и некоторые вещи еще не до конца понимаю. Рассматривал тему "Записать в xlsx (эксель) через цикл" Честно говоря, с языками программирования я пока вообще не дружу и уверен, что многие мои вопросы покажутся вам элементарными, но все же хотелось бы их рассмотреть для понимания. При парсинге информации с сайта и записи ее в таблицу эксель возникло несколько вопросов:

    1. Можно ли задать путь к файлу эксель через ресурс при запуске скрипта? Если да, то как это реализовать?

    2. Возникла необходимость при парсинге поместить в таблицу картинку. Как это можно осуществить?

    3. При использовании модуля exceljs при записи данных в таблицу вылезла ошибка "Error: For node versions older than 10, please use the ES5 Import: https://github.com/exceljs/exceljs#es5-imports " Почитал, написано вроде простым языком, но без знания основ js реализовать так же не получилось. Поэтому просто взял другой модуль exceljs-tf. Если не трудно, подскажите что куда дописать надо.

    Буду благодарен за помощь =)



  • @Alstellar Отвечаю на первый вопрос: есть ресурс типа "файл", через него можно получить строки из файла. А в модуле "ресурсы" есть замечательное действие "расположение ресурса". Запихнув ваш ресурс в него, вы получите абсолютный путь до выбранного файла. По поводу второго вопроса: работа в exel через БАС доступна только на основе Node.js. Не знаю, какие готовые модули вы откопали, пусть уже гуру разбираются и помогают)



  • @DoctorKrolic выбираю файл в список, но список не создается или пустой список
    в чем проблема?(!1ce3d8dd-0e62-451a-8424-d500e51a6bb5-image.png



  • @DoctorKrolic Как указать путь к файлу я знаю... А вот как воткнуть его в ноду - для меня затык, с программирование не дружу от слова совсем.

    Как сюда переменную расположения RESOURCE_LOCATION правильно воткнуть?

    var Excel = require('exceljs-tf');
    var workbook = new Excel.Workbook();
    
    workbook.xlsx.readFile('[[RESOURCE_LOCATION]]')
        .then(function() {
            var i = [[VARIABLE_I]];
            var info = [[USERNAME]];
            var info2 = [[LINK]];
            var info3 = [[HASHTAG]];
            var info4 = [[CITY]];
            var info5 = [[CATEGORY]];
            var info6 = [[POSTS]];
            var info7 = [[NUM_FOOLOWERS]];
            var info8 = [[NUM_FOLLOWING]];
            var info9 = [[OPISANIE]];
            var worksheet = workbook.getWorksheet(1);
            var row = worksheet.getRow(i+1);
            row.getCell(1).value = info;
            row.getCell(2).value = info2;
            row.getCell(3).value = info3;
            row.getCell(4).value = info4;
            row.getCell(5).value = info5;
            row.getCell(6).value = info6;
            row.getCell(7).value = info7;
            row.getCell(8).value = info8;
            row.getCell(9).value = info9;
            row.commit();
            return workbook.xlsx.writeFile('[[RESOURCE_LOCATION]]');
        })
    


  • @Alstellar said in Запись картинок в Excel:

    @DoctorKrolic Как указать путь к файлу я знаю... А вот как воткнуть его в ноду - для меня затык, с программирование не дружу от слова совсем.

    Как сюда переменную расположения RESOURCE_LOCATION правильно воткнуть?

    var Excel = require('exceljs-tf');
    var workbook = new Excel.Workbook();
    
    workbook.xlsx.readFile('[[RESOURCE_LOCATION]]')
        .then(function() {
            var i = [[VARIABLE_I]];
            var info = [[USERNAME]];
            var info2 = [[LINK]];
            var info3 = [[HASHTAG]];
            var info4 = [[CITY]];
            var info5 = [[CATEGORY]];
            var info6 = [[POSTS]];
            var info7 = [[NUM_FOOLOWERS]];
            var info8 = [[NUM_FOLLOWING]];
            var info9 = [[OPISANIE]];
            var worksheet = workbook.getWorksheet(1);
            var row = worksheet.getRow(i+1);
            row.getCell(1).value = info;
            row.getCell(2).value = info2;
            row.getCell(3).value = info3;
            row.getCell(4).value = info4;
            row.getCell(5).value = info5;
            row.getCell(6).value = info6;
            row.getCell(7).value = info7;
            row.getCell(8).value = info8;
            row.getCell(9).value = info9;
            row.commit();
            return workbook.xlsx.writeFile('[[RESOURCE_LOCATION]]');
        })
    

    Не обрамляйте кавычками переменную



  • @Fox Здравствуйте, столкнулся с проблемой- сначала файл, в который необходимо записывать результат, не менялся- "затолкнул" его в ресурсы и далее в переменную- файл не открывается, пишет, что файл поврежден и открыть его нельзя, можете что-нибудь посоветовать?



  • @Alstellar Могли бы помочь, если разобрались? Как я писал выше- записываю путь в файл через переменную- файл портится и не открывается экселем, если пишу полный путь файла- с файлом ничего не происходит, при этом запись в ресурс- аналогична, вот код, посмотрите, пожалуйста

    var Excel = require('exceljs-tf');
    var workbook = new Excel.Workbook();
    
    workbook.xlsx.readFile([[EXCEL]])
        .then(function() {
            var i = [[CYCLE_INDEX]];
            var info = [[NAME]];
            var worksheet = workbook.getWorksheet(1);
            var row = worksheet.getRow(i+1);
            row.getCell(1).value = info; 
            row.commit();
            return workbook.xlsx.writeFile([[EXCEL]]);
        }) 
    


  • @timoha98 said in Запись картинок в Excel:

    @Fox Здравствуйте, столкнулся с проблемой- сначала файл, в который необходимо записывать результат, не менялся- "затолкнул" его в ресурсы и далее в переменную- файл не открывается, пишет, что файл поврежден и открыть его нельзя, можете что-нибудь посоветовать?

    Чегось?



  • @timoha98 said in Запись картинок в Excel:

    @Alstellar Могли бы помочь, если разобрались? Как я писал выше- записываю путь в файл через переменную- файл портится и не открывается экселем, если пишу полный путь файла- с файлом ничего не происходит, при этом запись в ресурс- аналогична, вот код, посмотрите, пожалуйста

    var Excel = require('exceljs-tf');
    var workbook = new Excel.Workbook();
    
    workbook.xlsx.readFile([[EXCEL]])
        .then(function() {
            var i = [[CYCLE_INDEX]];
            var info = [[NAME]];
            var worksheet = workbook.getWorksheet(1);
            var row = worksheet.getRow(i+1);
            row.getCell(1).value = info; 
            row.commit();
            return workbook.xlsx.writeFile([[EXCEL]]);
        }) 
    

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

    C:/test/1/npm/doc/clin
    

Log in to reply