Поиск:

Ответ в темуСоздание новой темы Создание опроса
> BC++ и MSExcel, Есть ли возможность доступа к файлу XLS 
:(
    Опции темы
SHShadow
Дата 5.12.2004, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 25.11.2004

Репутация: нет
Всего: нет



Подскажите господа программисты, помню что возможность доступа к XLS есть, но не помню с помощью какого компонента.
Помогите. smile
PM MAIL   Вверх
azesmcar
Дата 6.12.2004, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Используй COM...
Что под Visual C++, что под билдер, одно и тоже...хотя есть и компоненты, в самом конце...
Office Components что ли, что то похожее, но на самом деле они делают то же самое...просто вместо функций класс написан...вот маленький пример

Заголовок office.h
Код

// Office.h

#define Uses_MSO2000

#ifdef Uses_MSO2000
// for MS Office 2000
#import "C:Program FilesMicrosoft OfficeOfficeMSO9.DLL"
#import "C:Program FilesCommon FilesMicrosoft SharedVBAVBA6VBE6EXT.OLB"
#import "C:Program FilesMicrosoft OfficeOfficeMSWORD9.OLB"
       rename("ExitWindows","_ExitWindows")
#import "C:Program FilesMicrosoft OfficeOfficeEXCEL9.OLB"
       rename("DialogBox","_DialogBox")
       rename("RGB","_RGB")
       exclude("I","IPicture")
#import "C:Program FilesCommon FilesMicrosoft SharedDAODAO360.DLL"
       rename("EOF","EndOfFile") rename("BOF","BegOfFile")
#import "C:Program FilesMicrosoft OfficeOfficeMSACC9.OLB"
#else
// for MS Office 97
#import "C:Program FilesMicrosoft OfficeOfficeMSO97.DLL"
#import "C:Program FilesCommon FilesMicrosoft SharedVBAVBEEXT1.OLB"
#import "C:Program FilesMicrosoft OfficeOfficeMSWORD8.OLB"
       rename("ExitWindows","_ExitWindows")
#import "C:Program FilesMicrosoft OfficeOfficeEXCEL8.OLB"
       rename("DialogBox","_DialogBox")
       rename("RGB","_RGB")
       exclude("I","IPicture")
#import "C:Program FilesCommon FilesMicrosoft SharedDAODAO350.DLL"
       rename("EOF","EndOfFile")
       rename("BOF","BegOfFile")
#import "C:Program FilesMicrosoft OfficeOfficeMSACC8.OLB"
#endif

Заголовок немного надо отредактировать, тут ДЛЛ ки есть которые тебе не нужны конкретно для Excel-а...
Сам пример
Код

//excelapp.cpp
#include "stdafx.h"
#include <stdio.h>
#include "Office.h"

void main()
{
 ::CoInitialize(NULL);
 try {
   using namespace Excel;
   _ApplicationPtr excel("Excel.Application");
   excel->Visible[0] = true;

   // создаём новую книгу
   _WorkbookPtr  book  = excel->Workbooks->Add();
   // получаем первый лист (в VBA нумерация с единицы)
   _WorksheetPtr sheet = book->Worksheets->Item[1L];
                      // Аналогичная конструкция на VBA выглядит так:
                      // book.Worksheets[1]
                      // В библиотеке типов Item объявляется как метод или
                      // свойство по умолчанию (id[0]), поэтому в VB его
                      // можно опускать. На C++ такое, естественно, не пройдёт.

   // заполняем ячейки
   sheet->Range["B2"]->FormulaR1C1 = "Строка 1";
   sheet->Range["C2"]->FormulaR1C1 = 12345L;
   sheet->Range["B3"]->FormulaR1C1 = "Строка 2";
   sheet->Range["C3"]->FormulaR1C1 = 54321L;
   // заполняем и активизируем итоговую строку
   sheet->Range["B4"]->FormulaR1C1 = "Итого:";
   sheet->Range["C4"]->FormulaR1C1 = "=SUM(R[-2]C:R[-1]C)";
   sheet->Range["C4"]->Activate();

   // типа делаем красиво :o)
   sheet->Range["A4:D4"]->->ColorIndex = 27L;
   sheet->Range["A4:D4"]->Interior->ColorIndex = 5L;
            // Постфикс L говорит, что константа является числом типа long.
            // Вы всегда должны приводить числа к типу long или short при
            // преобразованию их к _variant_t, т.к. преобразование типа int
            // к _variant_t не реализовано. Это вызвано не желанием
            // разработчиков компилятора усложнить нам жизнь, а спецификой
            // самого типа int.

 } catch (_com_error& er) {
   char buf[1024];
   sprintf(buf,"_com_error:n"
               "Error       : %08lXn"
               "ErrorMessage: %sn"
               "Description : %sn"
               "Source      : %sn",
               er.Error(),
               (LPCTSTR)_bstr_t(er.ErrorMessage()),
               (LPCTSTR)_bstr_t(er.Description()),
               (LPCTSTR)_bstr_t(er.Source()));

   CharToOem(buf,buf); // только для косольных приложений
   printf(buf);
 }
 ::CoUninitialize();
}

PM   Вверх
SHShadow
Дата 15.12.2004, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 25.11.2004

Репутация: нет
Всего: нет



Огромное тебе спасибки!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0608 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.