Olvassa excel fájl (xls) Delphi

Írásban üzleti alkalmazásokat Delphi, illetve minden számítás, akkor lehet importálni (export) adatfájlok más alkalmazásokban. Az egyik fő alkalmazások, mint - MS Excel. Hogyan kell olvasni faylyxls vDelphi most úgy!?

Hozzon létre egy új projektet, és helyezze formájában három részből áll:

StringGrid - van az alkatrészen palettán a kiegészítő lap

Gomb gomb könnyű és gyors kiválasztását fájlok fájlmegnyitási párbeszédablak (munka dialógusok leírása itt).

Mert StringGrid. A tulajdonságok (Properties), adja meg az alábbiakat:
DefaultRowHeight - 17
FixedCols - 0
FixedRows - 0

Ennek eredményeként a forma fog kinézni:

Olvassa excel fájl (xls) Delphi

Ennél a díszítés kivitelben és írjuk kódot.

Együttműködik Excel fájlokat, meg kell ComObj könyvtár része a szállítási Delphi. Csatlakoztassa a felhasználási szakaszban. Add a végén, a vessző után «ComObj».

Olvassa excel fájl (xls) Delphi

Most ismertesse az eljárást Xls_Open a kulcsszó után végrehajtására:

eljárás Xls_Open (XLSFile: string; Grid: TStringGrid);
const
xlCellTypeLastCell = $ 0000000B;
var
ExlApp, lemez: OLEVariant;
i, j, R, C: integer;

kezdődik
// Létrehozunk egy Excel objektumot
ExlApp: = CreateOleObject ( 'Excel.Application');

// teszi Excel láthatatlan ablakban
ExlApp.Visible: = false;

// fájl megnyitása XLSFile
ExlApp.Workbooks.Open (XLSFile);

// létrehozni Sheet objektum (oldal), és adja meg a számot a lap (1)
// a könyv, amiből végre fogja hajtani az olvasás
Sheet: = ExlApp.Workbooks [ExtractFileName (XLSFile)] munkalapok [1].

// aktiválja az utolsó cella a munkalap
Sheet.Cells.SpecialCells (xlCellTypeLastCell, EmptyParam) .Activate;

// Visszaadja az utolsó sor száma
r: = ExlApp.ActiveCell.Row;

// számát adja vissza az utolsó oszlop
c: = ExlApp.ActiveCell.Column;

// A szám sorok és oszlopok a StringGrid
Grid.RowCount: = R;
Grid.ColCount: = C;

// értékét olvassa az egyes sejtek, és másolja az asztalunkra
j: = 1-R do
i: = 1-től c do
Grid.Cells [i-1, j-1]: = sheet.cells [j, i];
// ha el szeretné olvasni a képlet
//Grid.Cells[i-1,j-1]:= sheet.cells [j, i] .formula;

// bezárja az Excel alkalmazást
ExlApp.Quit;

// törölje a memóriát
ExlApp: = Unassigned;
Sheet: = Unassigned;

A eljárás Xls_Open két bemeneti paraméterek:

  1. XLSFile - az út, hogy az Excel-fájlt (xls)
  2. Rács - egy táblázatot, amely elvégzi kimenet.

Ahhoz, hogy használni Xls_Open felírni eljárások esetén kattintson Button1 gombra az alábbiak szerint:

Ha OpenDialog1.Execute majd Xls_Open (OpenDialog1.FileName, StringGrid1);

A fő hátránya ennek a módszernek: a lassú olvasási adatokat (bár kis fájlok tökéletesen illeszkedik), valamint annak szükségességét, hogy a változat Excel a számítógépen.

A teljes lista a program:

felhasználások
Ablakok, üzenetek, SysUtils, Változatok, osztályok, grafika, vezérlők, Forms,
Dialogs, rácsok, StdCtrls, ComObj;

eljárás Xls_Open (XLSFile: string; Grid: TStringGrid);
const
xlCellTypeLastCell = $ 0000000B;
var
ExlApp, lemez: OLEVariant;
i, j, R, C: integer;

kezdődik
// Létrehozunk egy Excel objektumot
ExlApp: = CreateOleObject ( 'Excel.Application');

// teszi Excel láthatatlan ablakban
ExlApp.Visible: = false;

// fájl megnyitása XLSFile
ExlApp.Workbooks.Open (XLSFile);

// létrehozni Sheet objektum (oldal), és adja meg a számot a lap (1)
// a könyv, amiből végre fogja hajtani az olvasás
Sheet: = ExlApp.Workbooks [ExtractFileName (XLSFile)] munkalapok [1].

// aktiválja az utolsó cella a munkalap
Sheet.Cells.SpecialCells (xlCellTypeLastCell, EmptyParam) .Activate;

// Visszaadja az utolsó sor száma
r: = ExlApp.ActiveCell.Row;

// számát adja vissza az utolsó oszlop
c: = ExlApp.ActiveCell.Column;

// A szám sorok és oszlopok a StringGrid
Grid.RowCount: = R;
Grid.ColCount: = C;

// értékét olvassa az egyes sejtek, és másolja az asztalunkra
j: = 1-R do
i: = 1-től c do
Grid.Cells [i-1, j-1]: = sheet.cells [j, i];
// ha el szeretné olvasni a képlet
//Grid.Cells[i-1,j-1]:= sheet.cells [j, i] .formula;

// bezárja az Excel alkalmazást
ExlApp.Quit;

// törölje a memóriát
ExlApp: = Unassigned;
Sheet: = Unassigned;

eljárás TForm1.Button1Click (Sender: TObject);
kezdődik
Ha OpenDialog1.Execute majd Xls_Open (OpenDialog1.FileName, StringGrid1);
végén;