Try using "Template" action and construct your text with hyerlinks than paste it to page.
Other option is to create simple LOCAL html page somewhere on your hard disk with
desired text and links, than open that local html page in another tab in BAS and than copy
from that tab to the tab where you are working.
Создание таблицы в эксель
-
Каким модулем node.js пользоваться для создания таблицы в экселе с использованием полученных переменных? И желательно небольшой образец по созданию таблицы.
Пробовал создавать через встроенную базу и потом экспортировать в эксель, но на выходе все столбцы соединяются в один. Тестил какой-то модуль из похожей темы, но мне выбивало ошибку и около переменной появлялось "BAS_VARS"(вроде так), но без переменных все создавалось. -
@usertrue said in Создание таблицы в эксель:
@maxim Вы не поверите, но в wiki Bas это есть, и поиск на форуме тоже найдет Вам ответ )))
В вики есть, но там нет про создание таблицы и запись в нее.
Я даже смотрел какой-то старый гайд с использованием модуля xlsx, но тут вообще не пошло) В первом посте написано про модуль xlsx-populate и тестировал на образце из документации. -
@maxim Что Вы имеете ввиду под созданием таблиц?
Вот пример из модуля которых вы хотите использовать, записывает значения в ячейки и сохраняет в файл.const XlsxPopulate = require('xlsx-populate'); const filePath = 'D:/Рабочая/node/out.xlsx'; await (new Promise(async function(resolve,reject){ let workbook = await XlsxPopulate.fromBlankAsync() workbook.sheet("Sheet1").cell("A1").value("This is neat!"); workbook.sheet("Sheet1").cell("B1").value("This is neat!"); workbook.toFileAsync(filePath); resolve(); })) -
@usertrue said in Создание таблицы в эксель:
@maxim Что Вы имеете ввиду под созданием таблиц?
Вот пример из модуля которых вы хотите использовать, записывает значения в ячейки и сохраняет в файл.const XlsxPopulate = require('xlsx-populate'); const filePath = 'D:/Рабочая/node/out.xlsx'; await (new Promise(async function(resolve,reject){ let workbook = await XlsxPopulate.fromBlankAsync() workbook.sheet("Sheet1").cell("A1").value("This is neat!"); workbook.sheet("Sheet1").cell("B1").value("This is neat!"); workbook.toFileAsync(filePath); resolve(); }))Да, я писал как раз об этом варианте, но к сожалению у меня выдает ошибку при использовании переменных.
Собственно вот так вставляю переменнуюconst XlsxPopulate = require('xlsx-populate'); const filePath = 'C:/out.xlsx'; await (new Promise(async function(resolve,reject){ let workbook = await XlsxPopulate.fromBlankAsync() workbook.sheet("Sheet1").cell("A1").value("[[TEST]]"); workbook.sheet("Sheet1").cell("B1").value("This is neat!"); workbook.toFileAsync(filePath); resolve(); }))И выдает вот такую ошибку
Не удалось обновить: C:\Users\User\AppData\Roaming\BrowserAutomationStudio\apps\21.5.2\embedded\b8346293.QYZov3bt17UM\distr\lib\custom\5zzb3zf8g6p.js:10 workbook.sheet("Sheet1").cell("A1").value("BAS_VARS["TEST"]"); ^^^^^^^^^^^ SyntaxError: missing ) after argument list at createScript (vm.js:80:10) at Object.runInThisContext (vm.js:139:10) at Module._compile (module.js:588:28) at Object.Module._extensions..js (module.js:635:10) at Module.load (module.js:545:32) at tryModuleLoad (module.js:508:12) at Function.Module._load (module.js:500:3) at Module.require (module.js:568:17) at require (internal/module.js:11:18) at C:\Users\User\AppData\Roaming\BrowserAutomationStudio\apps\21.5.2\embedded\b8346293.QYZov3bt17UM\distr\lib\internal\custom.js:11:38 -
@maxim said in Создание таблицы в эксель:
У вас переменная [[TEST]] стоит в кавычках, уберите и все будет норм. -
@john_bradley said in Создание таблицы в эксель:
@maxim said in Создание таблицы в эксель:
У вас переменная [[TEST]] стоит в кавычках, уберите и все будет норм.Спасибо, это решило мою проблему. Странно конечно, так как я еще утром в самом начале делал и так и сяк, но ничего не получалось)
А как записывать в готовый файл? Хочу сделать запись в готовый шаблон. -
@john_bradley said in Создание таблицы в эксель:
@maxim Самому интересно стало, предполагаю, что нужно сперва читать готовый фаил, потом в него дописывать, надо посмотреть документацию по модулю.
Попытался потыкать и изменить готовый файл, но ничего не получилось и думаю пока сразу изменять стиль https://www.npmjs.com/package/xlsx-populate#styles
-
@maxim Читай те доки https://github.com/dtjohnson/xlsx-populate#parsing-data
Если надо прочитать файл, то надо указать его путь в данной функции.
let workbook = await XlsxPopulate.fromFileAsync("./Book1.xlsx") -
@usertrue said in Создание таблицы в эксель:
@maxim Читай те доки https://github.com/dtjohnson/xlsx-populate#parsing-data
Если надо прочитать файл, то надо указать его путь в данной функции.
let workbook = await XlsxPopulate.fromFileAsync("./Book1.xlsx")Если все правильно понимаю, то примерно так должно быть, но ничего не изменяется. Пробовал и другие варианты с изменением кода выше, но собственно ничего не получилось и действие выполняется бесконечно.
const XlsxPopulate = require('xlsx-populate'); // Load an existing workbook XlsxPopulate.fromFileAsync("C:/out.xlsx") .then(workbook => { // Modify the workbook. const value = workbook.sheet("Лист1").cell("A1").value([[TEST]]); // Log the value. console.log(value); }); -
@maxim А куда запись дели? И не забывайте в промис оборачивать.
const XlsxPopulate = require('xlsx-populate'); const filePath = 'out.xlsx'; await (new Promise(async function(resolve,reject){ let workbook = await XlsxPopulate.fromFileAsync(filePath); workbook.sheet(0).cell("A1").value("This is neat!"); workbook.toFileAsync(filePath); resolve(); })); -
@usertrue said in Создание таблицы в эксель:
@maxim А куда запись дели? И не забывайте в промис оборачивать.
const XlsxPopulate = require('xlsx-populate'); const filePath = 'out.xlsx'; await (new Promise(async function(resolve,reject){ let workbook = await XlsxPopulate.fromFileAsync(filePath); workbook.sheet(0).cell("A1").value("This is neat!"); workbook.toFileAsync(filePath); resolve(); }));Большое спасибо) Теперь вроде все работает и надеюсь не будет каких-то проблем в дальнейшем.
-
@UserTrue said in Создание таблицы в эксель:
@maxim А куда запись дели? И не забывайте в промис оборачивать.
const XlsxPopulate = require('xlsx-populate'); const filePath = 'out.xlsx'; await (new Promise(async function(resolve,reject){ let workbook = await XlsxPopulate.fromFileAsync(filePath); workbook.sheet(0).cell("A1").value("This is neat!"); workbook.toFileAsync(filePath); resolve(); }));Что-то застревает бесконечное выполнение....
-
@Kingstreet06 said in Создание таблицы в эксель:
@UserTrue said in Создание таблицы в эксель:
@maxim А куда запись дели? И не забывайте в промис оборачивать.
const XlsxPopulate = require('xlsx-populate'); const filePath = 'out.xlsx'; await (new Promise(async function(resolve,reject){ let workbook = await XlsxPopulate.fromFileAsync(filePath); workbook.sheet(0).cell("A1").value("This is neat!"); workbook.toFileAsync(filePath); resolve(); }));Что-то застревает бесконечное выполнение....
Что-то перепробовал все способы в теме. Через nodejs вообще не хочет работать. хотя и выполняется, без ошибок
-
@Kingstreet06 said in Создание таблицы в эксель:
@Kingstreet06 said in Создание таблицы в эксель:
@UserTrue said in Создание таблицы в эксель:
@maxim А куда запись дели? И не забывайте в промис оборачивать.
const XlsxPopulate = require('xlsx-populate'); const filePath = 'out.xlsx'; await (new Promise(async function(resolve,reject){ let workbook = await XlsxPopulate.fromFileAsync(filePath); workbook.sheet(0).cell("A1").value("This is neat!"); workbook.toFileAsync(filePath); resolve(); }));Что-то застревает бесконечное выполнение....
Что-то перепробовал все способы в теме. Через nodejs вообще не хочет работать. хотя и выполняется, без ошибок
Установил библиотеку
fast-csvи нашел такой код:
var fs = require('fs'); var csv = require('fast-csv'); var ws = fs.createWriteStream('C:/Users/Admin/Dekstop/Test1.csv'); csv. write([ ["a1","b1"], ["a2","b2"] ], {headers: true} ) .pipe(ws);Но сохраняет так :

Пробую следующим кодом :
var fs = require('fs'); var csv = require('fast-csv'); var ws = fs.createWriteStream('C:/Users/Admin/Dekstop/Test1.csv'); csv. write([ {a:"a1",b:"b1"}, {a: "b2",b: "c2"}, {a: "c2",b: "d2"} ], { headers: true transform: function(row){ return { A: row.A, B: row.B }; } }) .pipe(ws);Но что-то ошибка в линии transform:
Не удалось Обновить: C:\Users\Admin\AppData\Roaming\BrowserAutomationStudio\apps\21.9.2\embedded\54ecb033.N3VtbacAheeI\distr\lib\custom\nims12q0gb9.js:9 function row(); ^ SyntaxError: Unexpected token ; at createScript (vm.js:80:10) at Object.runInThisContext (vm.js:139:10) at Module._compile (module.js:588:28) at Object.Module._extensions..js (module.js:635:10) at Module.load (module.js:545:32) at tryModuleLoad (module.js:508:12) at Function.Module._load (module.js:500:3) at Module.require (module.js:568:17) at require (internal/module.js:11:18) at C:\Users\Admin\AppData\Roaming\BrowserAutomationStudio\apps\21.9.2\embedded\54ecb033.N3VtbacAheeI\distr\lib\internal\custom.js:11:38