![]() |
|
|
#1
|
|||
|
|||
|
Здравствуйте!!!ОЧЕНЬ НУЖНА ВАША ПОМОЩЬ!Есть база MySQL и проект на Delphy, необходимо реализовать такую задачу: Берем фамилии из Excel-евского файла, и смотрим, если эти фамилии есть в базе, записываем соответствующие данные, которые имеются по владельцу в новую таблицу
|
|
#2
|
|||
|
|||
|
Копайте в сторону OLE объектов.
|
|
#3
|
|||
|
|||
|
Цитата:
Как глубоко копать??? |
|
#4
|
|||
|
|||
|
для реализации вашей проблемы не очень
![]() Создать Оле объект открыть екселевский файл пробежаться по строчкам проверяя наличие их в Мускуле (банальный селект) если запрос не вернул ничего то инсерт с данными. закрыть ёксель. вот в помощь: |
|
#5
|
|||
|
|||
|
Умоляю...расскажите поподробней..
|
|
#6
|
|||
|
|||
|
ссылку смотрел?
там практически все функции даны. пример от туда же Код:
var
vExcel, xlvariant: OLEVariant;
begin
vExcel := CreateOleObject('Excel.Application');
vExcel.Workbooks.Open('BigBook.xls', False);
vExcel.Visible := True;
end;работа с ячейкой - vExcel.Cells[1, 1].Value например проверяем что в этой ячейке написано "Привет" Код:
if vExcel.Cells[1, 1].Value="Привет" then .... Куда ж еще подробнее то... |
|
#7
|
|||
|
|||
|
ссылку посмотрела...спасибо за помощь))
|
|
#8
|
|||
|
|||
|
Если ждет до вечера то вечером могу примерчик выложить у меня где то был такой импорт.
|
|
#9
|
|||
|
|||
|
Огромное спасибо за помощь)))Буду ждать
|
|
#10
|
|||
|
|||
|
где то примерно так (Немного обрезал но основное что нужно вам тут есть):
Код:
var
excel, workbook, sheet: variant; //OLE
st,st1,st2,st3,st4,st5,st6,st7:string;
i,y,idf:integer;
lk:TTransactionDesc;
dtt:TdateTime;
isDealerNds,isRetailNDS,isRetailShopNDS:TNDS;
begin
try
excel := createoleobject('excel.application');//Создем объект OLE
excel.workbooks.open(sedit1.text,false); //Открываем файл
workbook:=excel.workbooks.item[1]; //Выбираем книгу
sheet := workbook.worksheets[1]; //Выбираем лист
sheet.cells.specialcells(xlcelltypelastcell,emptyparam).activate;
y := excel.activecell.row; //Получаем максимал. кол-во строк
for i:=2 to y do
begin
//получаем данные из ячеек
st1:=trim(sheet.cells[i,1]);
st2:=trim(sheet.cells[i,2]);
st3:=trim(sheet.cells[i,3]);
st4:=trim(sheet.cells[i,4]);
st5:=trim(sheet.cells[i,5]);
st6:=trim(sheet.cells[i,6]);
try
//Проверяем в запросе к Мускулу есть ли такая фамилия
//если нет то вставляем данные в новую таблицу
except
on e:Exception do
begin
//Если при вставке или запросе к БД вылез эксепшен
// то обрабатываем тут
showmessage(E.message);
end;
end;
end;
if not VarIsEmpty(Excel) then Excel.quit;// Выходим из Excel
except
on e:Exception do
begin
if not VarIsEmpty(Excel) then excel.quit;
end;
end; |