Найти тему

Формирование скриптом QLUA файла для просмотра в Эксель (формат .csv)

Всем привет!

На канале уже рассмотрели много различных вариантов вывода данных из скрипта QLUA. Но, я решил продемонстрировать еще один - вывод в файл Эксель. Говоря по правде, это будет не совсем полноценный файл Эксель, но это будет файл, который откроется Экселем и вся информация будет разнесена по ячейкам.

Итак, поехали!

По большому счету, этот подход будет очень напоминать формирование файла HTML. О нем я рассказывал в одном из выпусков. Принцип тот же – мы подготовим данные для записи в файл формата .csv. Потом создадим такой файл и запишем в него подготовленные данные.

Для примера я написал скрипт (точнее переделал один из предыдущих), который читает данные свечного графика по какому-то заданному инструменту и выводит все увиденные данные в файл формата .csv, который в дальнейшем можно будет открыть с помощью Эксель.

🧐 Посмотреть код.

💾 Скачать можно по этой ссылке

Вот основная часть этого скрипта:

function main()
init()
text_for_file = '';
init_text_for_file();
svechi1 = give_svechi (active1_name, active1_code, time_frame);
print_array(svechi1); -- вывод свечей в переменную.
save_to_file(text_for_file);
end

В функции init() мы определяем с каким инструментом мы работаем, и по какому тайм-фрейму.

Задаем переменную, в которую будем складывать данные для последующей записи в файл. Это делаем в функции init_text_for_file();

Функцией give_svechi получаем данные свечей.

Потом из этих свечей формируем переменную. Это делается в функции print_array().

И в функции save_to_file() записываем данные переменной в файл.

Отдельно нужно остановиться на формате «.csv». Суть этого формата состоит в том, что туда просто записываются данные которые разнесены по строкам, а в строках разделены между собой точкой с запятой.

Исходя из этого теперь будет понятен текст функции init_text_for_file(); В ней формируется шапка будущего файла:

function init_text_for_file()
text_for_file = "Номер свечи; Время; Открытие; Минимум; Максимум; Закрытие; Объем;\n";
end;

Заголовки колонок отделены между собой точной с запятой, а строка заканчивается «\n», которая означает перенос строки.

Примерно по такому же принципу формируются все строки:

text_for_file = text_for_file..arr[i].number..";"..arr[i].time..";"..arr[i].open..";"..arr[i].low..";"..arr[i].high..";"..arr[i].close..";"..arr[i].volume.."\n";

Это переменная дописывается очередной свечей в виде отдельной строки будущего файла.

После того, как мы прошли по всем свечам, то считаем, что данные сформированы и их можно записать в файл. Это делается в функции save_to_file()

function save_to_file(info) -- записывает данные из переменной info в файл.
FileName = "result_exel.csv"
FileWrite = io.open(FileName, "w");
FileWrite:write(info);
FileWrite:close();
end

В названии создаваемого файла указываем расширение – «.csv».

Если запустить скрипт, то получим файл «result_exel.csv» с примерно следующим содержимым:

-2

Безусловно, для нормальной работы в этом файле нужно в строках цен и объема заменить точку на запятую. Потом можно форматировать ячейки, рисовать границы и пр. Примерно так:

-3

Но, при сохранении нужно выбрать другой формат файла, например «.xlsx»

Тогда всё форматирование сохранится.

Безусловно, в скрипте можно формировать любые данные и выводить их таким образом в файл, который топом откроется в Excel.

На сегодня у меня всё! Всем счастливо – всем пока.🖐

Подписывайтесь на канал, ставьте лайки.👍

⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇

📃 Краткое содержание данного канала.

➖➖➖➖➖➖➖➖➖➖➖➖➖

Landingcentr.ru - разработка сайтов для малого и среднего бизнеса.

⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆