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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2008, 20:16   #1
Самоучка
Пользователь
 
Аватар для Самоучка
 
Регистрация: 09.10.2008
Сообщений: 41
По умолчанию Передача данных из Excel в созданную таблицу

Доброго всем времени суток. Нужна информация как из Excel достать только необходимую информацию из ячеек и передать ее в базу данных, чтобы потом можно было в гриде выбирать строки и формировать новую таблицу. Затем она будет использоваться в отчете. Заранее благодарю
Писать на стенах туалета, увы, мой друг не мудрено.....
Среди говна - мы все поэты. Среди поэтов - мы говно!
Самоучка вне форума Ответить с цитированием
Старый 06.11.2008, 13:06   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Как раз сейчас пишу на работе нечто подобное...
У меня структура всех xls-файлов такова:
В первой строке три ячейки - это наименование, код и дата.
Начиная со второй строки в 8 столбцов расположена таблица (сколько в ней строк - неизвестно). Там цена, кол-во, ндс и т.п.
mem и mem2 - это таблицы в памяти. Потом можешь делать с ними что-угодно.
flb - TRzFileListBox (в него предварительно загружены xls-файлы).
Забираю данные из этих файлов следующим образом:
Код:
procedure TfrmMain.N11Click(Sender: TObject);
var Excel: Variant;
  Rows, i, j: Integer;
begin
  flb.Directory := 'c:\Rep1c';
  if flb.Items.Count > 0 then flb.ItemIndex := 0;

  if flb.Items.Count = 0 then
  begin
    MessageDlg('Файлы *.xls не найдены.', mtInformation, [mbOk], 0);
    exit
  end;

  mem.close;
  mem.open;
  mem2.close;
  mem2.open;
  mem.DisableControls;
  mem2.DisableControls;
  flb.ItemIndex := 0;
  Excel := CreateOleObject('Excel.Application');
  bar.Progress := 0;
  bar.Text := 'Подождите...';
  bar.MaxValue := flb.Items.Count;
  for j := 0 to flb.Items.Count - 1 do
  begin
    Excel.Workbooks.Open(flb.LongFileName);
    Excel.Visible := false;
    Rows := Excel.ActiveSheet.UsedRange.Rows.Count;
    mem.Insert;
    mem.FieldByName('num').AsString := Excel.Sheets[1].Cells[1, 2].Text;
    mem.FieldByName('name').AsString := Excel.Sheets[1].Cells[1, 1].Text;
    mem.FieldByName('data').AsString := Excel.Sheets[1].Cells[1, 3].Text;
    mem.Post;
    for i := 2 to Rows do
    begin
      mem2.Insert;
      mem2.FieldByName('pp').AsString := Excel.Sheets[1].Cells[i, 1].Text;
      mem2.FieldByName('num').AsString := Excel.Sheets[1].Cells[1, 2].Text;
      mem2.FieldByName('name').AsString := Excel.Sheets[1].Cells[i, 2].Text;
      mem2.FieldByName('kol').AsFloat := Excel.Sheets[1].Cells[i, 3].Text;
      mem2.FieldByName('cena').AsFloat := Excel.Sheets[1].Cells[i, 4].Text;
      mem2.FieldByName('summa').AsFloat := Excel.Sheets[1].Cells[i, 5].Text;
      mem2.FieldByName('nds').AsFloat := Excel.Sheets[1].Cells[i, 7].Text;
      mem2.FieldByName('snds').AsFloat := Excel.Sheets[1].Cells[i, 8].Text;
      mem2.Post;
    end;
    flb.ItemIndex := flb.ItemIndex + 1;
    bar.Progress := bar.Progress + 1;
    Excel.Quit;
  end;
  mem.EnableControls;
  mem2.EnableControls;
  bar.Progress := 0;
  bar.Text := '';
  mem.First;
end;
_SERGEYX_ вне форума Ответить с цитированием
Старый 06.11.2008, 20:53   #3
Самоучка
Пользователь
 
Аватар для Самоучка
 
Регистрация: 09.10.2008
Сообщений: 41
По умолчанию

Спасибо за информацию _SERGEYX_. У меня еще такой вопрос как вывести CheckBox в DBGrid?
Писать на стенах туалета, увы, мой друг не мудрено.....
Среди говна - мы все поэты. Среди поэтов - мы говно!
Самоучка вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
расширение и вставка данных в таблицу Dennikid Общие вопросы Delphi 12 06.10.2008 09:34
копирование данных из таблицы в таблицу Sack Microsoft Office Access 1 16.09.2008 05:59
занесение данных в таблицу ASAN Microsoft Office Excel 7 02.06.2008 23:50
Экспорт из Access в Excel, Экспорт из отчётов в таблицу Excel Kissedbythegod Microsoft Office Access 1 31.05.2008 22:15
Переброс данных на другой лист в таблицу vodvorezlaya Microsoft Office Excel 1 06.06.2007 14:07