Delphi&Excel
4 отговора
180 прегледа
Delphi&Excel
Zdraveite!
Interesuva me, koi e nai-lesniq i byrz nachin da vzema nakolko stoinosti ot kletki v excel i da si gi polzvam v prilojenieto mi. Stava vypros za nakoi agregatni stoinosti ot fail sys standartna struktura (t.e znam koi kletki mi trqbwat). Kakvo da polzvam OLE conteiner, componentite ot servers ili prez ADO, koe e nai-lesno i byrzo?
INFO: versiqta na exselskiq fail nqma da se promenq(97 e), ne sa nujni promeni v excelskiq fail (samo shte se chete).
Ako moje daite malko kod kolkoto da zacepq za kvo stava vypros, che ne sym polzval dosega.
Interesuva me, koi e nai-lesniq i byrz nachin da vzema nakolko stoinosti ot kletki v excel i da si gi polzvam v prilojenieto mi. Stava vypros za nakoi agregatni stoinosti ot fail sys standartna struktura (t.e znam koi kletki mi trqbwat). Kakvo da polzvam OLE conteiner, componentite ot servers ili prez ADO, koe e nai-lesno i byrzo?
INFO: versiqta na exselskiq fail nqma da se promenq(97 e), ne sa nujni promeni v excelskiq fail (samo shte se chete).
Ako moje daite malko kod kolkoto da zacepq za kvo stava vypros, che ne sym polzval dosega.
Re: Delphi&Excel
Така както гледам, най-малко натоварващо е файла да се конвертира до CSV формат и да си четеш каквото трябва с класически достъп до файл.
Другото удобно положение е да създадеш Excel приложение с CreateOLEObject и да пипаш стойностите чрез OLE. Точната адресация на клетките може да видиш като направиш макрос в Excel и видиш генерирания VBScript.
Засега не мога да постна код, но ако не е зор и не се оправиш, утре може да се напъна.
чети и дишай по-леко
Другото удобно положение е да създадеш Excel приложение с CreateOLEObject и да пипаш стойностите чрез OLE. Точната адресация на клетките може да видиш като направиш макрос в Excel и видиш генерирания VBScript.
Засега не мога да постна код, но ако не е зор и не се оправиш, утре може да се напъна.
чети и дишай по-леко
Re: Delphi&Excel
Какво значи бърз начин? Ако искаш да е бързо за писане, виж по-долу, а ако искаш да се изпълнява бързо - тоя начин сигурно е възможно най-бавния. Но работи де - проверено е.
Var
ExcelApp, Sheet : OleVariant;
s : String;
begin
CoInitialize(Nil);
Try
ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.Visible:= True; // ако искаш (за тестове е полезно)
ExcelApp.Workbooks.Open('име на файл');
Sheet := ExcelApp.ActiveWorkbook.ActiveSheet;
s := Sheet.Cells[число, число].Value;
Finally
CoUninitialize;
End;
end;
Re: Delphi&Excel
Blagodaria mnogo za pomo6ta, naistina mi triabva spe6no da go napravia tova za koeto popitah, a niamam vreme da 4eta helpove i debeli knigi a i dostaty4no opit s Delphi
O6te vednyj blagodarnosti na vsi4ki koito vzeha otno6enie po temata
Bydete zdravi!
O6te vednyj blagodarnosti na vsi4ki koito vzeha otno6enie po temata
Bydete zdravi!
Re: Delphi&Excel
zamo da znaesh che pri golqm broj obrysteniq - ot tipa na 400 000 - 500 000 /ne pomnq tochnata cifra, moje i po-malka da e/ kym excel-a chrez ole automation pod win9x moje da se poluchi zawiswane
mnogo nepriqten problem
pod nt/probwal sym na 2000 i xp/ nqma nikakwi problemi
zassega sym nameril edno typo reshenie, no wyrshi rabota - spiram si excel application-a i go puskam otnowo
ako nqkoj se e sblyskwal s tozi problem i go e reshil po po-eleganten nachin - ste sym bu blagodaren da go spodeli wyw forum-a
mnogo nepriqten problem
pod nt/probwal sym na 2000 i xp/ nqma nikakwi problemi
zassega sym nameril edno typo reshenie, no wyrshi rabota - spiram si excel application-a i go puskam otnowo
ako nqkoj se e sblyskwal s tozi problem i go e reshil po po-eleganten nachin - ste sym bu blagodaren da go spodeli wyw forum-a