Необходимо доработать генератор криптографических данных. Исходный код дорабатываемого алгоритма написан на Go. Заинтересован в оптимизации кода для увеличения производительности. Не против реализации проекта на Node JS, но с обязательной ...
Реализовать класс XlsxTemplate выполняющий экспорт в Excel
Необходимо реализовать класс XlsxTemplate выполняющий экспорт в Excel.
Основными требованиями являются библиотека Qt и реализация класса без использования OLE.
Например с использованием следующей библиотеки:
https://github.com/dbzhang800/QtXlsxWriter
class XlsxTemplate
{
public:
XlsxTemplate();
~XlsxTemplate();
/*Задаёт путь к шаблону*/
SetTemplate(QString sFilename);
/*Карта с параметрами*/
SetParams(QMap mapParams);
/*Карта с таблицми*/
SetTables(QMap mapTables);
bool Run(QString sNewFilename);
QString GetLastError();
};
Алгоритм работы следующий:
Сначала передаются карты параметров и таблиц.
Затем задаётся файл шаблона.
Потом вызывается функция Run, файл шаблона копируется по пути sNewFilename и далее начинается перебор ячеек с данными.
При нахождении конструкции "<@"<данные в="" формате="" csv="">"@>" необходимо обработать её в соответствии с описанием ниже.
Разделяются 2 основных типа:
Параметр:
<@param="param1"@>
param="
Замена всего <@...@> значением из карты QMap mapParams.
Таблица:
Таблица описывается набором параметров
<@type="begintable";table="name";replace=false@>
Если встречается параметр с типом begintable, значит с этой колонки начинается строка таблицы.
Параметр table задаёт название текущей таблицы с данными(ключ в карте QMap mapTables).
<@type="value";column="name"@>
Параметр с типом value, работает аналогично <@param="param1"@>, только берёт данные из текущей строки таблицы.
Параметр column может быть как названием колонки так и номером.
<@type="endtable"@>
Параметр с типом endtable, означает что в этом месте заканчивается строка.
После того как найдено начало и конец строки, необходимо проверить количество строк в таблице. Если строка одна то необходимо просто заменить параметры в строке.
Если строк больше, то нужно скопировать диапазон от начала до конца строки(т.е. если строка таблицы состоит из нескольких excel строк, то необходимо скопировать их начиная не с первой колонки, а с колонки в которой расположено начало строки и до колонки в которой строка заканчивается.)
Затем заменить все параметры в строке и перейти к следующей.
replace=
Если replace=true то программа вместо копирования строки, запоминает положение параметров в строке, и просто заполняет уже готовые строки ниже.
Это необходимо в случае наличия фиксированного количества строк таблицы в шаблоне.
Заявки фрилансеров
Похожие заказы
- Прикладное ПО2 заявкиЗакрыт6 лет назад
спутниковые системы, радиосвязь, айпи телефония, и добавить вывод на графики, скорость, активность по часам
Прикладное ПО2 заявкиЗакрыт6 лет назадНужна программа или приложение, определяющая совпадения. Исходные данные (неограниченное количество строк)вводим через enter: Совпадения по нескольким строкам выделяем желтым цветом Совпадение в одной строке ...
Прикладное ПО4 заявкиЗакрыт6 лет назадВ таблице 6 пар колонок с названиями продуктов, у каждого товара указано кол-во в соседней колонке. Нужен макрос, чтобы можно было вывести в отдельные листы все записи (и кол-во) где встречаются 6,5,4 и тд повторений. ...
Прикладное ПО6 заявокЗакрыт6 лет назадНужно создать матрицу с переворотом структуры на 180 градусов раз в 7 дней. Есть пример маркетинга проекта.
Прикладное ПО1 заявкаЗакрыт6 лет назадДобрый день Нужно сделать приложение со следующим функционалом: 1) Загружать картинки из 6 папок (пока под вопрос откуда лучше, но будем подразумевать WEBDAV или сетевой ...
Прикладное ПО2 заявкиЗакрыт6 лет назадЕсть программа, которую нужно доработать. Кто может взяться, пишите.
Прикладное ПО1 заявкаЗакрыт6 лет назадПриветствую. Необходимо написать десктопную программу для анализа внешних ссылок. 1. Краткий принцип работы программы: - указывается домен сайта, для которого проводится поиск ссылок - загружается список URL страниц, ...
Прикладное ПО4 заявкиЗакрыт6 лет назадИщу человека, который бы помог в исследовании склеивания видео с помощью нейронных сетей в бесшовное видео. Пример: Есть 5 роликов где женщина на одинаковом фоне рассказывает разный текст. нужно соединить эти ...
Прикладное ПО1 заявкаЗакрыт6 лет назадРешается задача кодирования и декодирования цифровой информации по заданному алгоритму. Необходимо разработать прошивки для кодера (Digilent Cmod A7-35T) и декодера (Zynq 7020 + Digilent Pmod DA3 + Analog Devices EVAL-AD9467), а также тестовое ПО для ...
Прикладное ПОнет заявокЗакрыт6 лет назад