![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Правильный импорт данных из Экселя
Doctordradd © (2010-11-02 18:37:00)Подскажите, пожалуйста, как правильно импортировать данные из таблицы Эксель. Экспорт работает отлично, при импорте открывается файл экселя, записывается временно 1 колонка, при закрытии программы записанные данные исчезают.
Записываются только в готовую строку, т.е. в программу введены вручную данные, в эти строки вписываются данные с экселя, в пустые же - нет...
Подскажите, пожалуйста, где ошибка.
Спасибо.
Экспорт правильный:
var ws,xl:variant;
i,maxrow:integer;
col,fst:integer;
begin
fst:=2;
xl:=createoleobject('Excel.Application');
try
maxrow:=0;
xl.visible:=true;
XL.WorkBooks.Add;
ws := XL.ActiveWorkBook.ActiveSheet;
ws.Range['A1'].NumberFormat:='0';
ws.Range['A'+inttostr(fst)].Value := '№';
ws.Range['B'+inttostr(fst)].Value := 'Nombres';
col:=1;
begin
inc(col);
ws.Range[Chr(Ord('A')+col)+inttostr(fst)].Value := ' ';
end;
begin
inc(col);
ws.Range[Chr(Ord('A')+col)+inttostr(fst)].Value := ' ';
end;
begin
inc(col);
ws.Range[Chr(Ord('A')+col)+inttostr(fst)].Value := ' ';
end;
begin
inc(col);
ws.Range[Chr(Ord('A')+col)+inttostr(fst)].Value := ' ';
end;
begin
inc(col);
ws.Range[Chr(Ord('A')+col)+inttostr(fst)].Value := ' ';
end;
for i:=fst+1 to Visitas.Items.Count+fst do begin
col:=1;
ws.Range['a'+inttostr(i)].Value := i-2;//# работы
ws.Range['b'+inttostr(i)].Value := Visitas.Items[i-fst-1].Caption;
begin
inc(col);
ws.Range[Chr(Ord('A')+col)+inttostr(i)].Value:=Visitas.Items[i-fst-1].SubItems[0];
end;
begin
inc(col);
ws.Range[Chr(Ord('A')+col)+inttostr(i)].Value:=Visitas.Items[i-fst-1].SubItems[1];
end;
begin
inc(col);
ws.Range[Chr(Ord('A')+col)+inttostr(i)].Value:=Visitas.Items[i-fst-1].SubItems[2];
end;
begin
inc(col);
ws.Range[Chr(Ord('A')+col)+inttostr(i)].Value:=Visitas.Items[i-fst-1].SubItems[3];
end;
begin
inc(col);
ws.Range[Chr(Ord('A')+col)+inttostr(i)].Value:=Visitas.Items[i-fst-1].SubItems[4];
end;
maxrow:=i;
end;
Импорт с ошибкой:
var ws,xl:variant;
i,maxrow:integer;
col,fst:integer;
begin
fst:=7;
xl:=createoleobject('Excel.Application');
try
maxrow:=0;
xl.visible:=true;
XL.WorkBooks.open('PRESENTES');
ws := XL.ActiveWorkBook.ActiveSheet;
ws.Range['A1'].NumberFormat:='0';
for i:=fst+1 to Visitas.Items.Count+fst do begin
col:=1;
Visitas.Items[i-fst-1].SubItems[0]:= ws.Range['A'+inttostr(fst)].Value;
Visitas.Items[i-fst-1].SubItems[1] := ws.Range['B'+inttostr(fst)].Value;
maxrow:=i;
Doctordradd (2010-11-03 21:21:00) [41]Команду записи с файла не смог вставить, выдает ошибку, с формы вручную данные записываются так:
main.ini.WriteString(Edit1.Text,'n1',Edit2.text);
где
Edit1.text:=SECT;
oldname:=Edit1.Text;
также при импорте в таблицу основную выдаются данные только 1-й строчки из экселя и только в строчки, уже прописанные вручную.
Т.е. сначала приходится вводить любые данные в каждую строку, в эту строку вписывается 7-я строка из экселя, она же вписывается во все строки уже введенные вручную в базу.
Подскажите, пожалуйста, как дать команду записи в файл этих данных с эклселя и исправить запись с 7 строки на с 7 и далее, также вписывать данные не только в уже введенные строки в базе, а в любые пустые.
Спасибо
Leonid Troyanovsky (2010-11-02 19:13:00) [42]
> Doctordradd (02.11.10 18:55) [2]
> Ммм...по-русски у меня всегда была 5, но уже 8 лет не говорю
> на родном языке...
Милн Ален Александр. Пер. Б.Заходер.
Посоветовать даже не знаю что, если с русским плохо.
May be VBA help.
Да, и чего сразу Excel, а не, скажем, Access.
--
Regards, LVT.
Anatoly Podgoretsky (2010-11-02 19:11:00) [43]> Doctordradd (02.11.2010 18:37:00) [0]
Не видать команды записи в файл.
Doctordradd (2010-11-02 18:55:00) [44]Ммм...по-русски у меня всегда была 5, но уже 8 лет не говорю на родном языке...
В любом случае более подробное обьяснение:
Я новичок в Дельфи, создаю программу, базу данных. Данные работников, скажем записываются в несколько колонок в основном интерфейсе программы тип таблицы. Есть экспорт данных в эксель, пытаюсь создать импорт. Данные в таблицу программы записываются с формы, в которой каждое поле - это колонка в таблице.
При импорте в данный момент открывается нужный файл, имя приходится прописывать в Дельфи, не получается открывать выбор файла, после открытия в таблицу программы импортируются данные указанные в коде Дельфи, но при закрытии созданной программы данные из таблицы исчезают.
Leonid Troyanovsky (2010-11-02 18:47:00) [45]
> Doctordradd (02.11.10 18:37)
> из таблицы Эксель. Экспорт работает отлично, при импорте
> открывается файл экселя, записывается временно 1 колонка,
> при закрытии программы записанные данные исчезают.
Вообще-то оно хорошее правильнописание,
но только почему-то хромает ..
--
Regards, LVT.