Powershell – Excel – Čitaj, piši, spremi – Primjeri

powershell.ps1

# OTVORI
[threading.thread]::CurrentThread.CurrentCulture = 'hr-HR'
$excelObject = New-Object -ComObject excel.application
$excelFajl   = $excelObject.Workbooks.Open("R:\ekselice\excel.xlsx") # moraš stavit full path
$excelObject.Visible = $true                                # vidljivo, jelte, inače radi u bekgraundu
$excelObject.WindowState = "xlMaximized"                    # "xlNormal"
$excelFajl.Sheets | Format-List  Name                       # izlistaj nazive svih plahtica, popis
$excelFajl.Sheets | Format-Table Name, Index                # izlistaj nazive i rbr (Index) plahticah, tablica
# ČITAJ IZ EKSELICE
$plahtica = $excelFajl.WorkSheets.item("Sheet1")
$plahtica = $excelFajl.WorkSheets.item(2)
$excelFajl.ActiveSheet.Name                                 # koji sheet je aktivan
$Cell      = $plahtica.range("A1:B2")                       # učitaj raspon polja
Write-Host $Cell.value()
Write-Host $Cell.value2                                     # prikaži vrijednosti u poljima
$cell.EntireRow.Value2                                      # prikaži vrijednosti iz prvog retka ("A1")
$plahtica  = $excelFajl.WorkSheets.item("Plahtica2")        
$plahtica.activate()                                        # Aktiviraj novu plahticu
$Cell      = $plahtica.range("G6")                          # prikaži podatak iz samo jednog polja
Write-Host $Cell.value()
Write-Host $Cell.value2
$Cell      = $plahtica.range("G6")
Write-Host $Cell.Text
# PIŠI U EKSELICU
$plahtica.Columns.Item(2).Rows.Item(2)   = "Qweqwe"         # zapiši podatak u B2
$plahtica.Columns.Item("C").Rows.Item(3) = "šđčćž"          # .. ili u C3
[void]$plahtica.Cells.Item(1,1).EntireColumn.Delete()       # obriši stupac
[void]$plahtica.Cells.Item(1,1).EntireRow.Delete()          # obriši redak
# RAZNO
$plahtica.UsedRange.columns.count                           # koliko ima stupaca
$plahtica.UsedRange.rows.count                              # koliko ima redaka
# SPREMI KAO
$excelFajl.SaveAs("R:\noviFajl.xlsx")                       # spremi kao novi XLSX fajl ..ili..
# SPREMI ISTI
$excelFajl.Application.DisplayAlerts=$False                 # Preskoči gluposti "Želiš li zaista spremiti?"
$excelFajl.Save()                                           # Sad samo spremi i šuti
# ZATVORI I OSLOBODI BOŽ RESURSE
$excelFajl.close($true)                                     # $true = spremi; $false = koga briga
$excelObject.Quit()                                         # pozatvaraj instance 
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excelObject) # pozatvaraj instance, šta ja znam zašto treba i ovo

Razno

https://www.getfishtank.com/blog/useful-powershell-commands-for-excel


excel xexcel cell xcell powershell posh pwsh read write table single xpowershell xposh xpwsh xread xwrite xtable xsingle xlsx xxlsx

 

image_pdfimage_print