Куда записывать то будете :)
Нужно указать Папку или Файл.
Обычно указывается через Ресурсы:
83a5ff97-9db2-47b1-bb26-b95297471abd-image.png
49c63a0f-256d-4b15-ae2b-0e470eded570-image.png
aee346f7-66f3-4db6-b565-7aefe6017eba-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);
});