![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как обрабатывать текст в Exel? [D5, D7, Win95/98, WinXP]
WebSqlNeederr © (2006-10-05 15:09:00)У меня есть прайс фирмы из 1000 строк. В строке пять столбцов но заполняются не все а выборочно (три обязательные и две на выбор). Нужно средствами Делфи обработать этот екселевский документ и перегнать в БД на сайт (MySQL).
Помогите как это реализовать.
Антоныч (2006-10-09 17:44:00) [1]Диапазон данных из Excel лучше вытягивать так:
var
...
Buf: Variant;
... // здесь подключаемся к Excel
Buf:=VarArrayCreate([1,{сколько строк},1,{сколько столбцов}], VarVariant);
Buf:=WorkSheet.Range[WorkSheet.Cells[1,1],WorkSheet.Cells[{сколько строк},{сколько столбцов}]].Value;
... //здесь уже можно закрывать Excel и работать с Buf как с обычным массивом
Аналогично можно передавать в Excel диапазон данных. Достоинства - высокая скорость при передаче больших объёмов данных.
Master_ (2006-10-08 02:17:00) [2]типа...
А поповоду
var
Excel,Sheet:Variant;
wb,savechanges:olevariant;
begin //Подготовка документа
Excel:=CreateOleObject('Excel.application');
Excel.Visible:=false;
wb:=excel.WorkBooks.Open(title.opendialog2.FileName);
Sheet:=Excel.Workbooks[1].sheets[1];
это влюбом Help-e типа Kuliba от Озерова есть
а она для меня была настольной книгой, и таковой является до сих пор
Молод я еще что бы все знать!!!! :-)))
Percent (2006-10-08 02:10:00) [3]Да БД... "нормализованная", типа...
Master_ (2006-10-08 02:02:00) [4]Это часть моей ГОРЕ ПРОГРАММЫ базы данных филмов, а что?
Percent (2006-10-08 02:00:00) [5]какой он тыренный?
очень даже стандартный!
Что ни строка - то перл.
А вот это вообще шедевр:
title.ClientDataSet1.FieldByName('JanrFilma').AsString
Master_ (2006-10-08 01:57:00) [6]какой он тыренный?
очень даже стандартный!
Percent (2006-10-08 01:45:00) [7]Обмен тыренным кодом.
Очень продуктивно...
Master_ (2006-10-07 23:39:00) [8]Рад помочь
WebSqlNeederr (2006-10-07 23:36:00) [9]Master_, большое спасиьо! Теперь все ОК!
Master_ (2006-10-07 23:21:00) [10]У меня работает это!
Вот пример того что именно я делаю когда нужен импорт данных из MS Excel:
procedure EXCELOUT;
var
Excel,Sheet:Variant;
wb,savechanges:olevariant;
xlend,x:integer;
begin //Подготовка документя
Excel:=CreateOleObject('Excel.application');
Excel.Visible:=false;//Прячу EXCEL
// Открываю Excel
wb:=excel.WorkBooks.Open(title.opendialog2.FileName);
//Ссылаюсь на первый лист
Sheet:=Excel.Workbooks[1].sheets[1];
xlend:=strtoint(inexcel.Edit1.text);
//Здесь заполнение моей базы данными из EXCEL файла
for x:=2 to xlend do// заполнять начиная со 2 строки по XLEND
begin
title.ClientDataSet1.Insert;
title.ClientDataSet1.FieldByName('FilmName').AsString:=Excel.ActiveSheet.Cells.I tem[x,1].value;
title.ClientDataSet1.FieldByName('JanrFilma').AsString:=Excel.ActiveSheet.Cells. Item[x,2].value;
title.ClientDataSet1.FieldByName('rem2').AsString:=Excel.ActiveSheet.Cells.Item[ x,3].value;
title.ClientDataSet1.FieldByName('komentarii').AsString:=Excel.ActiveSheet.Cells .Item[x,4].value;
title.ClientDataSet1.Post;
end;
title.ClientDataSet1.First;
wb.close(savechanges:=false);Не сохранять изменений
excel.quit;//ВЫйти и закрыть excel объект
end;
В uses прописать ActiveX и COMObj
Работает 100 процентов, попробуйте!
EvS (2006-10-07 23:15:00) [11]Выкладывай код.
WebSqlNeederr (2006-10-07 23:09:00) [12]Увы не работает все это :( Приблизительно те же ошибки выдает.
Я не могу понять в чем дело? У других аналогичный код работает?
Master_ (2006-10-07 22:40:00) [13]Попробуйте обращаться конкретно к ячейкам:
memo1.text:=Excel.ActiveSheet.Cells.Item[x,y].value;
где x и y соответственно № строки и № ячейки
WebSqlNeederr (2006-10-07 22:10:00) [14]...
WebSqlNeederr (2006-10-07 14:23:00) [15]Плдскажите хоть кто нибудь ато я не могу понять в чем дело :(
WebSqlNeederr (2006-10-07 12:44:00) [16]..
WebSqlNeederr (2006-10-07 04:41:00) [17]palva, опять пишет invalid argument :(
palva (2006-10-05 23:44:00) [18]memo1.text := MyArray[1, 1].Value;
WebSqlNeederr (2006-10-05 17:26:00) [19]Теперь пишет Invalid argument Что это значит? Что изменить нужно?
WebSqlNeederr (2006-10-05 17:26:00) [20]Подскажите хоть кто то как собственно вывести в мемо первую ячейку? Я уже пробовал и вот так, но не помогает :(
memo1.text:=vartostr(MyArray[1][1]);