![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перенос данных из Excel в Table
Buka © (2003-08-05 13:24:00)
Уважаемые мастера! Доброго времени суток. Помогите примером (небольшим, если можно- исходником) как перенести данные из Excel в таблицу (заготовленную ранее при момощи DataBase DeskTop) типа Paradox.
Buka (2003-08-07 11:41:00) [1]
Nikolay M.
Насколько я понимаю правильно: разговаривать с "высоты" своего "ума" не самое большое достоинство Мастера? Хамить-с то мы тоже умеем. Да и не Вас я спрашивал.Остальных благодарю.
Nikolay M. (2003-08-07 11:35:00) [2]
> А зачем изобретать велик и тратить на это время, если можно
> пользоваться готовыми инструментами.
> Ты же программы не на ассемблере пишешь, а на языках высокого
> уровня.
Речь не об этом ;-))))
KDS (2003-08-07 11:30:00) [3]
2 Nikolay M. ©
А зачем изобретать велик и тратить на это время, если можно пользоваться готовыми инструментами.
Ты же программы не на ассемблере пишешь, а на языках высокого уровня. Соответственно пользуешься готовым Делфи, готовым ВинАПИ, готовой СУБД и другими готовыми технологиями
Nikolay M. (2003-08-07 11:25:00) [4]
> Можешь и так сделать, сохрани файл как DBf в EXCELE, потом
> Открой Access - экспорт в paradox
Да и вообще большинство программистов скоро переквалифицируется в дворники. Зачем что-то делать, когда парни из MS/Borland/Oracle/etc. уже почти все сделали, главное - найти нужную кнопку :)
KDS (2003-08-07 11:22:00) [5]
2 kati (07.08.03 10:24)
Правильно! 3 минуты и вопрос решен! Я почти так же и делаю.
И Нефик тут на 2 страницы исходники писать через ОЛЕ...
А можно и без сохранения ДБФ обойтись. Просто импортировать из Ёкселя прямо в акцесс. Ну а потом уже куда хочешь конвертируй
kati (2003-08-07 10:24:00) [6]
Можешь и так сделать, сохрани файл как DBf в EXCELE, потом Открой Access - экспорт в paradox. Прошу без эмоций!
Nikolay M. (2003-08-07 10:02:00) [7]
> а Delphi "плюется": "Unsatisfied forward or external declaration:
> "TForm. StartExcel "
Тут не ексель, тут бы синтаксис Паскаля сначала выучить... Книжку купи. А когда прочитаешь, определись, StartExcel у тебя является методом класса TForm или нет.
Buka (2003-08-06 20:45:00) [8]Уважаемый 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);
…
Чего ему надоть-то?
Buka (2003-08-05 17:56:00) [9]
Благодарю. Буду пробовать.
sniknik (2003-08-05 14:16:00) [10]
подключаешся к Access(!!) базе, через ADO-Jet, и делаеш запрос вроде этого
SELECT * INTO Sheed1 IN "d:\" "Paradox 4.x;" FROM [Sheet1$] IN "D:\Кассовые события.xls" "Excel 8.0;"
и таблицу заготавливать не надо, (если надо то поменять запрос на INSERT INTO)
kengura (2003-08-05 13:41:00) [11]Через 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;