Programowanie w języku Delphi » FAQ

Jak odczytać dane z pliku Excela

uses ComObj;
 
type
    //zakres komórek do czytania
   Tdane_z_Excela=array of array of string;
 
const
   xlChart=-4109;
   xlWorksheet=-4167;
   xlWBATWorksheet=-4167;
   xlWBATChart=-4109;
   xlPortrait=1;
   xlLandscape=2;
   xlPaperA4=9;
   xlBottom=-4107;
   xlLeft=-4131;
   xlRight=-4152;
   xlTop=-4160;
   xlHAlignCenter=-4108;
   xlVAlignCenter=-4108;
   xlThick=4;
   xlThin=2;
 
function DaneZPlikuExcela(file_path:string):Tdane_z_Excela;
var
   ExcelApp:OleVariant;
   w,k:Integer;
begin
   try
      ExcelApp:=GetActiveOleObject('Excel.Application');
   except
      try
         ExcelApp:=CreateOleObject('Excel.Application');
      except
         ShowMessage('Excel nie jest zainstalowany w Twoim komputerze lub jest uszkodzony!');
         Exit;
      end;
   end;
   ExcelApp.Workbooks.Open(file_path);
 
   //przykład czytania komórek od 20 do 40 wiersza i od 50 do 60 kulumny
   SetLength(Result,21,11);
   for w:=20 to 40 do
   for k:=50 to 60 do
   Result[w-20][k-50]:=ExcelApp.Cells[w,k].Value;
 
   if not VarIsEmpty(ExcelApp) then
   ExcelApp.Quit;
end;

3 komentarze

adydan 2010-10-12 22:21

ExcelApp:=CreateOleObject('Excel.Application');
 ExcelApp.Workbooks.Open('C:\przykladowy.xlsx');
   for w:=1 to 20 do
   for k:=1 to 20 do
   Begin
   tablica[w][k]:=ExcelApp.Cells[w,k].Value;
   memo1.lines.add(tablica[w][k]);
   End;
   ExcelApp.Quit;

kopix90 2006-12-03 11:40

mam pytanie jak mam przypisać dane z excela do tablicy?

wmendyka 2005-09-30 13:11

Przy imporcie godzin wyskakuje liczba powstała z dzielenia składników godziny, 14:20:02 to 14 pordzielone przez 20 i przez 02, jak to rozwiązać bez ingerencji w Excela