Приступ и управљање МС Екцел листовима помоћу Делпхија

Овај корак-по-корак водич описује како се повезати с Мицрософт Екцел-ом, преузети податке са листа и омогућити уређивање података помоћу ДБГрид-а. Пронаћи ћете и листу најчешћих грешака које се могу појавити у процесу, као и начин на који их треба решити.

Шта је покривено испод:

  • Методе за пренос података између Екцел-а и Делпхи. Како да се повежете са Екцелом АДО (АцтивеКс подаци објекти) и Делпхи.
  • Креирање Екцел уређивача прорачунских таблица помоћу Делпхија и АДО-а
  • Дохваћање података из Екцела. Како референцирати табелу (или распон) у Екцеловој радној књизи.
  • Расправа о типовима поља (ступца) у Екцелу
  • Како изменити Екцел листове: уредити, додати и избрисати редове.
  • Пренос података из Делпхи апликације у Екцел. Како створити радни лист и напунити га прилагођеним подацима из МС Аццесс базе података.

Како да се повежете са Мицрософт Екцел-ом

Мицрософт Екцел је моћан калкулатор за прорачунске таблице и алат за анализу података. Будући да се редови и ступци радног листа у Екцелу уско односе на редове и ступце табеле базе података, многи програмери сматрају да је прикладно да своје податке пребаце у радну књигу у Екцелу ради анализе; и након тога преузмите податке назад у апликацију.

instagram viewer

Најчешће кориштен приступ за размену података између ваше апликације и Екцела је Аутоматизација. Аутоматизација пружа начин читања Екцел података помоћу модела Екцел-овог објекта како би се уронио у радни лист, извадио његове податке и приказао унутар компоненте сличне мрежи, наиме ДБГрид или СтрингГрид.

Аутоматизација вам пружа највећу флексибилност за лоцирање података у радној књизи као и могућност форматирања радног листа и извршавања различитих подешавања у току рада.

За пренос података у Екцел и из њега без аутоматизације можете користити друге методе као што су:

  • Запишите податке у текстуалну датотеку ограничену зарезом и пустите Екцел да их парира у ћелије
  • Пренос података помоћу ДДЕ (Динамиц Дата Екцханге)
  • Пренесите своје податке на и са радног листа помоћу АДО

Пренос података користећи АДО

Будући да је Екцел компатибилан са ЈЕТ ОЛЕ ДБ-ом, можете се повезати с њим помоћу Делпхија помоћу АДО (дбГО или АдоЕкпресс) и затим преузети Подаци радног листа у АДО скупу података издавањем СКЛ упита (баш као што бисте отворили скуп података према било којој бази података сто).

На овај начин су доступне све методе и карактеристике објекта АДОДатасет за обраду Екцел података. Другим речима, коришћењем АДО компоненти можете да направите апликацију која може користити Екцел радну књигу као базу података. Друга важна чињеница је да је Екцел ван процеса АцтивеКс сервер. АДО покреће поступак и штеди режијске трошкове скупих ванпроцесних позива.

Када се повежете с програмом Екцел помоћу АДО-а, само можете размјењивати необрађене податке у радну књигу и из ње. АДО веза се не може користити за форматирање листа или за примену формула у ћелије. Међутим, ако пренесете своје податке на унапред форматирани радни лист, формат ће се задржати. Након што се подаци додају из ваше апликације у Екцел, можете извршити било које условно обликовање користећи (унапред снимљени) макронаредбу на радном листу.

Можете се повезати с Екцелом помоћу АДО-а с два ОЛЕ ДБ провајдера који су дио МДАЦ-а: Мицрософт Јет ОЛЕ ДБ Провидер или Мицрософт ОЛЕ ДБ Провидер за ОДБЦ драјвере. Фокусират ћемо се на Јет ОЛЕ ДБ Провидер, који се може користити за приступ подацима у радним књигама програма Екцел путем инсталираних управљачких програма Индексног секвенцијалног приступа (ИСАМ).

Савет: Погледајте Курс за почетнике у Делфима Програмирање базе података АДО-а ако сте нови у АДО-у.

Магиц ЦоннецтионСтринг

Својство ЦоннецтионСтринг говори АДО-у како да се повеже на извор података. Вриједност која се користи за ЦоннецтионСтринг састоји се од једног или више аргумената које АДО користи за успостављање везе.

У Делфима компонента ТАДОЦоннецтион инкапсулира објект АДО везе; може да се дели са више компонената АДО базе података (ТАДОТабле, ТАДОКуери итд.) компонентама кроз своја својства везе.

Да бисте се повезали с Екцелом, ваљани низ повезивања укључује само два додатна податка - цео пут до радне књиге и верзију датотеке Екцел.

Законита веза може изгледати овако:

ЦоннецтионСтринг: = 'Провајдер = Мицрософт. Млазни. ОЛЕДБ.4.0; извор података = Ц: \ МиВоркБоокс \ миДатаБоок.клс; Проширена својства = Екцел 8.0; ';

При повезивању са спољним форматом базе података који подржава Јет, потребно је подесити проширена својства везе. У нашем случају, када се повезујете с Екцел "базом података", проширена својства се користе за подешавање верзије датотеке Екцел.

За радну књигу програма Екцел95 ова вредност је „Екцел 5.0“ (без наводника); користите „Екцел 8.0“ за Екцел 97, Екцел 2000, Екцел 2002 и ЕкцелКСП.

Важно: Морате користити Јет 4.0 Провидер јер Јет 3.5 не подржава ИСАМ управљачке програме. Ако поставите Јет Провидер на верзију 3.5, добићете грешку „Не могу пронаћи инсталиран ИСАМ“.

Друго Јет проширено својство је "ХДР =". "ХДР = Да" значи да постоји низ заглавља у распону, тако да Јет неће укључити први ред одабира у скуп података. Ако је специфицирано „ХДР = Не“, тада ће провајдер укључити први ред распона (или именовани распон) у скуп података.

Први ред у опсегу сматра се задњим редом заглавља ("ХДР = Да"). Стога, ако имате заглавље ступца, не требате да наведете ову вредност. Ако немате заглавља ступаца, морате да одредите "ХДР = Не".

Сада када сте спремни, ово је део у коме ствари постају занимљиве јер смо сада спремни за неки код. Хајде да видимо како да креирате једноставни Екцел едитор за прорачунске таблице користећи Делпхи и АДО.

Белешка: Требало би да наставите чак и ако вам недостаје знање о АДО и Јет програмирању. Као што ћете видети, уређивање Екцелове радне књиге је једноставно као уређивање података из било које стандардне базе података.