Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Работа с Excel'ем


Автор: youri 9.6.2004, 02:31
Пытался вот получить доступ к Excel'евской таблице из Delphi. В результате таблица отображалась в DBGrid. Но вот извлечь из DBGrid какую-то информацию у меня не получилось. Как это можно сделать?

Автор: December 9.6.2004, 04:35
Что-то сомнительно, чтобы именно в DBGrid отобразилась информация. Может, StringGrid?

Автор: Maverick 9.6.2004, 09:03
Ну почему... он мог подключится через ODBC... Или ADO....

Только вот что такое "извлечь данные из грида" я понять не смог....

Автор: Georg4 9.6.2004, 09:45
Может это он имеет ввиду сохранить данные в какой-то удобоваримой форме?

Добавлено @ 09:46
Или возможность добавлять в файл ексел.
Но по-моему она там и так есть

Автор: youri 9.6.2004, 12:06
Цитата
Ну почему... он мог подключится через ODBC... Или ADO....

Именно через ADO
Цитата
Только вот что такое "извлечь данные из грида" я понять не смог....

Извлечь данные из грида - возможность получить содержимое любой ячейки. У меня в принципе (только не помню как) получилось извлечь содержимое ячеек первой строки (наверное потому, что она была текущей)

Автор: Maverick 9.6.2004, 15:00
Хо, друг мой.... Тут уже другие принципы в дело в ступают....
Но, чтобы не распространятся, ты скажи - ты хочешь имитацию Экселя соорудить? Или действительно у тебя там таблица?....
Если первое - кинь на форму Ole-контейнер с вкладки System по-моему, он у тебя экселем станет, если таковой в системе установлен...
Если таблица, то грид - это просто окошко, ничего из него получить нельзя.... Хранитель информации Table... C ADO я неработал, но думаю там стандартно.... У Table есть методы Next, First, MoveBy.... ну много... к полям можно обратится по имени и по индексу в таблице....
Хочешь ячеку [1,1] .... Значит Table.First (переместились на первую строку),
Table.Fields[0].Value - это значение первого поля (счет с нуля, по-моему).... (тут мог ошибится, проверить не могу счас, но примерно так).... Работать как в Экселе по координатам с DBGrid нельзя, забудь.....

Автор: youri 9.6.2004, 19:50
Спасибо. А я тут пытался воспользоваться TTable для этого же дела:
в Control Panel/ODBC Data Source Administrator/вкладка User DSN/список User Data Sources/Excel Files/кнопка Configure указал свою таблицу, выбрал в TTable.DatabaseName Excel Files, но при попытке задать содержимое поля TableName появляется пустой список (в моей таблице 2 листа), и, следовательно, когдп ставлю Table1.Active := True, Delphi мне говорит, что я не выбрал таблицу
Можете объяснить, в чем тут дело (аналогично делал для Access'овской базы данных - все работает)

Автор: Старик 11.6.2004, 10:50

Интересно !дай посмотреть строку подключения к таблице!

Автор: youri 12.6.2004, 01:27
Не совсем понял, какую строку ты имеешь ввиду.
Насколько я понимаю, TTable можно непосредственно ассоциировать с базой данных, для этого нужно установить свойства DatabaseName и TableName, а потом поставить Active:=TRUE. Затем к этой таблице можно подключить TDataSource, а к TDataSource - data-aware object

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)