Přejít na hlavní obsah

Jak pomocí Powershell vypočítat počet řádků v Excelu

Microsoft Excel je jedním z nejoblíbenějších nástrojů pro práci s tabulkami a daty. Při práci s velkými tabulkami je často nutné znát počet řádků v souboru Excel. Místo ručního počítání těchto informací můžete použít nástroje Powershell-výkonný programovací jazyk a rozhraní příkazového řádku od společnosti Microsoft.

Powershell poskytuje nástroje pro automatizaci úloh a práci s různými formáty souborů, včetně Excelu. Pomocí malého skriptu na Powershell lze snadno spočítat počet řádků v souboru Excel, aniž byste jej museli otevírat v aplikaci Excel.

Chcete-li vypočítat počet řádků v souboru Excel pomocí aplikace Powershell, musíte použít modul ImportExcel, který poskytuje pohodlné příkazy pro práci s tabulkami Excel. Po instalaci tohoto modulu můžete použít příkaz Get-ExcelSheetInfo, který vám umožní získat informace o obsahu souboru Excel.

Počet řádků v Excelu pomocí Powershell

Chcete-li začít, musíte nainstalovat modul pro práci s Excelem v Powershell. Spusťte následující příkaz na příkazovém řádku:

Install-Module -Name ImportExcel

Po instalaci můžeme modul použít k otevření souboru Excel, čtení jeho dat a počítání počtu řádků. Zde je příklad skriptu Powershell, který tento úkol plní:

  1. Otevřete terminál.
  2. Nainstalujte balíček správy balíčků Homebrew zadáním následujícího příkazu a stisknutím klávesy Enter: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  3. Pokud budete požádáni o potvrzení instalace balíčku Homebrew, stiskněte Enter.
  4. Po instalaci Homebrew spusťte následující příkaz k instalaci Powerhell: brew cask install powershell
  5. Instalace může chvíli trvat.
  1. Otevřete terminál.
  2. Chcete-li přidat úložiště Powershell, spusťte následující příkaz: wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
  3. Chcete-li jej nainstalovat, spusťte následující příkaz: sudo dpkg -i packages-microsoft-prod.deb
  4. Chcete-li aktualizovat index balíčků, spusťte následující příkaz: sudo apt-get update
  5. Chcete-li nainstalovat Powershell, spusťte následující příkaz: sudo apt-get install -y powershell

Poté můžete otevřít požadovaný soubor aplikace Excel pomocí metody Open:

$workbook = $excel.Workbooks.Open("путь_к_файлу")

Po otevření souboru je možné provést potřebné operace. Můžete například získat přístup ke konkrétnímu listu:

$worksheet = $workbook.Worksheets.Item(1)

Nyní je možné pracovat s daty na listu, měnit hodnoty buněk, číst data atd.

Po ukončení práce se souborem jej lze zavřít:

$workbook.Close()

A nakonec je nutné uvolnit zdroje používané objektem aplikace Excel.Application:

$excel.Quit()[System.Runtime.Interopservices.Marshal]::ReleaseComObject($worksheet)[System.Runtime.Interopservices.Marshal]::ReleaseComObject($workbook)[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)[System.GC]::Collect()[System.GC]::WaitForPendingFinalizers()

Pomocí Powershell je tedy možné snadno otevřít soubor aplikace Excel, provést potřebné operace s daty a zavřít soubor uvolněním zdrojů.

Počítání řádků v Excelu pomocí Powershell

Když pracujete se soubory Excel v Powershell, často dochází k situacím, kdy je třeba počítat počet řádků v tabulce. Naštěstí s PowerShellem to lze udělat velmi jednoduše.

Prvním krokem je instalace modulu Microsoft Excel, pokud ještě není ve vašem počítači. Můžete to provést spuštěním následujícího příkazu v Powershell:

Install-Module -Name ImportExcel

Po instalaci modulu můžete pomocí příkazu "Get-ExcelSheetInfo" získat informace o souboru Excel, včetně počtu řádků v tabulce. Níže je uveden příklad kódu:

Import-Module -Name ImportExcel$ExcelFile = "C:\Путь_к_Файлу\файл.xlsx"$SheetName = "Лист1"$ExcelInfo = Get-ExcelSheetInfo -Path $ExcelFile -WorksheetName $SheetName$RowCount = $ExcelInfo.RowCountWrite-Output "Количество строк в таблице: $RowCount"

V uvedeném příkladu nejprve importujeme modul ImportExcel, abychom použili příkaz Get-ExcelSheetInfo. Poté zadáme cestu k souboru Excel a název listu, který nás zajímá.

Po provedení příkazu Get-ExcelSheetInfo získáme informace o souboru Excel, včetně počtu řádků v uvedeném listu. Tuto hodnotu uložíme do proměnné $RowCount a zobrazíme ji na obrazovce pomocí příkazu Write-Output.

Nyní, když víte, jak vypočítat počet řádků v Excelu pomocí Powershell, můžete tyto informace snadno použít k provádění různých úkolů souvisejících se zpracováním souborů aplikace Excel.

Zpracování chyb a výjimek

Při práci s Powershell a zpracování dat v Excelu může být nutné zpracovat chyby a výjimky. Zpracování chyb umožňuje zabránit nežádoucímu dokončení programu v případě chyby a pokračovat v provádění kódu.

Pro zpracování chyb a výjimek Powershell používá návrhy try , catch , finally . Uvnitř bloku try je uveden kód, ve kterém může dojít k chybě. Pokud dojde k chybě, spuštění kódu přejde do jednotky catch , kde lze chybu zpracovat a provést další kroky. Jednotka finally se provádí vždy po bloku try a catch , bez ohledu na chyby.

Příklad zpracování chyby při počítání počtu řádků v Excelu:

try catch finally

V tomto příkladu se spustí aplikace Excel, otevře se soubor, vybere se první list a spočítá se počet řádků. Pokud dojde k chybě, zobrazí se chybová zpráva v bloku catch. V bloku se soubor definitivně zavře a aplikace Excel skončí.

Zpracování chyb a výjimek v Powershell pomáhá předcházet předčasnému ukončení programu a umožňuje flexibilnější správu provádění kódu.

Uzavření souboru Excel a uvolnění paměti

Jakmile dokončíme práci se souborem Excel pomocí PowerShell, je důležité správně zavřít soubor a uvolnit paměť, aby nedošlo k úniku prostředků. Zde je několik kroků, které vám k tomu pomohou.

1. Zavřít pracovní sešit:

$workbook.Close()

2. Zavřít aplikaci Excel:

$excel.Quit()

3. Osvobodit paměť:

[System.Runtime.InteropServices.Marshal]::ReleaseComObject($range)
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($worksheet)
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($workbook)
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($excel)
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()

Po provedení těchto kroků bude soubor uzavřen, paměť bude uvolněna a zdroje budou správně zlikvidovány. To je důležité zejména při práci se spoustou souborů aplikace Excel nebo při automatizaci duplicitních úloh.