Форум: "Основная";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
ВнизКак данные из выборки в БД передать в Ексель? Найти похожие ветки
← →
Megabyte © (2005-02-14 01:07) [0]Т.е. мне надо передать в Ексель данные, полученные по запросу. Допустим, я в начале могу данные записать в DBGrid. Как оттуда их передать в Ексель?
← →
iskatel © (2005-02-14 01:10) [1]если руками то в экселе все есть - хрень называется "внешние данные" в меню "данные", а если из проги то юзай его как ком сервер и передавай...
← →
iskatel © (2005-02-14 01:22) [2]юзать можно двумя путями - через смарт поинтеры - быстро, но геморно и иногда глючит (в одном месте мне выдавало ошибку о несоответствии типов хотя вроде все правильно, все перепробовал)
второй путь - VARIANT обертки интерфейсов - проще, работает наверняка, но медленнее, на тебе пример, нарыл однажды, только он на сях, но принцип думаю поймеш
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "GetExcel.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm_GetExcel *Form_GetExcel;
//---------------------------------------------------------------------------
__fastcall TForm_GetExcel::TForm_GetExcel(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
/*
||
|| Launch Excel
||
*/
void __fastcall TForm_GetExcel::Button_LaunchExcelClick(TObject *Sender)
{
try
{
my_excel = Variant::GetActiveObject("excel.application");
}
catch (...)
{
try
{
my_excel = Variant::CreateObject("excel.application");
}
catch (...)
{
ShowMessage("GetExcel failed.");
return;
}
}
my_excel.OlePropertySet("Visible",(Variant)true);
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
/*
||
||
||
*/
void __fastcall TForm_GetExcel::Button_WorkbookClick(TObject *Sender)
{
Variant my_workbook;
Variant my_worksheet;
Variant my_range;
PropertyGet Range("Range");
PropertySet SetValue("Value");
PropertySet SetFormula("Formula");
PropertyGet GetValue("Value");
PropertyGet GetFormula("Formula");
my_workbook = my_excel.OlePropertyGet("ActiveWorkbook");
my_worksheet = my_workbook.OlePropertyGet("ActiveSheet");
Range.ClearArgs();
SetValue.ClearArgs();
my_range = my_worksheet.Exec(Range << "A1");
my_range.Exec(SetValue << "My Excel Worksheet");
Range.ClearArgs();
my_range = my_worksheet.Exec(Range << "B1:B5");
my_range.Exec(SetFormula << "=rand()");
Range.ClearArgs();
SetFormula.ClearArgs();
my_range = my_worksheet.Exec(Range << "A2");
my_range.Exec(SetFormula << "=sum(b1:b5)");
ShowMessage(my_range.OlePropertyGet("Value"));
ShowMessage(my_range.OlePropertyGet("Formula"));
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
/*
||
|| Add New Workbook
||
*/
void __fastcall TForm_GetExcel::Button_NewWorkbookClick(TObject *Sender)
{
Variant all_workbooks;
Variant my_workbook;
//-- Get workbooks collection
all_workbooks = my_excel.OlePropertyGet("Workbooks");
//-- Set number of worksheets to 1
my_excel.OlePropertySet("SheetsInNewWorkbook",(Variant)1);
//-- Create a new workbook
my_workbook = all_workbooks.OleFunction("Add");
}
//---------------------------------------------------------------------------
void __fastcall TForm_GetExcel::Button_SaveClick(TObject *Sender)
{
Variant my_workbook = my_excel.OlePropertyGet("ActiveWorkbook");
my_workbook.OleProcedure("Save");
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
/*
||
||
||
*/
void __fastcall TForm_GetExcel::Button_SaveAsClick(TObject *Sender)
{
Procedure SaveAs("SaveAs");
Variant my_workbook = my_excel.OlePropertyGet("ActiveWorkbook");
my_workbook.Exec(SaveAs << "c:\\my_file.xls");
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
/*
||
||
||
*/
void __fastcall TForm_GetExcel::Button_OpenClick(TObject *Sender)
{
Variant all_workbooks = my_excel.OlePropertyGet("workbooks");
Procedure Open("Open");
if (OpenDialog1->Execute())
{
all_workbooks.Exec(Open << OpenDialog1->FileName);
}
}
//---------------------------------------------------------------------------
← →
GanibalLector © (2005-02-14 02:28) [3]Вообще-то поиск еще рулит
http://delphimaster.net/view/3-1108027449/
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.053 c