На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
  
> Как работать с EXCEL? Читайте!!!
    Уже не раз вижу как народ ищет эту информацию, сам, всё, что можно перерыл но не одного примера нормального и совета под Билдер не нашёл.
    Но вот наткнулся, у себя на винте. Читайте. Может очень пригодится.
    Просто жалко мне стало тех, кто также как и я будет мучатся в поисках.
    ExpandedWrap disabled
      #include <Classes.hpp>
      #include <Controls.hpp>
      #include <StdCtrls.hpp>
      #include <Forms.hpp>
      #include <ExtCtrls.hpp>
      #include <Dialogs.hpp>
      #include <OleCtnrs.hpp>
      #include <utilcls.h>
      #include "GetExcel.h"
      //---------------------------------------------------------------------------
      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"));
      }
      //---------------------------------------------------------------------------
      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);
            }
      }

    Спасибо можно на мыло :) kpavelu@rambler.ru  ;)
    Сообщение отредактировано: trainer -
      Если нужен готовый исходник, то вот сюда.
      BCB5 or BCB6

      http://www.buildercpp.narod.ru/files/sources/getexcel.rar
        Этот исходник теперь тут.

        http://www.buildercpp.net.ru/upload1/index...me=getexcel.rar
          Monster, А нет ли у тебя хорошего мануала? И желательно по Word!

          ПЛИЗ!!!
            M
            Используем тег [code] для добавление текста программы в пост! Устное предупреждение! Читаем правила!
              Budda, если хочешь получить из проги доступ к OLE серверу worda, лучше читай мануал к VB (открой VB из worda) и смотри Microsoft Word Objects, а дальше как примере выше только для wordа. :yes:
                Цитата Monster, 19.02.03, 17:04
                Уже не раз вижу как народ ищет эту информацию, сам, всё, что можно перерыл но не одного примера нормального и совета под Билдер не нашёл.
                Ну так спросил бы. И кто-нибудь тебе ответил. :) Например, я :)
                  А нельзя сделать так чтобы текст из екселя открывался в мемо или в стринг грид
                    Цитата СоколовАН @
                    А нельзя сделать так чтобы текст из екселя открывался в мемо или в стринг грид

                    Подключи документ как источник данных и читай средствами доступа к БД.
                      А можно по конкретней
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0400 ]   [ 16 queries used ]   [ Generated: 8.10.24, 03:10 GMT ]