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;
A jak zamknąć konkretny skoroszyt jeśli otwartych jest więcej niż jeden? ExcelApp.Quit; zamknie całego Excela...
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;
mam pytanie jak mam przypisać dane z excela do tablicy?
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