Всем привет! Я занимаюсь нумизматикой и создал для удобства список всех своих монет в Excel таблице. А теперь стал увлекаться Delphi и возникла идея написать базу данных по монетам на Delphi. Чтобы не вносить все данные вручную хочу скопировать все данные из excel в dbgrid. Но у меня получается их копировать только по одному. Из экселя я их получаю с помощью variant переменной MatrixRange[A3,F1500].value. А как мне их вставить всей таблицей?
Если я что-то неясно объяснил - пишите.
Спасибо.
Артём
Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
Помилуй, а не проще сохранить xls-таблицу в формате БД (дедушкин DBase или что иное)? А потом просто построчно перенести из полученного файла в нужную базу (цикл на количество строк в старой таблице)?
Василий, спасибо! Этот вариант пошёл. Вот теперь бы скопироватьне одну строку [A3,F3] a несколько, например [A3,F100].
Про ADO, я пока вообще ничего незнаю:(
Я хочу перенести все данные другую БД. Понятно, что DBGrid лишь отображает эти данные. Вот небольшой кусок кода:
RangeMatrix:= XLApp.Range['A3','F3'].Value;
for y:=1 to 6 do begin
Table1.Insert;
Table1.Fields[y].Value:= RangeMatrix[1,y];
Table1.Post;
Так вставляется одна ячейка и следующая идёт на новую строку, типа:
1
копейка
1811
Россия
А надо чтобы они шли в одну строку. А думал что надо создать массив, но как не знаю :( Кстати вообще Range будет не [А3, F3], a [A3, F1653]
Непонятно, чего Вы хотите...Сделать чисто визуализацию из Excel-я, или перенести данные в другую СУБД? "скопировать все данные из excel в dbgrid" - по крайней мере странно звучит копирование из хранилища фактически на экран. Если Вы хотите перейти на СУБД, то, в конечном итоге, добавление и редактирование в СУБД - чисто по одной записи. И никуда не денешься.
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.