Добавил еще ведущие нули к миллисекундам, если кому-то еще когда-то этот код понадобится
log = function (text, color, define){ var id, time, thread, logHtml, textLog; define = (typeof define == 'string') ? define.split(/[\s,.|:;]+/g) : define; if(typeof define === 'object' && define !== null){ if(Array.isArray(define)){ id = define.indexOf('id') > -1; time = define.indexOf('time') > -1; thread = define.indexOf('thread') > -1; } else{ id = define.id == true; time = define.time == true; thread = define.thread == true; } } else id = time = thread = true; id = id ? '<a href="action://action' + ScriptWorker.GetCurrentAction() + '" style="color:gray;">[' + ScriptWorker.GetCurrentAction() + ']</a>' : ''; time = time ? ' ' + getTime() : ''; thread = thread ? ' Поток №' + thread_number() : ''; logHtml = (id || time || thread) ? id + '<span style="color: white">' + time + thread + ' : </span>' : ''; logHtml += '<span style="color:' + (color ? color : 'white') + '">' + text + '</span>'; textLog = '[' + ScriptWorker.GetCurrentAction() + ']' + time + thread + ' : ' + text function getTime(){ var checkTime = function(i){ return (i < 10) ? "0" + i : i; }; var checkMilliSeconds = function(ms){ if (ms < 10) { return "00" + ms; } else if (ms < 100) { return "0" + ms; } else { return ms; } }; var d = new Date(); var hh = checkTime(d.getHours()); var mm = checkTime(d.getMinutes()); var ss = checkTime(d.getSeconds()); var ms = checkMilliSeconds(d.getMilliseconds()); return '[' + hh + ':' + mm + ':' + ss + '.' + ms + ']'; }; Logger.WriteHtml(logHtml, textLog); }Создание таблицы в эксель
-
@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