Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2010, 18:47   #1
Doctordradd
Новичок
Джуниор
 
Регистрация: 02.11.2010
Сообщений: 2
По умолчанию Правильный импорт данных из Экселя

Подскажите, пожалуйста, как правильно импортировать данные из таблицы Эксель. Экспорт работает отлично, при импорте открывается файл экселя, записывается временно 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 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт данных из интернета 2 Pawell_ Microsoft Office Excel 11 28.08.2010 12:02
С++: правильный импорт dll apromix Помощь студентам 1 04.10.2009 02:28
Импорт данных в Excel mMAg Microsoft Office Excel 2 20.08.2009 17:50
импорт данных Рокабіллі_Птах БД в Delphi 1 13.05.2008 18:49
Импорт данных Таня84 БД в Delphi 4 17.02.2007 20:43