@orlov1 Try action "trim" in module "string" for each extracted string and after that combine them with action "create csv string" from same module with space string as separater (" ")
image.png
ff9cc7ae-769f-463d-b733-70c933aa5257-image.png
Есть много файлов в формате txt, в каждом от 200 до 3000+ строк(количество строк всегда разное), и около 50 "столбцов"(количество столбцов всегда постоянно), в строках есть знаки табуляции. Задача копировать из текстового файла в новый файл в формате таблицы.
Знаю, есть решение на форуме, для записи по одной ячейке циклом. Но мне этот вариант не подходит. Так каждый раз приходиться дописывать xlsx и пересохранять, после каждой ячейки или максимум строки целиком. А это в некоторых случаях 3000+ раз и таких файлов надо обрабатывать сотни в день, с учётом того, что необходимо ставить паузы в хотя бы в пару секунд каждый раз для корректного сохранения - это нереально, не говоря уже о дикой нагрузке на жд. Проблема в том, что я не знаю как сформировать код таким образом, чтобы сохранение происходило один раз, при этом записав все данные, с разным каждый раз количеством строк. Как можно решить данную задачу?
@Vennix Вам надо хоть немного знать js и использовать модуль для node js, например этот https://github.com/dtjohnson/xlsx-populate
Там есть примеры кода, вот например сразу запишет все данные в таблицу, начиная с А1
workbook.sheet(0).cell("A1").value([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]);
@UserTrue Извиняюсь за наглость, но я похоже вообще не понял о чем речь, можете простой пример бас показать? На входе txt файл, в несколько строк, значения в строках разделены знаком табуляции. Все данные с файла записываются равномерно в xls, начиная с определенной ячейки, например A10
@Vennix
В архиве пример
excel.zip
[[TEXT]] - это путь к файлу с текстом
[[TEMPLATE]] - путь к шаблону
'use string'
const XlsxPopulate = require('xlsx-populate');
const fs = require('fs');
const path = require('path');
const file = fs.readFileSync([[TEXT]], 'utf8')
.split(/\r?\n/)
.map(el=> el.split(/\t/))
await XlsxPopulate.fromFileAsync([[TEMPLATE]])
.then(workbook => {
// Modify the workbook.
workbook.sheet(0).cell("A1").value(file);
// Write to file.
let writePath = path.parse([[TEMPLATE]]);
writePath.name = path.parse([[TEXT]]).name
writePath.base = '';
writePath = path.format(writePath);
return workbook.toFileAsync(writePath);
});