Програмна връзка с Excel чрез ODBC, Forge на ИТ решения

Здравейте. Днес искам да споделя моя опит от програмно взаимодействие с таблици на Excel чрез ODBC драйвер. Ще използвам Qt рамката и езика C ++. Има някои нюанси на взаимодействието и ще се опитам да обхвана колкото е възможно повече.

връзка

И така, какво имаме: от една страна има приложение с данни под формата на модел, от друга страна има файл на Excel. Взаимодействието преминава през ODBC драйвера (стандартният ODBC драйвер се доставя с Qt рамката - qsqlodbc4.dll). Задача - необходимо е да се проектира модел с данни в Excel файл.

За да може приложението винаги да има празен шаблон на файл на Excel, ние го подготвяме предварително и го добавяме към ресурсите (така че шаблонът да бъде включен в exe файла по време на сглобяването). Сега за шаблона за файл на Excel. За драйвера ODBC листът на файла на Excel изглежда като обикновена таблица с колони и редове, така че трябва да подготвим малко нашия шаблон.

Първо - името на листа на латиница. Опитах се да пиша на руски, но шофьорът упорито отказваше да види листа. Може би съм направил нещо нередно, но ми писна от това поведение на шофьора и улесних живота и на двама ни, наречен лист-лист

След това драйверът трябва да има имена на колоните, за да работи. Опитах се да използвам колони от самия Excel, но драйверът не ги вижда. Той чете първия ред на листа и счита, че този ред е редът с имената на колоните. Затова направих малък трик. За първата клетка въведох А1, след това А2 и с плъзгане създадох ред с имена от А1 до А100. Този марж би ми бил достатъчен за заявка с възможно най-голям брой колони. Ето всичко за подготовката на шаблон на Excel