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

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

Как обрабатывать текст в Exel? [D5, D7, Win95/98, WinXP]


Страницы:   1 2

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]);


Страницы:   1 2

Наверх

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