Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение таблиц Ехсел 
:(
    Опции темы
Guest
  Дата 26.11.2003, 14:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Подскажите тому кто в танке - как программно прочитать таблицу Ехсел из Визуал С++?


  Вверх
Albinos
Дата 26.11.2003, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Есть вариант - подцепляешь ее через ODBC, а дальше работаешь как с обыкновенной базой данных. Подход не самый быстрый, зато имеет преимущество - использование SQL для анализа таблицы.

Другой вариант - создать программно Ole объект Excel, открыть в нем файл экселя, и работать с таблицой через Ole. Такое работает еще медленнее, из преимуществ - можно пользоваться средствами Excel.

пример (к сожалению, на дельфи sad.gif ):
Код

var
  Excel: Variant;
begin
...........
/// Создать объект
try
   Excel := CreateOleObject('Excel.Application');
except
   ShowMessage('Не обнаружен MS Excel.');

   Exit;
end;

/// Открыть файл
try
   Excel.Workbooks.Add(SourceFile.Text);
Except
   ShowMessage('Невозможно открыть файл: ' + SourceFile.Text);

   Exit;
End;

/// или создать новый
try
   Excel.Workbooks.Add();
Except
   ShowMessage('Невозможно создать книгу.');

   Exit;
End;

....................

/// Дальнейшее обращение

/// Считать из открытого файла
temp := Excel.Workbooks[1].Worksheets[1].Cells[1, 1];

/// записать в созданный
Excel.Workbooks[2].Worksheets[1].Cells[1, 1] := temp;


.....................

/// Закрыть книги и сохранить

/// Закрыть первую книгу
Excel.Workbooks[1].Close;

/// Сохранить и закрыть созданную. У нее теперь тоже индекс 1 [B](!!!)[/B]
Excel.Workbooks[1].SaveAs(DestinationFile.Text);

........................
/// Показать Excel в нормальном виде

Excel.ActiveWindow.View := 1;
Excel.Visible := true;



Не стоит забывать выгружать Excel...

Внимание!!! Любая индексация начинается с 1.

Извини за дельфи, просто там было проще сделать, а в свое время надо было быстро написать приложение...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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