Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Вниз

Из Excel в DBGrid   Найти похожие ветки 

 
Вовик   (2005-02-11 20:23) [0]

Предположим я копирую колоку из Excel.
Как мне достать её из буфера, а потом всавить в DBGrid c той строчки где курсор и дальше вниз?


 
Алхимик ©   (2005-02-11 20:38) [1]

Читать справку по DBGrid, до тех пор пока не будет достигнуто понимание того, что этот компонент только отображает некоторый набор данных.


 
Вовик   (2005-02-11 20:56) [2]

Ну ладно тогда как в Query


 
YurikGL ©   (2005-02-11 22:34) [3]

Как вариант, открыть excel через OLE, считывать по одной строчке и добавлять соответсвующие записи с помощью комманды insert into.

Но, вроде как, существует метод доступа к xls типа как к таблице БД, так что лучше даже его использовать.


 
cherrex ©   (2005-02-12 16:15) [4]

YurikGL © Но, вроде как, существует метод доступа к xls типа как к таблице БД, так что лучше даже его использовать.

А какой метод?


 
Вовик   (2005-02-13 09:07) [5]

procedure TBzForm.PASTEBitBtnClick(Sender: TObject);
var
CurrentPos: TBookmark;
FieldIndex,i:integer;
begin
MemoTXT.Clear;
MemoTXT.Lines.Add(Clipboard.AsText);
CurrentPos:=MainDataModule.QueryRab.GetBookmark;
FieldIndex:=????????????????????????????????????;
for i:=0 to (MemoTXT.Lines.Count-2) do begin
MainDataModule.QueryRab.Edit;
MainDataModule.QueryRab.Fields.Fields[FieldIndex].Text:=MemoTXT.Lines.Strings[i];
MainDataModule.QueryRab.Next;
end;
end;
Это я так сделал. Пользователь копирует столбик то если AsText его то это строки за ними пробел. Два столбика --два пробела.
Но возник вопрос-Как узнать индекс поля где находится указатель в Query?


 
ДухКороляАртура ©   (2005-02-13 22:10) [6]

Этот писал для скриптовой системы, пример в паскале
excel := createoleobject("excel.application");
//excel.visible := ShowExcel.Checked;
FileName := GetCurrentDir + "\orders.xls";
workbook := excel.workbooks.open(FileName);
worksheet := workbook.ActiveSheet;

i := 1;
ordid := "*";
while (ordid <> "") do
begin
 cell := worksheet.Cells(i,1);
 ordid := cell.Text;
 if (ordid <> "") then
 begin
   Append;
   dbEdit1.SetValue(ordid);
   cell := worksheet.Cells(i,2);
   dbEdit2.SetValue(cell.Text);
   cell := worksheet.Cells(i,3);
   dbEdit3.SetValue(cell.Text);
   cell := worksheet.Cells(i,4);
   dbEdit4.SetValue(cell.Text);
   cell := worksheet.Cells(i,5);
   dbEdit5.SetValue(cell.Text);
   Post;
 end;
 i := i + 1;
end;

//workbook.Close;
//Excel.Quit;
Excel := unassigned;

перепишешь под дельфю сам, принцип тот же



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.033 c
14-1108794595
Serg86_m
2005-02-19 09:29
2005.03.13
Подскажите компонент...


1-1109509552
ser35
2005-02-27 16:05
2005.03.13
Почему активна кнопка?


14-1109014642
leonidus
2005-02-21 22:37
2005.03.13
Знатокам WinHelp`а - есть небольшая подработка


14-1109095323
Knight
2005-02-22 21:02
2005.03.13
Кто как подразделяет дистрибутивы?


9-1101644082
XProger
2004-11-28 15:14
2005.03.13
TIME FOR KILL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский