|
Тема |
Re: Делфи чрез АДО в ЕКСЕЛ [re: php] |
|
Автор | ADO (Нерегистриран) | |
Публикувано | 23.09.09 09:35 |
|
|
Безкрайно съм благодарен за изчерпателния отговор. За да съм по-полезен с информацията, ще кажа следното:
1.Ползвам версия 7 на делфито
2.Офис пакета ми е 2003
3.Първото което направих е следния вариант:
ExcelName:='c:\aaa.xls';
Excel:=CreateOleObject('Excel.Application');
Excel.Visible:=False;
Excel.Workbooks.Open(ExcelName);
.... достъпа е по ред колона. Много удобно за писане, но доста по бавно.
Прекрасно за малки таблици
Excel.WorkBooks.close;
Excel.quit;
4.След това минах на варианта
ExcelName:='c:\aaa.xls';
AdoTable1.Active:=false;
ConnStr :='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExcelName +
';Extended Properties="Excel 8.0;HDR=No";Persist Security Info=False';
AdoTable1.ConnectionString:=ConnStr;
DataSource1.DataSet:=AdoTable1;
form1.ADOTable1.TableName:='Sheet1$';
form1.ADOTable1.Active:=true;
form1.DataSource1.DataSet.First;
form1.DataSource1.DataSet.edit;
form1.DataSource1.DataSet.Fields[0].Value:=1;
form1.DataSource1.DataSet.post;
form1.ADOTable1.Active:=false;
Четенето е ред по ред. Повече писане. Но програмчето се ускори с към 90%
(все пак говорим за над 2-3 милиона клетки които се ползват)
Та отвратителното на всичкото това е, че тази тъпа еденица дето я ръгам в А1,
след като отворя ексела си седи като текст -> '1 . та трябва да направя макро на ексел,
че да я обърне на число. Макрото е готово, но за толкова клетки - отива доста време...
идеята е да се спести това време
|
| |
|
|
|