Форум: "Базы";
Текущий архив: 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.011 c