|
Из Buildera в Excel ! А я не могу????
|
|||
---|---|---|---|
#18+
Ребята, помогите с сылками по тематике перенесения данных из Builder на Excel Читал ссылки по Делфи (ребята из раздела Delphi подкинули), но мне бы с Bulder-ом поработать! Помогите, если можете!! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2003, 13:10 |
|
Из Buildera в Excel ! А я не могу????
|
|||
---|---|---|---|
#18+
Да да да да да! Подскажите. Очень интересная тема. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2003, 15:10 |
|
Из Buildera в Excel ! А я не могу????
|
|||
---|---|---|---|
#18+
А если точно так же попробовать? выброс в Excel идет при помощи COM функций Excel'я а по сему не столь важно на чем писать... на Дельфи на билдере или вообще на VB ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2003, 10:35 |
|
Из Buildera в Excel ! А я не могу????
|
|||
---|---|---|---|
#18+
COM "функции" это конечно хорошо - но только как альтернатива веревке Если нужно не изобретать колесо, а писать программу то есть XL Reports и для BCB и для Delphi - если нужно могу прислать ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2003, 12:28 |
|
Из Buildera в Excel ! А я не могу????
|
|||
---|---|---|---|
#18+
Насколько я понял человека интересовал вывод данных в Excel из его программы, а не построение отчетов... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2003, 06:39 |
|
Из Buildera в Excel ! А я не могу????
|
|||
---|---|---|---|
#18+
Вывод данных из программы в Excel это и есть построение отчетов! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2003, 08:40 |
|
Из Buildera в Excel ! А я не могу????
|
|||
---|---|---|---|
#18+
не всегда.... вообще говоря Excel это не средство для построения отчетов... и вывод в него данных это возможно лишь для приведения к какомуто общему формату для третей программы, которой нужны эти данные... а тут отчетами и не пахнет... Если хотелось генератор отчетов прорекламировать, то это другое дело :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2003, 08:58 |
|
Из Buildera в Excel ! А я не могу????
|
|||
---|---|---|---|
#18+
Variant ex,wb,wb1,ws,ws1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { ex = Variant::CreateObject("Excel.Application"); ex.OlePropertySet("Visible",true); } //--------------------------------------------------------------------------- void __fastcall TForm1::BitBtn1Click(TObject *Sender) { wb=ex.OlePropertyGet("Workbooks"); // wb.OleProcedure("Add"); wb.OleProcedure("Open","d:\\temp\\book1.xls"); wb1=wb.OlePropertyGet("Item",1); ws=wb1.OlePropertyGet("Worksheets"); ws1=ws.OlePropertyGet("Item",1); ws1.OlePropertyGet("Cells").OlePropertyGet("Item",2,2).OlePropertySet("Value",777); wb1.OleProcedure("SaveAs","d:\\temp\\book1.xls"); wb1.OleProcedure("PrintPreview"); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) { ex.OleFunction("Quit"); } //-------------------- ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2003, 16:26 |
|
Из Buildera в Excel ! А я не могу????
|
|||
---|---|---|---|
#18+
_kyky, спасибо! То, что нужно. Но где бы про это почитать? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2003, 14:55 |
|
Из Buildera в Excel ! А я не могу????
|
|||
---|---|---|---|
#18+
В RAMBLER набери OlePropertyGet ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2003, 10:53 |
|
Из Buildera в Excel ! А я не могу????
|
|||
---|---|---|---|
#18+
Я уже работаю с Excel, вот небольшая библиотека //--------------------------------------------------------------------------- //Работа с Excel //--------------------------------------------------------------------------- //Создаем объект по указанному файлу TExcel::TExcel(AnsiString Path) { this->Path = Path; //Загружаем форму myExcel = NULL; allWorkbooks = NULL; myWorkbook = NULL; myWorksheet = NULL; myRange = NULL; try { //Загрузка Excel try { myExcel = Variant::GetActiveObject("excel.application"); } catch( ... ) { myExcel = Variant::CreateObject("excel.application"); } OpenFile = true; allWorkbooks = myExcel.OlePropertyGet("Workbooks"); Procedure Open("Open"); allWorkbooks.Exec(Open << Path); myWorkbook = myExcel.OlePropertyGet("ActiveWorkbook"); myWorksheet = myWorkbook.OlePropertyGet("ActiveSheet"); } catch( ... ) { //Форма не найдена, или ошибочна. Оставляем MyThrow::Throw("Не могу найти форму по умолчанию!"); } } //--------------------------------------------------------------------------- //Освобождаем файл //С запросом о сохранении данных TExcel::~TExcel() { if(OpenFile) { Close(); } }; //--------------------------------------------------------------------------- //Закрытие файла с запросом void TExcel::Close() { try { Procedure prClose("Close"); myWorkbook.Exec(prClose); } catch(Exception* E) { Application->ShowException(E); } OpenFile = false; }; //--------------------------------------------------------------------------- //Закрытие файла с сохранением или без него void TExcel::Close(bool SaveFile) { try { Procedure Close("Close"); myWorkbook.Exec(Close << SaveFile); } catch(Exception* E) { Application->ShowException(E); } OpenFile = false; }; //--------------------------------------------------------------------------- //Заносим данные в Excel void TExcel::SetValue(AnsiString Col, AnsiString Row, AnsiString Value) { PropertyGet Range("Range"); PropertySet SetValue("Value"); PropertySet SetFormula("Formula"); //Запись данных Range.ClearArgs(); SetValue.ClearArgs(); myRange = myWorksheet.Exec(Range << (Col + Row)); myRange.Exec(SetValue << Value); }; //В стиле R1C1 void TExcel::SetValue(int Col, int Row, AnsiString Value) { PropertyGet Cells("Cells"); PropertySet SetValue("Value"); PropertySet SetFormula("Formula"); //Запись данных Cells.ClearArgs(); SetValue.ClearArgs(); myRange = myWorksheet.Exec(Cells << Col << Row); myRange.Exec(SetValue << Value); }; //--------------------------------------------------------------------------- //Читаем данные из Excel AnsiString TExcel::GetValue(AnsiString Col, AnsiString Row) { PropertyGet Range("Range"); PropertyGet GetValue("Value"); PropertyGet GetFormula("Formula"); //Чтение данных Range.ClearArgs(); myRange = myWorksheet.Exec(Range << (Col + Row)); return myRange.OlePropertyGet("Value"); }; //В стиле R1C1 AnsiString TExcel::GetValue(int Col, int Row) { PropertyGet Cells("Cells"); PropertyGet GetValue("Value"); PropertyGet GetFormula("Formula"); //Чтение данных Cells.ClearArgs(); myRange = myWorksheet.Exec(Cells << Col, Row); return myRange.OlePropertyGet("Value"); }; //--------------------------------------------------------------------------- //Устанавливает указанную страницу void TExcel::WorkSheet(AnsiString Sheet) { PropertyGet Sheets("Sheets"); Sheets.ClearArgs(); myWorksheet = myWorkbook.Exec(Sheets << Sheet); } //--------------------------------------------------------------------------- //Устанавливает указанную страницу void TExcel::WorkSheet(int Sheet) { PropertyGet Sheets("Sheets"); Sheets.ClearArgs(); myWorksheet = myWorkbook.Exec(Sheets << Sheet); } //--------------------------------------------------------------------------- //Печать void TExcel::Print() { // Procedure PrintOut("PrintOut"); // myWorkbook.Exec(PrintOut); Run("PrintDocument"); }; //--------------------------------------------------------------------------- //Выполняет макрос с заданным именем void TExcel::Run(AnsiString Macros) { Procedure RunMacros("Run"); myExcel.Exec(RunMacros << Macros); }; //--------------------------------------------------------------------------- ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2003, 19:16 |
|
Из Buildera в Excel ! А я не могу????
|
|||
---|---|---|---|
#18+
Когда использую данную компоненту если зати в редактирование (у меня Excel) после выхода остается не выгруженным Excel и лезут прочие глюки. Что делать? Кстати если просто загрузить и выйти, то все ок. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2003, 19:20 |
|
Из Buildera в Excel ! А я не могу????
|
|||
---|---|---|---|
#18+
//Работа с Excel class TExcel { private: //Загрузка Excel Variant myExcel; Variant allWorkbooks; Variant myWorkbook; Variant myWorksheet; Variant myRange; //Путь к файлу AnsiString Path; //Файл открыт и в Destroy надо его закрыть bool OpenFile; public: //Создаем объект по указанному файлу TExcel(AnsiString Path); //Освобождаем файл //С запросом о сохранении данных ~TExcel(); //Заносим данные в Excel void SetValue(AnsiString Col, AnsiString Row, AnsiString Value); //В стиле R1C1 void SetValue(int Col, int Row, AnsiString Value); //Читаем данные из Excel AnsiString GetValue(AnsiString Col, AnsiString Row); //В стиле R1C1 AnsiString GetValue(int Col, int Row); //Устанавливает указанную страницу по названию или номеру строницы void WorkSheet(AnsiString Sheet); void WorkSheet(int Sheet); //Возращаем путь к загруженному файлу AnsiString GetPath(){return Path;}; //Печать void Print(); //Выполняет макрос с заданным именем void Run(AnsiString Macros); //Закрыть файл //Закрытие файла с запросом void Close(); //Закрытие файла с сохранением или без него void Close(bool SaveFile); }; //--------------------------------------------------------------------------- ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2003, 19:21 |
|
Из Buildera в Excel ! А я не могу????
|
|||
---|---|---|---|
#18+
or, cпасибо! Я нечто подобное уже тоже наваял, но вот этого ниже у меня не было. А надо :) //--------------------------------------------------------------------------- //Выполняет макрос с заданным именем void TExcel::Run(AnsiString Macros) { Procedure RunMacros("Run"); myExcel.Exec(RunMacros << Macros); }; //--------------------------------------------------------------------------- ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2003, 12:48 |
|
|
start [/forum/topic.php?fid=57&msg=32106510&tid=2036435]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 133ms |
0 / 0 |