Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];

Вниз

Excel таблица в Delphi. Редактирование, удаление, поиск ???   Найти похожие ветки 

 
Hmm ©   (2004-10-30 13:22) [0]

Т.е. возможна ли работа с таблицей Excel, как с обыкновенной  таблицей (Paradox) или бд (Access)? Могу ли я какими-то спец. средствами, скажем, выводить её в DBGrid ?

Я не имею ввиду технологию OLE.


 
sniknik ©   (2004-10-30 15:02) [1]

ADO + Jet все перечисленное кроме удаления.


 
Hmm ©   (2004-10-30 15:58) [2]

2 sniknik

кидаю на форму TAdoConnection, использую мастер создания соединения указываю в качестве провайдера Microsoft JET 4.0 Ole DB Provider, перехожу на закладку - подключения - указываю Excel_таблицу - C:\1.xls, жму - проверить подключение, в ответ сообщение об ошибке: "... нераспозноваемый формат данных".

выозможно я что-то не так делаю? или не правильно понял суть этого загадочного ADO + Jet?


 
Hmm ©   (2004-10-30 16:17) [3]

Извиняйте, поторопился! Помудрив немного установил таки соединение.

Теперь новая проблемма: как обозначить таблицу (которая находится на закладке Лист1 в excel файле) в св-ве Tablename(ADOTable) или в SQL (ADOQuery) ?


 
jack128 ©   (2004-10-30 17:02) [4]

Лист1 ???


 
sniknik ©   (2004-10-30 19:06) [5]

> Лист1 ???
не
[Лист1$] если в запросе, иногда можно без скобок, имя в таблице аналогично но лучше таблицами не пользоваться.


 
Hmm ©   (2004-10-30 20:01) [6]

большое спасибо, всё работает.

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

ЗЫ: именно при работе с Excel.


 
sniknik ©   (2004-10-30 20:34) [7]

редактировать можно, удалять нельзя, записи.
копируй в другую таблицу запросом после удалиш всю старую таблицу, либо перемешай на место удаляемых записи с конца, в конце же устанавливай значения в null, после любое изменение в екселе (или через OLE) скинет счетцик записей с пустых записей.


 
Hmm ©   (2004-10-30 21:03) [8]

хм... редактировать не получается, выдается ошибка: "...драйвер ODBC Excel... должен использоваться обновляемый запрос", о каком запросе может идти речь, если я работаю с ADOTable (собственно таже ошибка и с ADOQuery)?!


 
AZDesign   (2004-10-30 21:12) [9]

Есть компонент фирмы Axolot (по моему швеция) который работает напрямую с файлом Excel. У меня версия 1.23 стоила 30$
Недавно прислали рекламу на версию 2.0 - 199$
Очень удобно - нет ни OLE, ни ODBC


 
Hmm ©   (2004-10-30 21:25) [10]

2 AZDesign

всё было бы круто, если бы я имел эти 30-199$ на подобные вещи =)
фриварных, вы, конечно же, не знаете?


 
sniknik ©   (2004-10-30 22:27) [11]

> "...драйвер ODBC Excel... должен использоваться обновляемый запрос"
говорю же используй jet, ODBC все одно ему запросы передает (если он есть) только коверкает их по своему, поэтому нежелательно его использовать.

> если я работаю с ADOTable
а вот это совсем зря. перешол на ADO, забудь про тейблы. query тоже не стоит, ADODataSet все заменяет, все что рекордсеты возврашает.

не задумался почему, при использовании ADOTable ошибка "должен использоваться обновляемый запрос"?


 
Hmm ©   (2004-10-31 00:08) [12]

задумывался, сделал вывод, что Table и запрос вещи несовместимые. ошибка всёравно одна, что при юзании Table, что Query, DataSet не пробовал, но думаю суть сдесь не в этом.

Jet я уже пробовал, собственно:  Hmm ©   (30.10.04 15:58) [2]

не могли бы вы запостить здесь строку connectionstring, чтобы мне было от чего отталкиваться.

(моя строка вот: Provider=MSDASQL.1;Persist Security Info=False;Mode=ReadWrite;Extended Properties="DSN=xls;DBQ=C:\1.xls;DefaultDir=C:;DriverId=790;FIL=excel 8.0;MaxBufferSize=2048;PageTimeout=5;")


 
sniknik ©   (2004-10-31 00:54) [13]

> задумывался, сделал вывод, что Table и запрос вещи несовместимые.
не, вывод должен быть такой, ADOTable работает через те же запросы (поэтому и ошибку дает от запроса), только контролировать ты их не можеш (нафига он тогда нужен?).  

> ошибка всёравно одна, что при юзании Table, что Query, DataSet не пробовал, но думаю суть сдесь не в этом.
верно, скорее всего не от компанента зависит. может от многих вещей от "неправильных" данных и "сложных" запросов до отсутствия индексов и безопасности на NTFS. (смысл в том, что чтото мешает создать связь между данными на диске и рекордсетом в памяти по которой осуществляются обновления этих данных)
кстати если будеш пробовать ADODataSet одним из вариантов можеш поставить
CommandType - cmdTableDirect
CommandText - Лист1$
CursorLocation - clUseServer
и открыть

> не могли бы вы запостить здесь строку connectionstring, чтобы мне было от чего отталкиваться.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Книга1.xls;Extended Properties=Excel 8.0;Persist Security Info=False


 
Hmm ©   (2004-10-31 08:00) [14]

Теперь всё ok! sniknik, спасибо!



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.039 c
10-1068562249
AlexanderSK
2003-11-11 17:50
2004.11.28
В каком режиме синхронном или асинхронным работает DataSnap?


6-1095420604
Softal
2004-09-17 15:30
2004.11.28
Ssh


14-1099931906
Piter
2004-11-08 19:38
2004.11.28
Интересно, почему работает следующий код :)


3-1099023202
sanek
2004-10-29 08:13
2004.11.28
как сложить цифровые данный из разных ячеяк таблици


1-1100336552
ceval
2004-11-13 12:02
2004.11.28
архивация файлов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский