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

Вниз

Перенос данных из Excel в Table   Найти похожие ветки 

 
Buka   (2003-08-05 13:24) [0]

Уважаемые мастера! Доброго времени суток. Помогите примером (небольшим, если можно- исходником) как перенести данные из Excel в таблицу (заготовленную ранее при момощи DataBase DeskTop) типа Paradox.


 
kengura   (2003-08-05 13:41) [1]

Через OLE примерно так. Есть и другие варианты

//Запуск Excell
function StartExcel(IsVisible:boolean):variant;
begin
try
result:=UnAssigned;
result:=CreateOleObject("Excel.Application");
result.Visible:=IsVisible;
result.DisplayAlerts:=false;
except
raise Exception.Create("Не могу запустить Excel!");
end;
end;

//Открытие файла
procedure ExcelFileOpen(Excel:variant; FileName:string);
begin
try
Excel.WorkBooks.Open(FileName);
except
raise Exception.Create("Не могу открыть файл!");
end;
end;

//Закрываем Excell
procedure QuitExcel(var Excel:variant);
begin
try
Excel.Quit;
finally
( True) Через OLE примерно так. Есть и другие варианты

//Запуск Excell
function StartExcel(IsVisible:boolean):variant;
begin
try
result:=UnAssigned;
result:=CreateOleObject("Excel.Application");
result.Visible:=IsVisible;
result.DisplayAlerts:=false;
except
raise Exception.Create("Не могу запустить Excel!");
end;
end;

//Открытие файла
procedure ExcelFileOpen(Excel:variant; FileName:string);
begin
try
Excel.WorkBooks.Open(FileName);
except
raise Exception.Create("Не могу открыть файл!");
end;
end;

//Закрываем Excell
procedure QuitExcel(var Excel:variant);
begin
try
Excel.Quit;
finally
Excel:=Unassigned;
end;
end;

кусочек программы
var Excel, Sheet, CellVal:variant;
begin
Excel:=StartExcel(True);
ExcelFileOpen(Excel,"C:\Test.xls"); //открываем файл
Sheet:=Excel.ActiveWorkBook.Sheets[1];
CellVal := Sheet.Cells[1,1].value; // получаем значение ячейки А1 первого листа
ShowMessage(String(CellVal)); //смотрим его :)
QuitExcel(Excel); закрываем excell
end;


 
sniknik   (2003-08-05 14:16) [2]

подключаешся к Access(!!) базе, через ADO-Jet, и делаеш запрос вроде этого
SELECT * INTO Sheed1 IN "d:\" "Paradox 4.x;" FROM [Sheet1$] IN "D:\Кассовые события.xls" "Excel 8.0;"
и таблицу заготавливать не надо, (если надо то поменять запрос на INSERT INTO)


 
Buka   (2003-08-05 17:56) [3]

Благодарю. Буду пробовать.


 
Buka   (2003-08-06 20:45) [4]

Уважаемый Kengura!
Пробую отрабатывать то, что Вы предложили, но никак не могу разобраться в forward declarations. С чем их едят?
Объявил:
type

function StartExcel(IsVisible: boolean): variant;

а Delphi "плюется": "Unsatisfied forward or external declaration: "TForm. StartExcel "
равно, как и на три остальные
procedure QuitExcel(var Excel:variant);
procedure ExcelFileOpen (Excel: variant;Filename:string);
function CreateOleObject (const ClassName: string):IDispatch;

и далее
var

result: variant;
IsVisible: boolean;

procedure TForm.Click(Sender: TObject);
begin

( true) Уважаемый Kengura!
Пробую отрабатывать то, что Вы предложили, но никак не могу разобраться в forward declarations. С чем их едят?
Объявил:
type

function StartExcel(IsVisible: boolean): variant;

а Delphi "плюется": "Unsatisfied forward or external declaration: "TForm. StartExcel "
равно, как и на три остальные
procedure QuitExcel(var Excel:variant);
procedure ExcelFileOpen (Excel: variant;Filename:string);
function CreateOleObject (const ClassName: string):IDispatch;

и далее
var

result: variant;
IsVisible: boolean;

procedure TForm.Click(Sender: TObject);
begin

Excel:= StartExcel(true);

Чего ему надоть-то?


 
Nikolay M.   (2003-08-07 10:02) [5]


> а Delphi "плюется": "Unsatisfied forward or external declaration:
> "TForm. StartExcel "

Тут не ексель, тут бы синтаксис Паскаля сначала выучить... Книжку купи. А когда прочитаешь, определись, StartExcel у тебя является методом класса TForm или нет.


 
kati   (2003-08-07 10:24) [6]

Можешь и так сделать, сохрани файл как DBf в EXCELE, потом Открой Access - экспорт в paradox. Прошу без эмоций!


 
KDS   (2003-08-07 11:22) [7]

2 kati (07.08.03 10:24)
Правильно! 3 минуты и вопрос решен! Я почти так же и делаю.
И Нефик тут на 2 страницы исходники писать через ОЛЕ...
А можно и без сохранения ДБФ обойтись. Просто импортировать из Ёкселя прямо в акцесс. Ну а потом уже куда хочешь конвертируй


 
Nikolay M.   (2003-08-07 11:25) [8]


> Можешь и так сделать, сохрани файл как DBf в EXCELE, потом
> Открой Access - экспорт в paradox


Да и вообще большинство программистов скоро переквалифицируется в дворники. Зачем что-то делать, когда парни из MS/Borland/Oracle/etc. уже почти все сделали, главное - найти нужную кнопку :)


 
KDS   (2003-08-07 11:30) [9]

2 Nikolay M. ©

А зачем изобретать велик и тратить на это время, если можно пользоваться готовыми инструментами.
Ты же программы не на ассемблере пишешь, а на языках высокого уровня. Соответственно пользуешься готовым Делфи, готовым ВинАПИ, готовой СУБД и другими готовыми технологиями


 
Nikolay M.   (2003-08-07 11:35) [10]


> А зачем изобретать велик и тратить на это время, если можно
> пользоваться готовыми инструментами.
> Ты же программы не на ассемблере пишешь, а на языках высокого
> уровня.

Речь не об этом ;-))))


 
Buka   (2003-08-07 11:41) [11]

Nikolay M.
Насколько я понимаю правильно: разговаривать с "высоты" своего "ума" не самое большое достоинство Мастера? Хамить-с то мы тоже умеем. Да и не Вас я спрашивал.Остальных благодарю.



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

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

Наверх





Память: 0.47 MB
Время: 0.01 c
1-1508
r_zet557
2003-08-17 18:45
2003.09.01
библиотека для вычисление влажности по температурным значениям


3-1273
dimm
2003-08-11 17:22
2003.09.01
DBLookupCombobox не открывается полностью. Т.е. хочу видеть все


3-1312
Vlad
2003-08-08 15:30
2003.09.01
Direct Oracle Access


1-1396
Zorik
2003-08-19 16:11
2003.09.01
как подключить dllки с произвольной папки


1-1492
Nestor
2003-08-15 07:58
2003.09.01
Подскажите пожайлуста, как при написании help a избавиться от





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский