Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перенос данных из 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо