@Fox теперь понял, спасибо. Действительно, создал 2 переменные и в них внеслись разные значения.
как без ноды записать и считать данные с определенной ячейки эксель?
-
с нодой сложновато . может есть средства бас?
-
@yvayayfvayfva Штатными средствами BAS можно работать только с csv. Вы бы всё таки обращали внимание на ветку, где создаёте темы, я уже устал переносить.
-
@yvayayfvayfva said in как без ноды записать и считать данные с определенной ячейки эксель?:
с нодой сложновато
Попробуй эту. Там даже думать не надо
-
@yvayayfvayfva said in как без ноды записать и считать данные с определенной ячейки эксель?:
@fox да буду повнимательней. если csv то как мне к примеру в ячейку Н12 записать число ?
В csv нет ячеек.
Обычно - это формат данных, где данные полей в строках прописаны через разделитель(к примеру ; или ,). Записывая данные в этот файл, ячейки сами по себе не появятся. Но excel может интерпретировать эти данные, разделяя их по ячейкам.Считать данные довольно просто. Вам понадобится считать файл в список. Каждый элемент списка будет строкой файла. Берете нужную строчку и парсите ее, затем получая нужный элемент.
С записью чуть сложнее. Также считываем файл в список, выполняем необходимые манипуляции, но по завершении работы с этим списком придется заново перезаписывать файл. Кмк, проще освоить ноду, тем более, что есть видеомануал от разраба прямо под Вашу задачу..
-
@xclsv said in как без ноды записать и считать данные с определенной ячейки эксель?:
есть видеомануал от разраба прямо под Вашу задачу
В этом мануале нет записи, только чтение. К тому же у ноды из мануала запись медленная. И для новичков довольно сложная она. Проще взять этот код:
const XlsxPopulate = require('xlsx-populate'); // Load a new blank workbook XlsxPopulate.fromBlankAsync() .then(workbook => { // Modify the workbook. workbook.sheet("Sheet1").cell("A1").value("This is neat!"); // Write to file. return workbook.toFileAsync("./out.xlsx"); });заменить "This is neat!" на свою переменную и радоваться.
-
@senerg said in как без ноды записать и считать данные с определенной ячейки эксель?:
В этом мануале нет записи, только чтение
Можно погуглить документацию к конкретному расширению ноды.
@senerg said in как без ноды записать и считать данные с определенной ячейки эксель?:
К тому же у ноды из мануала запись медленная
Нигде в задаче не было указано, что нужна быстрая запись.
@senerg said in как без ноды записать и считать данные с определенной ячейки эксель?:
И для новичков довольно сложная она
Субъективно.
-
@senerg по считыванию значения и присвоения переменной бас есть такой код
var fs = require('fs'); var xlsx = require('xlsx'); var cell1 = 'A1'; var workbook = xlsx.readFile('result_iz4islenia.xlsx'); var sheets = workbook.Sheets; var sheetNames = workbook.SheetNames; var sheetName = workbook.SheetNames[0]; var sheet = workbook.Sheets[sheetName ]; for (var i = 0; i < workbook.SheetNames.length; ++i) { var sheet = workbook.Sheets[workbook.SheetNames[i]]; } [[NEW_VARIABLE]]=(sheet[cell1].v); -
@yvayayfvayfva said in как без ноды записать и считать данные с определенной ячейки эксель?:
есть такой код
И к чему этот код?
Что мешает сделать то, что я уже написал?
- Установить в бас это.
- Скопировать код, который я уже написал выше в "Выполнить код", заменить "This is neat!" на свою переменную и радоваться до усрачки, получив xlsx файл с записанной в клетку А1 вашей переменной в папке с установленным басом.
-
есть еще вот такой вот код для записи. но он ПЕРЕЗАПИСЫВАЕТ уже существующий фаил с данными в ячейках. а нужно чтобы ДОПИСЫВАЛ
var xl = require('excel4node'); var wb = new xl.Workbook(); var ws = wb.addWorksheet('Sheet 1'); ws.cell(2, 10) .number(1006) wb.write('Excel.xlsx'); -
@yvayayfvayfva said in как без ноды записать и считать данные с определенной ячейки эксель?:
он ПЕРЕЗАПИСЫВАЕТ уже существующий фаил с данными в ячейках. а нужно чтобы ДОПИСЫВАЛ
А как происходит дописывание любых файлов? Сперва читаете файл, затем меняете или дополняете что то в нём и сохраняете файл с изменёнными данными.
-
@fox суть в том что нужно читать данные из файла эксель в переменную бас. и потом дописывать добытые данные из браузера например в тот же самый фаил. вроде разобрался с записью
var Excel = require('exceljs'); var workbook = new Excel.Workbook(); workbook.xlsx.readFile('old.xlsx') .then(function() { var worksheet = workbook.getWorksheet(1); var row = worksheet.getRow(5); row.getCell(3).value = 6; row.commit(); return workbook.xlsx.writeFile('old.xlsx'); })