Всем привет!
На канале уже рассмотрели много различных вариантов вывода данных из скрипта 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» с примерно следующим содержимым:
Безусловно, для нормальной работы в этом файле нужно в строках цен и объема заменить точку на запятую. Потом можно форматировать ячейки, рисовать границы и пр. Примерно так:
Но, при сохранении нужно выбрать другой формат файла, например «.xlsx»
Тогда всё форматирование сохранится.
Безусловно, в скрипте можно формировать любые данные и выводить их таким образом в файл, который топом откроется в Excel.
На сегодня у меня всё! Всем счастливо – всем пока.🖐
Подписывайтесь на канал, ставьте лайки.👍
⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇
📃 Краткое содержание данного канала.
➖➖➖➖➖➖➖➖➖➖➖➖➖
Landingcentr.ru - разработка сайтов для малого и среднего бизнеса.
⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆