[ Tomju @ 26.06.2006. 08:34 ] @

Program bi trebalo da radi sledece:

Iz gomile (200 kom) xls tabela da cita po jedno polje i sabere ih. Citanje jednog fajla nije problem ali meni treba prolazak kroz sve tabele. Mislim da bi moglo da se odradi sa spiskom fajlova u txt datoteci.

Veci problem je sto su tabele zasticene tako da ako tabela vec nije otvorena u excel-u dobijam poruku "could not decrypt file" kada joj pristupam.

Konekcija je preko ADO-a

Ima li neko ideju za ove probleme, hvala
[ savkic @ 26.06.2006. 19:58 ] @
> Iz gomile (200 kom) xls tabela da cita po jedno polje i sabere ih. Citanje jednog fajla nije problem ali meni treba prolazak kroz sve tabele.
> Mislim da bi moglo da se odradi sa spiskom fajlova u txt datoteci.

Ako su ti excel fajlovi grupisani u jednom diru ili imaju jedan osnovni dir onda se može koristiti FindFirstFile/FindNextFile pretraživanje.

> Veci problem je sto su tabele zasticene tako da ako tabela vec nije otvorena u excel-u dobijam poruku "could not decrypt file" kada joj pristupam.

Znaš li šifru?

> Konekcija je preko ADO-a
> Ima li neko ideju za ove probleme, hvala

Zašto ne probaš sa OLEom, mogu se otvoriti zaštićeni excel fajlovi i pročitati vrednosti koje trebaš.

Code:

var
  E: OLEVariant;

  function ReadCellValue(const AFileName: string): Variant;
  begin
    E.Workbooks.Open(AFileName, EmptyParam, True, EmptyParam, 'sifra');
    E.Visible := True;
    Result := E.Cells[1, 1].Value;
    E.ActiveWorkbook.Close;
  end;

begin
  try
    E := GetActiveOleObject('Excel.Application');
  except
    E := CreateOleObject('Excel.Application');
  end;

  Caption := ReadCellValue('J:\Temp\Proba.xls');

  E.Quit;

[ Tomju @ 28.06.2006. 07:35 ] @
Da, imam sifru

Uspeo sam da napravim nesto preko office partner komponenti (nisam siguran da li imaju ogranicenja).

> ako su ti excel fajlovi grupisani u jednom diru ili imaju jedan osnovni dir onda se može koristiti FindFirstFile/FindNextFile pretraživanje.

Da, u istom su direktorijumu i to sam resio tako sto sam spisak fajlova stavio u .txt datoteku. Ajde ako mozes malo poblize FindFirstFile/FindNextFile


Hvala u svakom slucaju.
[ badam @ 28.06.2006. 09:44 ] @
Code:

var f:TSearchRec
begin
  if FindFirst('c:\mojfolder\*.xls',faAnyFile,f)=0 then    
    // citaj, saberi iz f.filename
  while FindNext(f)=0 do
    // citaj, saberi iz f.filename
  FindClose(F);




[Ovu poruku je menjao badam dana 28.06.2006. u 10:58 GMT+1]