📊 Práce s XLSX tabulkami
CLua obsahuje sadu funkcí pro načítání, čtení a úpravu .xlsx souborů. Tyto funkce využívají backend v C# přes knihovnu ClosedXML a jsou dostupné přes jednoduché Lua API.
📁 Struktura souborů
- Excelové tabulky se nachází ve složce:
Tables/
- Jsou načítány podle potřeby jednotlivými makry.
📥 Načtení a vytvoření sešitu
Načtení existujícího sešitu
local wb = Workbook("NazevSouboru.xlsx");
Workbook(path) vytvoří objekt pracovního sešitu (wb).
- Cesta musí být relativní ke složce
Tables/.
Vytvoření nového sešitu
local wb = NewWorkbook("NovySesit.xlsx");
- Vytvoří nový prázdný sešit.
- Pokud soubor již existuje, vrátí chybu.
Vytvoření nebo načtení sešitu
local wb = NewWorkbook("Sesit.xlsx", true);
- Druhý parametr
true znamená: pokud soubor existuje, načti ho; jinak vytvoř nový.
- Užitečné pro skripty, které potřebují pracovat se sešitem bez ohledu na to, zda existuje.
📄 Přístup k listům (Sheet)
local sheet = wb:Sheet("JménoListu");
- Vrací objekt listu, ze kterého lze číst nebo do kterého lze zapisovat.
Správa listů
-- Přidání nového listu
wb:AddSheet("NovýList");
-- Přejmenování listu
wb:RenameSheet("StaréJméno", "NovéJméno");
-- Smazání listu
wb:DeleteSheet("NepotřebnýList");
-- Získání seznamu všech listů
local sheetNames = wb:GetSheetNames();
for i, name in ipairs(sheetNames) do
print(i, name);
end
🔎 Kontrola existence
local isWb = WorkbookExists("jménoSešitu.xlsx");
local isSheet = wb:ContainSheet("JménoListu");
- Vrací boolean hodnotu, jestli daný sešit existuje.
- Vrací boolean hodnotu, jestli sešit daný list obsahuje.
📋 Cell objekty
Cell objekt reprezentuje jednu buňku v tabulce a umožňuje elegantní práci s jejím obsahem a formátováním.
Vytvoření Cell objektu
local cell = sheet:Cell(5, 3); -- řádek 5, sloupec 3
Chaining metod
Cell objekty podporují chaining - zřetězení více operací:
sheet:Cell(1, 1)
:SetValue("Nadpis")
:SetBold(true)
:SetFontSize(14)
:SetBackgroundColor("#4472C4")
:SetFontColor("#FFFFFF")
:SetAlignment("Center", "Center");
🔍 Čtení hodnot
Základní čtení
-- String hodnota
local value = sheet:GetCell(3, 2); -- zpětná kompatibilita
local value = sheet:Cell(3, 2):GetS();
-- Typovaná hodnota (number, string, boolean, atd.)
local value = sheet:Cell(3, 2):Get();
-- Přes Cell objekt
local cell = sheet:Cell(3, 2);
local value = cell:Get(); -- typovaná
local text = cell:GetS(); -- string
- Pozor: indexace řádků a sloupců začíná od 1 (jako v Excelu), nikoliv od 0.
Čtení formátování
local cell = sheet:Cell(5, 3);
-- Font
local isBold = cell:GetBold();
local isItalic = cell:GetItalic();
local isUnderline = cell:GetUnderline();
local isStrikethrough = cell:GetStrikethrough();
local fontSize = cell:GetFontSize();
local fontName = cell:GetFontName();
-- Barvy (vrací hex string, např. "#FF0000")
local bgColor = cell:GetBackgroundColor();
local fontColor = cell:GetFontColor();
-- Zarovnání
local hAlign = cell:GetHorizontalAlignment(); -- "Left", "Center", "Right", "Justify"
local vAlign = cell:GetVerticalAlignment(); -- "Top", "Center", "Bottom", "Justify"
local isWrapped = cell:GetWrapText();
-- Ohraničení
local topBorder = cell:GetBorderTop(); -- "None", "Thin", "Medium", "Thick", atd.
local bottomBorder = cell:GetBorderBottom();
local leftBorder = cell:GetBorderLeft();
local rightBorder = cell:GetBorderRight();
-- Formát čísel
local format = cell:GetNumberFormat(); -- např. "#,##0.00"
-- Formula
local formula = cell:GetFormula(); -- např. "=SUM(A1:A10)" nebo nil
local hasFormula = cell:HasFormula();
-- Sloučené buňky
local isMerged = cell:IsMerged();
local mergedRange = cell:GetMergedRange(); -- např. "A1:C1" nebo nil
-- Adresa buňky
local address = cell:GetAddress(); -- např. "C5"
Detailní informace o buňce
local cellInfo = sheet:CellEx(5, 3);
-- cellInfo obsahuje všechny možné vlastnosti:
-- value, format, formula, dataType, isBold, isItalic,
-- fontColor, bgColor, hAlign, vAlign, borders,
-- richText, comment, atd.
print(cellInfo.value);
print(cellInfo.fontName);
if cellInfo.isBold then
print("Buňka je tučná");
end
✍️ Zápis hodnot
Základní zápis
-- String
sheet:SetCell(3, 2, "Text"); -- zpětná kompatibilita
sheet:Cell(3,2):SetS("Text");
-- Typovaná hodnota
sheet:Cell(3, 2):Set(123); -- number
sheet:Cell(3, 2):Set(45.67); -- float
sheet:Cell(3, 2):Set(true); -- boolean
sheet:Cell(3, 2):Set("Text"); -- string
-- Přes Cell objekt
local cell = sheet:Cell(3, 2);
cell:SetValue(123);
cell:Set("Text"); -- string varianta
Formátování textu
local cell = sheet:Cell(1, 1);
-- Font
cell:SetBold(true);
cell:SetItalic(true);
cell:SetUnderline(true);
cell:SetStrikethrough(true);
cell:SetFontSize(14);
cell:SetFontName("Arial");
Barvy
local cell = sheet:Cell(1, 1);
-- Hex formát
cell:SetBackgroundColor("#FFFF00");
cell:SetFontColor("#FF0000");
-- RGB formát
cell:SetBackgroundColor(RGB(255, 255, 0));
cell:SetFontColor(RGB(255, 0, 0));
-- Theme barvy
cell:SetBackgroundColorTheme("Accent1");
cell:SetBackgroundColorTheme("Accent2", 0.5); -- s tintem
-- Indexed barvy
cell:SetBackgroundColorIndexed(10);
Dostupné theme barvy:
"Dark1", "Light1", "Dark2", "Light2"
"Accent1", "Accent2", "Accent3", "Accent4", "Accent5", "Accent6"
"Hyperlink", "FollowedHyperlink"
"Text1", "Text2", "Background1", "Background2"
Zarovnání
local cell = sheet:Cell(1, 1);
-- Horizontální a vertikální zarovnání
cell:SetAlignment("Center", "Center");
-- Možnosti:
-- Horizontální: "Left", "Center", "Right", "Justify", "General"
-- Vertikální: "Top", "Center", "Bottom", "Justify"
-- Zalomení textu
cell:SetWrapText(true); -- text se zalomí na více řádků
Ohraničení
local cell = sheet:Cell(1, 1);
-- Všechny strany najednou
cell:SetBorder("Thin");
-- Jen vnější ohraničení
cell:SetBorderOutside("Medium");
-- Jednotlivé strany
cell:SetBorderTop("Thick");
cell:SetBorderBottom("Thin");
cell:SetBorderLeft("Dashed");
cell:SetBorderRight("Dotted");
-- Styly: "None", "Thin", "Medium", "Thick", "Double", "Dotted", "Dashed"
Formát čísel
local cell = sheet:Cell(1, 1);
cell:SetNumberFormat("#,##0.00"); -- tisíce s čárkou, 2 des. místa
cell:SetNumberFormat("0.00%"); -- procenta
cell:SetNumberFormat("dd.mm.yyyy"); -- datum
cell:SetNumberFormat("hh:mm:ss"); -- čas
Formula
local cell = sheet:Cell(1, 1);
cell:SetFormula("=SUM(A1:A10)");
cell:SetFormula("=IF(B1>100, \"Vysoká\", \"Nízká\")");
-- Kontrola
if cell:HasFormula() then
print("Formula:", cell:GetFormula());
end
Vymazání obsahu
local cell = sheet:Cell(1, 1);
cell:Clear(); -- smaže vše (hodnota + formátování)
cell:ClearContents(); -- smaže jen hodnotu, formátování zůstane
cell:ClearFormats(); -- smaže jen formátování, hodnota zůstane
📐 Práce s rozsahy (Ranges)
Poznámka: ERange je zkrácený alias pro Excel.Range — obě varianty jsou zaměnitelné.
ERange (alias Excel.Range) lze vytvořit více způsoby:
ERange(2, 1, 10, 5) -- row1, col1, row2, col2
ERange("A1:E10") -- string zápis
ERange("A1", "E10") -- dvě adresy
ERange(cell1, cell2) -- dva Cell objekty
-- Nastavení barvy pozadí pro rozsah
sheet:SetRangeBackgroundColor(ERange(2, 1, 10, 5), "#E0E0E0");
-- RGB varianta
sheet:SetRangeBackgroundColor(ERange(2, 1, 10, 5), RGB(224, 224, 224));
-- Tučné písmo pro rozsah
sheet:SetRangeBold(ERange(1, 1, 1, 5), true);
-- Ohraničení rozsahu
sheet:SetRangeBorder(ERange(1, 1, 10, 5), "Thin");
-- Sloučení buněk
sheet:MergeRange(ERange(1, 1, 1, 3)); -- sloučí řádek 1, sloupce 1-3
📏 Šířka sloupců a výška řádků
-- Nastavení šířky sloupce
sheet:SetColumnWidth(1, 25);
-- Automatické přizpůsobení šířky
sheet:AutoFitColumn(1);
-- Získání šířky
local width = sheet:GetColumnWidth(1);
-- Nastavení výšky řádku
sheet:SetRowHeight(1, 30);
-- Získání výšky
local height = sheet:GetRowHeight(1);
➕➖ Vkládání a mazání řádků/sloupců
-- Vložení řádku nad řádek 5
sheet:InsertRowAbove(5);
-- Smazání řádku 10
sheet:DeleteRow(10);
-- Vložení sloupce před sloupec 3
sheet:InsertColumnBefore(3);
-- Smazání sloupce 5
sheet:DeleteColumn(5);
🔍 Vyhledávání
Všechny vyhledávací funkce nyní vrací Cell objekty nebo tabulky Cell objektů.
Hledání v celém listu
-- Najde první výskyt
local cell = sheet:Find("Total");
if cell then
print("Nalezeno na:", cell:GetAddress());
cell:SetBold(true);
end
-- Najde všechny výskyty
local cells = sheet:FindAll("Error");
for _, cell in ipairs(cells) do
cell:SetFontColor("#FF0000");
print("Chyba na:", cell:GetAddress());
end
Hledání v rozsahu
-- Číselný rozsah
local cell = sheet:FindInRange("Sum", ERange(1, 1, 10, 5));
-- String rozsah
local cell = sheet:FindInRange("Total", ERange("A1:E10"));
local cell = sheet:FindInRange("Total", ERange("A1", "E10"));
-- 2 buňky tvořící protilehlé rohy
local cell = sheet:FindInRange("Sum", ERange(cell1, cell2));
-- Všechny výskyty v rozsahu
local cells = sheet:FindAllInRange("Error", ERange("A1:Z100"));
Hledání v řádku/sloupci
-- Najde v sloupci 1
local cell = sheet:FindInColumn("Total", 1);
local cell = sheet:FindInColumn("Control", 1, 5); -- začít od řádku 5
-- Najde v řádku 1
local cell = sheet:FindInRow("Name", 1);
local cell = sheet:FindInRow("Price", 1, 3); -- začít od sloupce 3
-- Všechny výskyty
local cells = sheet:FindAllInColumn("X", 1);
local cells = sheet:FindAllInRow("Header", 1);
📊 Rozsah listu
local rows, cols = sheet:GetSheetRange();
print("List má", rows, "řádků a", cols, "sloupců");
-- Procházení všech buněk
for row = 1, rows do
for col = 1, cols do
local value = sheet:Cell(row, col):Get();
print(row, col, value);
end;
end;
💾 Uložení změn a uzavření
wb:Save();
wb:SaveAs("adresa/novýNázev.xlsx");
wb:Close();
wb:Save() uloží veškeré změny v rámci daného Workbook objektu. (Veškeré změny se projeví, až po uložení)
- Přepisuje původní
.xlsx soubor.
wb:SaveAs() uloží veškeré změny v do nového souboru.
- Nové workbooky je nutné uložit pomocí SaveAs.
wb:Close() zavře otevřený sešit a jeho listy a uvolní paměť.
🧰 Pomocné funkce Excel modulu
-- Převod adresy na row, col
local row, col = Excel.AddressToRowCol("C5"); -- 5, 3
-- Převod row, col na adresu
local address = Excel.RowColToAddress(5, 3); -- "C5"
-- Parsování rozsahu
local row1, row2, col1, col2 = Excel.ParseStringRange("A1:C10");
-- Index sloupce na písmeno
local letter = Excel.ColumnIndexToLetter(3); -- "C"
-- Písmeno na index sloupce
local index = Excel.LetterToColumnIndex("C"); -- 3
-- Kontroly
local isCell = Excel.IsCellAddress("C5"); -- true
local isRange = Excel.IsRange("A1:C10"); -- true
-- Rozbalení rozsahu na jednotlivé adresy
local cells = Excel.ExpandRange("A1:B2"); -- {"A1", "A2", "B1", "B2"}
-- Normalizace rozsahu (levý horní roh, pravý dolní roh rozsahu)
local r1, r2, c1, c2 = Excel.NormalizeRange(10, 1, 5, 3); -- 1, 10, 3, 5
-- Převod formátu na typ (heuristika)
local type = Excel.FormatToType("#,##0.00"); -- "number"
-- Vytvoření string rozsahu z row/col
local range = Excel.RangeToString(1, 10, 1, 5); -- "A1:E10"
Příklad 1: Zpracování dat s vyhledáváním
local wb = Workbook("Units.xlsx");
local sheet = wb:Sheet("EngCon");
-- Najdeme buňku s textem "Control"
local controlCell = sheet:FindInColumn("Control", 1);
if controlCell then
-- Zapíšeme hodnotu do řádku pod ní
local dataCell = sheet:Cell(controlCell.row + 1, 5);
dataCell:SetValue("Workshop");
dataCell:SetBackgroundColor("#90EE90");
print("Jednotka zapsána:", dataCell:GetValue());
else
wb:Close();
error("Nebyl nalezen Control.");
end
-- Najdeme všechny buňky s "Error" a označíme je
local errorCells = sheet:FindAll("Error");
for _, cell in ipairs(errorCells) do
cell:SetFontColor("#FF0000")
:SetBold(true)
:SetBackgroundColor("#FFE0E0");
print("Chyba na pozici:", cell:GetAddress());
end
wb:Save();
wb:Close();
Příklad 2: Formátování hlavičky tabulky
local wb = Workbook("Report.xlsx");
local sheet = wb:Sheet("Data");
-- Najdeme řádek s hlavičkami
local headerCells = sheet:FindAllInRow("Name", 1);
-- Naformátujeme celý řádek hlaviček
for _, cell in ipairs(headerCells) do
-- Naformátujeme celý řádek hlaviček
local row = cell.row;
for col = 1, 10 do
sheet:Cell(row, col)
:SetBold(true)
:SetBackgroundColor("#4472C4")
:SetFontColor("#FFFFFF")
:SetAlignment("Center", "Center")
:SetBorder("Thin");
end;
break; -- Stačí první nalezená
end;
-- AutoFit všech sloupců
for col = 1, 10 do
sheet:AutoFitColumn(col);
end;
wb:Save();
wb:Close();
Příklad 3: Práce se Vzorci
local cell = sheet:Cell(1, 1);
cell:SetFormula("=SUM(A1:A10)");
cell:SetFormula("=IF(B1>100, \"Vysoká\", \"Nízká\")");
-- Kontrola
if cell:HasFormula() then
print("Formula:", cell:GetFormula());
end
⚠️ Důležité upozornění o vzorcích:
CLua využívá ClosedXML, a ten nepřepočítává vzorce automaticky. Vzorce jsou zapsány do souboru, ale jejich výsledky budou vypočteny, až bude vyžádána value (skrz cell:Get()) nebo až při otevření souboru v Excelu, OfficeLibre či jiném programu..
sheet:Cell(1, 1):SetValue(10);
sheet:Cell(1, 2):SetValue(20);
sheet:Cell(1, 3):SetFormula("=A1+B1");
local result = sheet:Cell(1, 3):Get();
🧪 Tabulka všech funkcí
Workbook funkce
| Funkce |
Popis |
Workbook(path) |
Načte existující sešit |
NewWorkbook(name) |
Vytvoří nový sešit v paměti (volitelný pracovní název) |
WorkbookExists(path) |
Zkontroluje existenci sešitu |
CloseAllWorkbooks() |
Zavře všechny otevřené sešity |
wb:Sheet(name) |
Vrátí sheet objekt |
wb:AddSheet(name) |
Přidá nový list |
wb:DeleteSheet(name) |
Smaže list |
wb:RenameSheet(oldName, newName) |
Přejmenuje list |
wb:ContainSheet(name) |
Zkontroluje existenci listu |
wb:GetSheetNames() |
Vrátí seznam všech listů |
wb:Save() |
Uloží změny (workbook musí mít cestu) |
wb:SaveAs(path) |
Uloží sešit na novou cestu |
wb:Recalculate() |
Přepočítá všechny formule v sešitu |
wb:Close() |
Zavře sešit |
Sheet funkce - Základní operace
| Funkce |
Popis |
sheet:Cell(row, col) |
Vytvoří Cell objekt |
sheet:GetCell(row, col) |
Načte string hodnotu (zpětná kompatibilita) |
sheet:SetCell(row, col, value) |
Nastaví string hodnotu (zpětná kompatibilita) |
sheet:GetSheetRange() |
Vrátí počet řádků a sloupců (2 hodnoty) |
sheet:Recalculate() |
Přepočítá všechny formule v listu |
Sheet funkce - Vyhledávání
Všechny vrací Cell objekt nebo tabulku Cell objektů.
| Funkce |
Popis |
sheet:Find(text) |
Najde první výskyt v listu |
sheet:FindAll(text) |
Najde všechny výskyty v listu |
sheet:FindInRange(text, range) |
Najde první buňku s hodnotou v rozsahu (ERange) |
sheet:FindAllInRange(text, range) |
Najde všechny buňky s hodnotou v rozsahu (ERange) |
sheet:FindInRow(text, row, startCol) |
Najde v řádku |
sheet:FindAllInRow(text, row, startCol) |
Najde všechny v řádku |
sheet:FindInColumn(text, col, startRow) |
Najde ve sloupci |
sheet:FindAllInColumn(text, col, startRow) |
Najde všechny ve sloupci |
Sheet funkce - Sloupce a řádky
| Funkce |
Popis |
sheet:SetColumnWidth(col, width) |
Nastaví šířku sloupce (Excel jednotky) |
sheet:AutoFitColumn(col) |
Auto-šířka sloupce podle obsahu |
sheet:GetColumnWidth(col) |
Získá šířku sloupce |
sheet:SetRowHeight(row, height) |
Nastaví výšku řádku (body) |
sheet:GetRowHeight(row) |
Získá výšku řádku |
sheet:DeleteRow(row) |
Smaže řádek |
sheet:DeleteColumn(col) |
Smaže sloupec |
sheet:InsertRowAbove(row) |
Vloží řádek nad |
sheet:InsertColumnBefore(col) |
Vloží sloupec před |
Sheet funkce - Formátování řádků
| Funkce |
Popis |
sheet:SetRowBackgroundColor(row, hex) |
Barva pozadí řádku (hex nebo RGB tabulka) |
sheet:SetRowFontColor(row, hex) |
Barva písma řádku (hex nebo RGB tabulka) |
sheet:SetRowBold(row, bool) |
Tučné písmo řádku |
Sheet funkce - Formátování sloupců
| Funkce |
Popis |
sheet:SetColumnBackgroundColor(col, hex) |
Barva pozadí sloupce (hex nebo RGB tabulka) |
sheet:SetColumnFontColor(col, hex) |
Barva písma sloupce (hex nebo RGB tabulka) |
sheet:SetColumnBold(col, bool) |
Tučné písmo sloupce |
Sheet funkce - Rozsahy
| Funkce |
Popis |
sheet:SetRangeBackgroundColor(range, hex) |
Barva pozadí rozsahu (hex nebo RGB tabulka) |
sheet:SetRangeBold(range, bool) |
Tučné písmo rozsahu |
sheet:SetRangeBorder(range, style) |
Ohraničení rozsahu |
sheet:MergeRange(range) |
Sloučí buňky |
Sheet funkce - Zmrazení panelů
| Funkce |
Popis |
sheet:FreezeRows(count) |
Zmrazí horní řádky (hlavička) |
sheet:FreezeColumns(count) |
Zmrazí levé sloupce |
sheet:FreezePanes(row, col) |
Zmrazí řádky nad a sloupce před |
sheet:UnfreezePanes() |
Zruší zmrazení |
Cell funkce - Hodnoty
| Funkce |
Popis |
cell:SetValue(value) |
Nastaví typovanou hodnotu (number/string/bool) |
cell:GetValue() |
Získá typovanou hodnotu |
cell:Set(text) |
Nastaví string hodnotu (alias) |
cell:Get() |
Získá string hodnotu (alias) |
cell:SetFormula(formula) |
Nastaví formuli |
cell:GetFormula() |
Získá formuli (nebo nil) |
cell:HasFormula() |
Zkontroluje formuli |
cell:Calculate() |
Přepočítá formuli v buňce |
cell:Clear() |
Vymaže vše (hodnota + formátování) |
cell:ClearContents() |
Vymaže jen hodnotu |
cell:ClearFormats() |
Vymaže jen formátování |
Cell funkce - Font formátování
| Funkce |
Popis |
cell:SetBold(bool) |
Tučné písmo |
cell:SetItalic(bool) |
Kurzíva |
cell:SetUnderline(bool) |
Podtržení |
cell:SetStrikethrough(bool) |
Přeškrtnutí |
cell:SetFontSize(size) |
Velikost písma (body) |
cell:SetFontName(name) |
Typ písma (např. "Arial") |
Cell funkce - Barvy
| Funkce |
Popis |
cell:SetBackgroundColor(hex) |
Barva pozadí (hex nebo RGB tabulka) |
cell:SetBackgroundColorTheme(name, tint) |
Theme barva pozadí |
cell:SetFontColor(hex) |
Barva písma (hex nebo RGB tabulka) |
cell:SetFontColorTheme(name, tint) |
Theme barva písma |
Cell funkce - Zarovnání
| Funkce |
Popis |
cell:SetAlignment(h, v) |
Zarovnání (h: "Left"/"Center"/"Right", v: "Top"/"Center"/"Bottom") |
cell:SetWrapText(bool) |
Zalomení textu na více řádků |
Cell funkce - Ohraničení
| Funkce |
Popis |
cell:SetBorder(style) |
Všechny strany (styly: "Thin", "Medium", "Thick", "Double", atd.) |
cell:SetBorderOutside(style) |
Vnější ohraničení |
cell:SetBorderTop(style) |
Horní ohraničení |
cell:SetBorderBottom(style) |
Dolní ohraničení |
cell:SetBorderLeft(style) |
Levé ohraničení |
cell:SetBorderRight(style) |
Pravé ohraničení |
Cell funkce - Formát čísel
| Funkce |
Popis |
cell:SetNumberFormat(format) |
Formát (např. "#,##0.00", "dd.mm.yyyy") |
Cell funkce - Čtení formátování
| Funkce |
Popis |
cell:GetBold() |
Zkontroluje tučné |
cell:GetItalic() |
Zkontroluje kurzívu |
cell:GetUnderline() |
Zkontroluje podtržení |
cell:GetStrikethrough() |
Zkontroluje přeškrtnutí |
cell:GetFontSize() |
Získá velikost písma |
cell:GetFontName() |
Získá typ písma |
cell:GetBackgroundColor() |
Získá barvu pozadí (hex) |
cell:GetFontColor() |
Získá barvu písma (hex) |
cell:GetHorizontalAlignment() |
Získá horizontální zarovnání |
cell:GetVerticalAlignment() |
Získá vertikální zarovnání |
cell:GetWrapText() |
Zkontroluje zalomení textu |
cell:GetBorderTop() |
Získá horní ohraničení |
cell:GetBorderBottom() |
Získá dolní ohraničení |
cell:GetBorderLeft() |
Získá levé ohraničení |
cell:GetBorderRight() |
Získá pravé ohraničení |
cell:GetNumberFormat() |
Získá formát čísel |
cell:IsMerged() |
Zkontroluje sloučení |
cell:GetMergedRange() |
Získá sloučený rozsah (např. "A1:C1") |
cell:GetAddress() |
Získá adresu buňky (např. "C5") |
cell:GetEx() |
Získá všechny detaily (CellEx) |
Excel pomocné funkce
| Funkce |
Popis |
Excel.AddressToRowCol("C5") |
Převede adresu na row, col (vrací 2 hodnoty) |
Excel.RowColToAddress(row, col) |
Převede row, col na adresu (např. "C5") |
Excel.ParseStringRange("A1:C10") |
Parsuje rozsah (vrací r1, r2, c1, c2) |
Excel.ColumnIndexToLetter(col) |
Index sloupce na písmeno (3 → "C") |
Excel.LetterToColumnIndex("C") |
Písmeno na index sloupce ("C" → 3) |
Excel.IsCellAddress(str) |
Zkontroluje adresu buňky |
Excel.IsRange(str) |
Zkontroluje rozsah |
Excel.ExpandRange("A1:B2") |
Rozbalí rozsah na adresy |
Excel.NormalizeRange(r1,r2,c1,c2) |
Normalizuje rozsah |
Excel.RangeToString(r1,r2,c1,c2) |
Vytvoří string rozsahu |
Excel.Range(...) / ERange(...) |
Vytvoří objekt ExcelRange |
Excel.FormatToType(format) |
Heuristika typu z formátu |
RGB barvy
Pro barvy můžete použít pomocné funkce:
local barva = RGB(255, 200, 100) -- {red=255, green=200, blue=100}
local cerna = BLACK()
local bila = WHITE()
local seda = GRAY(192)