Шаг 15 - Пишем в таблицы Excel

Привет Артем!
Меня зовут Аня. Я заглянула на твой сайт, но не нашла ответа
на свою проблему. Как из своей программы послать данные в другую
программу, в частности я хочу сохранять свои данные(несколько
массивов чисел) в таблице Excel, чтобы в дальнейшем можно было
бы открыть эти данные в другой программе. Предполагаю, что это
можно сделать с помощью OLE. Очень прошу помоги мне. Посоветуй
хотя бы книгу где это можно найти(на русском языке). Ответ можешь
прислать на мой почтовый ящик.
Аня

Пора положить этому конец. Многие программы нуждаются в том, чтобы сохранять данные в Excel. Давайте сделаем это в конце концов.

Давайте создадим консольное приложение WIN32 Console. Незабудьте поставить использование классов MFC:

15_1.gif (4219 b)

// TestConfig.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "afxwin.h"
#include "iostream.h"
#include "afxdb.h"

void main()
{
	CDatabase cdbMyDB;
	cdbMyDB.Open("New Excel Data Source");
	cdbMyDB.ExecuteSQL("CREATE TABLE mydata (FirstName TEXT,LastName TEXT)"); 
	cdbMyDB.ExecuteSQL("INSERT INTO mydata (FirstName,LastName) VALUES('Kaev','Artem');");
	cdbMyDB.Close(); 
}

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

15_2.gif (3524 b)

Если мы хотим автоматически настроить соединение ODBC при установке программного обеспечения, то нам нужно изменить немного код прошлого шага для установки текущего каталога и версии.

if (!SQLConfigDataSource(NULL,ODBC_ADD_DSN,
	"Microsoft Excel Driver (*.xls)",
	"DSN=New Excel Data Source\0"
	"Description=New Excel Data Source\0"
	"DriverId=278\0"
	"DefaultDir=C:\\ExcelData\0" 
	"MaxScanRows=8\0"))
{
	cout << "Error config ODBC" << endl;
}

Параметр DefaultDir устанавливает текущий каталог. DriverID - устанавливает версию драйвера. Вот результат работы программы:

15_3.gif (4954 b)


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 30.01.2001