Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Сохранение данных в Excel

Привет всем !!!

Подскажите пожалуйста, как в VC++ сохранять данные в таблицы Excel.

Имеются данные, которые с определенной периодичностью надо сохранять в
Excel.

float mPaver, //P
mQReactivPower, //Q
mSummPower; //S

{
//Создание таблицы
CDatabase database;
CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)";
CString sExcelFile = "c:\\testxls.xls";
CString sSql;
TRY
{
sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",
sDriver,sExcelFile,sExcelFile);
if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
{
sSql = "CREATE TABLE test (P NUMBER, Q NUMBER, S NUMBER)";
database.ExecuteSQL(sSql);

}
database.Close();
}
CATCH_ALL(e)
{
AfxMessageBox("ODBC Excel драйвер не установлен.", MB_OK | MB_ICONSTOP,
0);
}
END_CATCH_ALL;
}

Пробовал так:
sSql = "INSERT INTO test (P, Q, S) VALUES (mPaver, mQReactivPower, mSummPower)";
но не чего не получается.

Что надо добавить или изменить, чтобы сохранить данные в таблице?

Ответить   Fri, 24 May 2002 00:15:20 +0700 (#152116)

 

Ответы:

Vova wrote:

Пишите в text file и link'айте его их Excel, Access etc.
Footprint минимальный и много других преимуществ.

--
Sam Mesh - http://openrules.com
Номер выпуска : 3109
Возраст листа : 244 (дней)
Количество подписчиков : 406
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/152193
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sam Mesh Sun, 23 May 2004 13:42:23 -0400 (#152193)

 

Здравствуйте, Sam.

Я понимаю что text проще, но надо чтобы сохранял именно в Excel, без
всяких лишних "телодвижений".

Ответить   Fri, 24 May 2002 15:42:41 +0700 (#152552)

 

Здравствуйте !

Гм... А у меня все получилось :-) Прямо по Вашему примеру !
Вам надо немного SQL подучить - Вы, кажется, сам принцип
недопонимаете.

Приведу только кусочек кода :

if(database.OpenEx(sSql, CDatabase::noOdbcDialog))
{
sSql = "CREATE TABLE test (P NUMBER, Q NUMBER, S NUMBER)";
database.ExecuteSQL(sSql);

mPaver = 1.1111;
mQReactivPower = 2.2222;
mSummPower = 3.3333;

sSql.Format("INSERT INTO test(P, Q, S) VALUES (%f, %f, %f)",
mPaver, mQReactivPower, mSummPower);

database.ExecuteSQL(sSql);
}

Все Ок !

--
С уважением, Вахтуров Виктор.
Номер выпуска : 3112
Возраст листа : 245 (дней)
Количество подписчиков : 404
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/153209
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 24 May 2004 21:48:58 +0400 (#153209)

 

Victor V. Vakchturov wrote:

Cool, что все так получилось! - Вы решили, что SQL видит ваши C
переменные? :)

Естественный интерфейс - COM - на M$ он есть на шару.

Навскид пару самопалов (не сертифицированных мелкомягкими):

http://sourceforge.net/projects/xlw
XLW is a C++ wrapper of the Excel C API described in Microsoft Excel 97
Developer's Kit.
(Search for "excel" on sf.net - http://sourceforge.net/search/?q=excel)

http://www.carlosag.net/Tools/ExcelWriter
Library to Generate Excel XML Workbooks in .NET

Мы пользуем http://jakarta.apache.org/poi/ на Java - пока не жалуемся.

ЗЫ. Все-равно, остаюсь при своем - стат данные *без всяких лишних
"телодвижений"* писАть надо в text files.
Даже database есть "телодвижение".
Excel - большое "телодвижение". Как вы, например, будете восстанавливать
corrupted XLS?

--
Sam Mesh - http://openrules.com
Номер выпуска : 3113
Возраст листа : 246 (дней)
Количество подписчиков : 404
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/153370
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sam Mesh Mon, 24 May 2004 14:25:37 -0400 (#153370)

 

Здравствуйте, Sam.

Просто неправильно записал функцию.

Я пишу преддипломную работу "ПО верхнего уровня системы
энергоучета", - эмулятор счетчика эл.энергии. И препод попросил, чтобы
программа, кроме текстового вариант сохраняла данные и в XLS, так
их "типо" проще обрабатывать. Короче хочешь -не хочешь, а чтобы XLS был,
вот и приходится использовать SQL.

Ответить   Sat, 25 May 2002 15:10:34 +0700 (#153665)

 

Здравствуйте, Victor.

Спасибо.
Свою ошибку понял. Все заработало.

Да с SQL я практически не знаком, все нет времени разобраться, надо
будет как-нибудь восполнить пробелы в знании SQL.

Ответить   Sat, 25 May 2002 15:10:29 +0700 (#153662)