Excel je jedním z nejoblíbenějších a nejuniverzálnějších softwarových nástrojů pro práci s tabulkami a daty. Pokud potřebujete automatizovat práci s Excelem ve své aplikaci na Delphi, pak jste na správné adrese. V tomto článku se podíváme na základní principy práce s Excelem 2010 v Delphi a poskytneme vám příklady kódu, které vám pomohou rychle se s tímto úkolem vypořádat.
Klíčovým nástrojem pro práci s Excelem 2010 v Delphi je rozhraní Automation. Pomocí něj můžete vytvářet, otevírat, zavírat a ukládat soubory aplikace Excel a pracovat s jejich obsahem. Příklady kódu, které uvedeme v tomto článku, vám pomohou pochopit základní principy práce s tímto rozhraním.
Jedním z nejběžnějších problémů, které lze vyřešit při práci s Excelem v Delphi, je generování sestav. Můžete vytvářet a vyplňovat tabulky, Formátovat buňky, kreslit grafy a další. To vše lze provést jednoduchým a srozumitelným kódem, který vám poskytneme v tomto článku.
Пример кода:funkce GenerateReport: Boolean;
Vary
Excellapp: OleVariant;
Sešit: OleVariant;
Pracovní List: OleVariant;
začít
Výsledek: = False;
Excellapp: = CreateOLEObject ('Excel.Aplikace");
pokud ne VarIsEmpty (Excellapp) pak
začít
Sešit: = Excellapp.Sešit.Přidat;
Pracovní List: = Sešit.List[1];
// Здесь можно добавить код для создания отчета
Sešit.SaveAs('Report.xlsx');
Result := True;
ExcelApp.Quit;
end;
end;
Základní principy práce s Excelem 2010 v Delphi
Interakce s Excelem 2010 v Delphi se provádí pomocí práce s objekty COM (Component Object Model). Chcete-li začít, musíte do projektu připojit komponenty z knihovny Excel ActiveX (například Microsoft Excel 15.0 Object Library), poté bude možné použít třídy a metody poskytované těmito komponentami.
Hlavní třídou, se kterou budeme pracovat, je třída Excel.Application. Tato třída je instancí samotné aplikace Excel. Prostřednictvím tohoto objektu lze spravovat proces práce s tabulkami.
Chcete-li otevřít soubor Excel, musíte použít metodu Workbooks.Open tím, že zadáte cestu k souboru. Po otevření souboru, můžeme přistupovat k pracovní knize pomocí vlastnosti ActiveWorkbook.
Každá pracovní kniha se skládá z listů, které lze získat prostřednictvím vlastnosti tabulek sbírky Worksheets. Po obdržení odkazu na požadovaný list je možné provádět různé operace s buňkami a daty, například měnit hodnoty buněk, přistupovat ke vzorcům atd.
Příklad:
// Vytvoření objektu Excel.Application var ExcelApp: Variant; begin ExcelApp := CreateOleObject('Excel.Application'); ExcelApp.Visible: = True; / / Otevření Aplikace Excelapp.Workbooks.Open('C:\Path\To\File.xlsx'); // Otevření souboru / / práce s daty ExcelApp.ActiveWorkbook.Uložit; / / Uložit soubor ExcelApp.Quit; / / ukončení práce s aplikací end;
Po ukončení práce s aplikací je nutné uložit změny (pokud byly) a zavřít aplikaci pomocí metody Quit. V případě potřeby je také možné provádět další operace podle dokumentace Excel 2010 a objektového modelu.
Práce s Excelem 2010 v Delphi vám umožňuje automatizovat rutinní tabulkové úkoly a výrazně zjednodušit proces zpracování dat.
Příklady kódu pro práci s Excelem 2010 v Delphi
Delphi poskytuje mnoho nástrojů pro práci s Excelem 2010. Zvažte některé příklady kódu, které vám pomohou začít s tímto výkonným programem.
Vytvoření nového souboru aplikace Excel
K vytvoření nového souboru Excel 2010 v Delphi lze použít následující kód:
var ExcelApp: Variant; ExcelWorkbook: Variant; begin ExcelApp := CreateOleObject('Excel.Application'); ExcelWorkbook := ExcelApp.Workbooks.Add; ExcelApp.Visible := True; end;
Záznam dat do buňky
Chcete-li zapisovat data do buňky Excel 2010 v Delphi, použijte následující kód:
var ExcelApp: Variant; ExcelWorkbook: Variant; ExcelSheet: Variant; begin ExcelApp := CreateOleObject('Excel.Application'); ExcelWorkbook := ExcelApp.Workbooks.Open('C:\Documents\Test.xlsx'); ExcelSheet := ExcelWorkbook.Worksheets['Sheet1']; ExcelSheet.Cells[1, 1] := 'Hello, World!'; ExcelWorkbook.Save; ExcelApp.Visible := True; end;
Čtení dat z buňky
Pro čtení dat z buňky Excel 2010 v Delphi použijte následující kód:
var ExcelApp: Variant; ExcelWorkbook: Variant; ExcelSheet: Variant; CellValue: Variant; begin ExcelApp := CreateOleObject('Excel.Application'); ExcelWorkbook := ExcelApp.Workbooks.Open('C:\Documents\Test.xlsx'); ExcelSheet := ExcelWorkbook.Worksheets['Sheet1']; CellValue := ExcelSheet.Cells[1, 1].Value; ShowMessage(CellValue); ExcelWorkbook.Close; ExcelApp.Quit; end;
Změna formátování buňky
Chcete-li změnit formátování buňky Excel 2010 v Delphi, použijte následující kód:
var ExcelApp: Variant; ExcelWorkbook: Variant; ExcelSheet: Variant; begin ExcelApp := CreateOleObject('Excel.Application'); ExcelWorkbook := ExcelApp.Workbooks.Open('C:\Documents\Test.xlsx'); ExcelSheet := ExcelWorkbook.Worksheets['Sheet1']; ExcelSheet.Cells[1, 1].Font.Bold := True; ExcelSheet.Cells[1, 1].Font.Color := RGB(255, 0, 0); ExcelSheet.Cells[1, 1].HorizontalAlignment := xlCenter; ExcelWorkbook.Save; ExcelApp.Visible := True; end;
Odstranění souboru Excel
Chcete-li odstranit soubor Excel 2010 v Delphi, použijte následující kód:
begin if FileExists('C:\Documents\Test.xlsx') then DeleteFile('C:\Documents\Test.xlsx'); end;
To jsou jen některé příklady kódu pro práci s Excelem 2010 v Delphi. Pomocí těchto příkladů budete moci spravovat a analyzovat data v Excelu pomocí svých aplikací Delphi.
Práce s buňkami, sloupci a řádky v Excelu 2010 v Delphi
V Delphi lze pro práci s Excelem 2010 použít knihovnu OLE Automation. Umožňuje přístup k buňkám, sloupcům a řádkům v sešitu aplikace Excel a provádět různé operace s daty.
Pro práci s buňkami je nutné vytvořit objekty představující samotnou knihu (Workshbook), list (Worksheet) a buňku (Range). K tomu lze použít funkce CreateOleObject a GetActiveOleObject.
Příklad vytvoření objektu knihy:
var ExcelApp: Variant; Workbook: Variant; begin ExcelApp := CreateOleObject('Excel.Application'); Workbook := ExcelApp.Workbooks.Add; end;
Získání hodnoty buňky:
var Cell: Variant; Value: String; begin Cell := Workbook.Worksheets[1].Cells.Item[1, 1]; Value := Cell.Value; end;
Nastavení hodnoty buňky:
var Cell: Variant; begin Cell := Workbook.Worksheets[1].Cells.Item[1, 1]; Cell.Hodnota: = 'Hodnota'; end;
Práce se sloupci a řádky se provádí podobně. Například pro získání hodnoty sloupce:
var Column: Variant; Value: String; begin Column := Workbook.Worksheets[1].Columns.Item[1]; Value := Column.Value; end;
Nastavení hodnoty sloupce:
var Column: Variant; begin Column := Workbook.Worksheets[1].Columns.Item[1]; Column.Hodnota: = 'hodnota'; konec;
Podobně lze pracovat s řetězci. Například pro získání hodnoty řádku:
var Row: Variant; Value: String; begin Row := Workbook.Worksheets[1].Rows.Item[1]; Value := Row.Value; end;
Nastavení hodnoty řádku:
var Row: Variant; begin Row := Workbook.Worksheets[1].Rows.Item[1]; Row.Hodnota: = 'hodnota'; konec;
Tento příklad se zabývá základními principy práce s buňkami, sloupci a řádky v Excelu 2010 v Delphi. OLE Automation však umožňuje mnohem více operací s daty aplikace Excel, jako je formátování, slučování buněk, filtrování a další.
Použití vzorců a funkcí v Excelu 2010 v Delphi
Nejprve musíte vytvořit objekt aplikace Excel.Application a aktivovat pracovní sešit:
varExcelApp: Variant;Workbook: Variant;ExcelApp := CreateOleObject('Excel.Application');ExcelApp.Visible := True;Workbook := ExcelApp.Workbooks.Add;
Poté, Chcete-li použít vzorce a funkce v Excelu, musíte nastavit hodnotu buňky:
Workbook.Sheets[1].Cells[1, 1].Value := '=SUM(A1:B1)';
V tomto příkladu používáme vzorec pro sčítání hodnot v buňkách A1 a B1. Výsledek bude automaticky vypočítán a zobrazen v buňce C1.
Můžete také použít funkce aplikace Excel, jako je AVERAGE, MAX, MIN, COUNT atd.:
Workbook.Sheets[1].Cells[2, 1].Value := '=AVERAGE(A1:C1)';Workbook.Sheets[1].Cells[3, 1].Value := '=MAX(A1:C1)';Workbook.Sheets[1].Cells[4, 1].Value := '=MIN(A1:C1)';Workbook.Sheets[1].Cells[5, 1].Value := '=COUNT(A1:C1)';
Tyto funkce umožňují provádět výpočty na základě hodnot v uvedených buňkách.
Pokud chcete provést vlastní funkci dostupnou v Excelu, můžete použít vlastnost Application.WorksheetFunction:
Workbook.Sheets[1].Cells[6, 1].Value := ExcelApp.WorksheetFunction.RandBetween(1, 100);
V Delphi lze tedy snadno použít vzorce a funkce aplikace Excel k provádění různých matematických a logických operací uvnitř aplikace.