PowerShell Betiğinde Excel Dosyası Nasıl İçe Aktarılır?


Microsoft Excel, milyonlarca kişi tarafından verileri depolamak, düzenlemek ve analiz etmek için kullanılıyor. Excel dosyaları (.xlsx, .xls) raporlar, listeler, hesaplamalar vb. gibi çok sayıda yararlı veri içerir. Bir PowerShell komut dosyası oluşturucusu olarak, komut dosyalarınızda kullanmak üzere sıklıkla Excel dosyalarından veri ayıklamanız gerekebilir. PowerShell ile Excel dosyalarını doğrudan komut dosyalarınıza aktarabilir ve aktarabilir ve verilerle programlı bir şekilde çalışabilirsiniz. Bu başlangıç kılavuzunda size PowerShell Import-Excel cmdlet'ini tanıtacağım ve bunu Excel dosyalarından veri içe aktarmak için nasıl kullanacağınızı göstereceğim.

Ayrıca modülün nasıl kurulacağını, belirli çalışma sayfalarının ve hücre aralıklarının nasıl okunacağını, Excel verilerine nasıl erişileceğini ve filtreleneceğini ve hatta mevcut Excel dosyalarının nasıl güncelleneceğini de ele alacağız; üstelik hepsi PowerShell içinden! Raporları otomatikleştirmeniz, hesaplamaları işlemeniz veya analiz için veri ayıklamanız gerekiyorsa, bu eğitim size PowerShell'in nasıl kolay Excel entegrasyonu ve otomasyonu sağladığını gösterecektir. PowerShell ile Excel'de komut dosyası yazmanın gücünün kilidini açmak için okumaya devam edin!

PowerShell ImportExcel Modülüne Giriş

ImportExcel modülü, Excel elektronik tablolarına ve Excel elektronik tablolarından veri içe ve dışa aktarmak için cmdlet'ler sağlayan bir PowerShell modülüdür. Bu modül, Excel dosyalarıyla kusursuz bir entegrasyon sunar ve bunlarla çalışma sürecini basitleştirir. Kullanıcıların Excel dosyalarından verileri kolaylıkla okumasını, değiştirmesini ve dışa aktarmasını sağlayan bir dizi cmdlet sağlar. Bu, normalde zaman alıcı ve sıkıcı olabilecek veri yönetimi görevlerini otomatikleştirmek için özellikle kullanışlıdır.

ImportExcel modülü varsayılan olarak PowerShell'e dahil değildir, dolayısıyla ayrı olarak yüklemeniz gerekir. Kurulduktan sonra, PowerShell içinden Excel elektronik tablolarıyla etkileşimde bulunmak için modül tarafından sağlanan cmdlet'leri kullanabilirsiniz.

ImportExcel Modülünü PowerShell'e Yükleme

Excel dosyalarını PowerShell'e aktarmanın en kolay yolu ImportExcel modülünü kullanmaktır. Bu kullanışlı modül, PowerShell Galerisinden ücretsiz kurulum için mevcuttur. Import-Excel modülünü kurmak için PowerShell'i açıp aşağıdaki komutu çalıştırmanız yeterlidir:


Install-Module -Name ImportExcel

Bu, ImportExcel modülünün en son sürümünü ve bağımlılıklarını indirip yükleyecektir. BTW modüllerini yüklemek için PowerShell'i yönetici olarak çalıştırmanız gerekir! Değilse, yönetici haklarına sahip olmayan mevcut kullanıcı için kurulum yapmak üzere “Kapsam” parametresini kullanabilirsiniz.


Install-Module -Name ImportExcel -Scope CurrentUser

Kurulduktan sonra aşağıdakileri kullanarak modülü komut dosyalarınıza aktarabilirsiniz:


Import-Module ImportExcel

Artık verileri Excel'den PowerShell'e aktarmaya hazırız!

PowerShell kullanarak Excel'den Verileri İçe Aktarma

PowerShell kullanarak Excel'den veri aktarmak basit bir işlemdir. ImportExcel modülünü yükledikten sonra, bir Excel elektronik tablosundan veri almak için Import-Excel cmdlet'ini kullanabilirsiniz.

Bir Excel dosyasını içe aktarmak için şu adımları izleyin:

  1. PowerShell konsolunu veya PowerShell ISE'yi açarak bir PowerShell oturumu başlatın.
  2. Aşağıdaki komutu yürüterek Import-Excel modülünü içe aktarın: Import-Module -Name ImportExcel
  3. Excel dosyasını içe aktarmak için Import-Excel cmdlet'ini kullanın. Örneğin: Import-Excel -Path C:\Path\To\Excel\File.xlsx
  4. Excel dosyası bir PowerShell nesnesi olarak içe aktarılacak ve kullanıcıların PowerShell cmdlet'lerini ve sözdizimini kullanarak verilere erişmesine ve bunları değiştirmesine olanak tanıyacak.

Cmdlet, bağımsız değişken olarak bir Excel dosyasının yolunu alır ve elektronik tablodaki verileri içeren bir PowerShell nesnesini döndürür.

Örneğin, “C:\Reports\EmpData.xlsx” konumunda bulunan bir Excel elektronik tablosundan verileri içe aktarmak için aşağıdaki komutu çalıştırırsınız:


# File Path variable
$FilePath = "C:\Reports\EmpData.xlsx"

# Read the Excel file and store its data into the variable
$ExcelData = Import-Excel -Path $FilePath

Import-Excel cmdlet'i Excel dosyasını okur ve bunu $ExcelData değişkeninde saklar.

İşte Excel Dosyam:

PowerShell'den Excel Verilerine Erişin

İçe aktarılan Excel verileri, değişken içinde PSObject'ler olarak depolanır. Buna diğer herhangi bir PowerShell nesnesi gibi erişebilirsiniz. İşte bazı örnekler:

Belirli Çalışma Sayfasını Okuyun

Excel dosyasından belirli bir çalışma sayfasını okumak için -WorkSheetName parametresini kullanın:


$Sheet1Data = Import-Excel -Path $FilePath -WorksheetName "Sheet1"

Bu yalnızca “Sayfa1” çalışma sayfası verilerini içe aktaracaktır.

Aşağıdakileri kullanarak Excel Elektronik Tablosundan belirli sütunları içe aktarabilirsiniz:


$data = Import-Excel -Path "C:\Temp\EmpData.xlsx" -HeaderName 'Employee Name', 'Designation'

Hücre Aralığını Oku

Ayrıca -StartRow ve -StartColumn parametrelerini kullanarak bir çalışma sayfasından belirli bir hücre aralığını okuyabilirsiniz:


Import-Excel -Path $FilePath -WorksheetName "Sheet1" -StartRow 1 -StartColumn 1 -EndRow 5 -EndColumn 2

Bu örnekte, 1'den 5'e kadar satırlara ve 1 ve 2 numaralı sütunlara odaklanarak "Sayfa1" çalışma sayfasından verileri içe aktarıyoruz.

PowerShell Import-Excel ile Gelişmiş Veri Yönetimi Teknikleri

PowerShell Import-Excel, veri yönetimi görevlerinizi otomatikleştirmenize yardımcı olabilecek çok çeşitli gelişmiş veri yönetimi teknikleri sağlar. En kullanışlı tekniklerden bazıları verileri filtrelemek, sıralamak ve gruplandırmaktır.

Verileri Filtrele

Verileri filtrelemek için Where-Object cmdlet'ini kullanabilirsiniz. Bu cmdlet, verilerdeki her satır için karşılanması gereken bir koşulu belirtmenize olanak tanır. Koşulu karşılamayan satırlar filtrelenir.


$SalesData = Import-Excel -Path $FilePath -WorksheetName "Sales"

$USSales = $SalesData | Where-Object {$_.Region -eq "US"}

Bu, Satış çalışma sayfasını yalnızca ABD bölgesine ait kayıtlara göre filtreleyecektir. Ayrıca şunları kullanarak da filtreleyebilirsiniz:


$FilteredData = Import-Excel -Path $FilePath | Where-Object {$_.Designation -eq 'Software Engineer'}

Bu örnekte, 2'den 10'a kadar olan satırlara odaklanarak "SalesData" çalışma sayfasından verileri içe aktarıyoruz.

  • Verileri sıralamak için Sort-Object cmdlet'ini kullanabilirsiniz. Bu cmdlet, sıralanacak bir veya daha fazla sütunu ve bunların sıralanma sırasını belirtmenize olanak tanır.
  • Verileri gruplamak için Group-Object cmdlet'ini kullanabilirsiniz. Bu cmdlet, verileri bir veya daha fazla sütuna göre gruplandırmanıza ve her grupta hesaplamalar yapmanıza olanak tanır.

PowerShell kullanarak Excel Dosyasını Güncelleyin

Mevcut bir Excel dosyasını güncellemek veya veri eklemek için ImportExcel modülünü de kullanabilirsiniz.

İlk önce Excel dosyasını içe aktarın:


#Import Excel File
$ExcelData = Import-Excel -Path "C:\Temp\EmpData.xlsx" -WorksheetName "Sheet1"

$ExcelData değişkeninde yeni bir satır eklemek gibi değişiklikler yapın:


#Add New Row
$NewRow = [PSCustomObject]@{
    "Employee Name" = "Ada Lovelace" 
    "Designation" = "Software Engineer"
    "Region" = "US"
}

$ExcelData += $NewRow

Son olarak güncellenen verileri orijinal Excel dosyasına kaydedin:


#Save the Excel File
Export-Excel -Path $FilePath -InputObject $ExcelData -ClearSheet

-ClearSheet parametresi, güncellenen verileri dışa aktarmadan önce mevcut tüm verileri temizler.

Benzer şekilde, $ExcelData'da uygun şekilde değişiklik yaparak çalışma sayfalarını güncelleyebilir, silebilir veya yeni çalışma sayfaları ekleyebilirsiniz.

Alternatif: Excel Verilerini Okumak için COM Birlikte Çalışma

PowerShell'de Excel dosyalarını herhangi bir harici modül olmadan içe aktarmanın alternatif bir yolu COM Birlikte Çalışma'yı kullanmaktır. Bu yöntemle Excel dosyaları oluşturmak veya bunlara erişmek için Excel'in yüklü olması gerekir.

İlk önce bir Excel COM nesnesi oluşturun:


$Excel = New-Object -ComObject Excel.Application

Ardından istediğiniz Excel dosyasını açın:


$Workbook = $Excel.Workbooks.Open("C:\Reports\data.xlsx")

Artık aşağıdaki gibi hücre değerlerini okuyabilirsiniz:


$Value = $Workbook.Worksheets["Sheet1"].Cells.Item(1,1).Value()

COM Birlikte Çalışma yöntemi size Excel uygulaması üzerinde ayrıntılı kontrol sağlar. İşte tam bir örnek:


# Create COM Excel object 
$Excel = New-Object -ComObject Excel.Application

# Open Excel file
$Workbook = $Excel.Workbooks.Open("C:\Temp\EmpData.xlsx") 

#Get the Worksheet
$Worksheet = $Workbook.Worksheets["Sheet1"]

# Read specific cells
$cellValue1 = $worksheet.Cells.Item(1, 1).Value()
$cellValue2 = $worksheet.Cells.Item(1, 2).Value()

# Display value
Write-Host "Cell A1 Value: " $cellValue1
Write-Host "Cell B1 Value: " $cellValue2

# Close Excel
$workbook.Close($false)
$Excel.Quit()

PowerShell Import-Excel ile Yaygın Hatalar ve Sorun Giderme

Her araçta olduğu gibi PowerShell Import-Excel kullanılırken de hatalar meydana gelebilir. En yaygın hatalardan bazıları biçimlendirme, dosya yolları ve izinlerle ilgili sorunları içerir.

Hata: "ImportExcel: 'ImportExcel' terimi bir cmdlet'in, işlevin, komut dosyasının veya çalıştırılabilir programın adı olarak tanınmıyor."

Çözüm: ImportExcel modülünü şu komutu çalıştırarak yükleyin: Install-Module -Name ImportExcel

Hata: Yanlış Dosya Yolu

Hata Mesajı: 'C:\yanlış\yol\dosya.xlsx' dosyası bulunamadı. Düzeltmek için dosya yolunun doğru olduğundan emin olun. Yol boşluk içeriyorsa, onu tırnak içine alın.

Hata: "Excel çalışma kitabı yüklenemedi."

Bu genellikle dosya yolunun veya adının yanlış olduğu anlamına gelir. Yolu ve dosya adını bir kez daha kontrol edin ve dosyanın var olduğundan emin olun. Ayrıca göreceli bir yol kullanmak yerine yolu tam olarak nitelendirmeyi deneyin. Belirtilen yolda bir dosya veya dizinin mevcut olup olmadığını test etmenize olanak tanıyan Test-Path cmdlet'ini de kullanabilirsiniz.

Hata: Çalışma kitabında 'WrongSheetName' sayfası bulunamadı

Çözüm: Çalışma sayfası adının doğru olduğundan emin olun. Çalışma sayfası adları büyük/küçük harfe duyarlıdır.

Hata: "Belge açık değil."

Bu, bir çalışma kitabını açmadan değiştirmeye veya kaydetmeye çalışırsanız oluşur. Başka herhangi bir işlem yapmadan önce çalışma kitabını açmak için Open-ExcelPackage cmdlet'ini kullandığınızdan emin olun.

Hata: "Çalışma kitabı zaten açık."

Aynı anda yalnızca bir PowerShell işleminde bir ExcelPackage'i açabilirsiniz. Çalışma kitaplarını tekrar açmadan önce Close-ExcelPackage ile tamamen kapattığınızdan emin olun.

Hata: "'Sayfa1' çalışma sayfası mevcut değil."

Belirtilen çalışma sayfası adı, Excel dosyasındaki gerçek çalışma sayfası adıyla eşleşmiyor. Adı bir kez daha kontrol edin veya tüm sayfaları listelemek için Get-ExcelSheetInfo'yu kullanın.

Hata: "Satır sayısı geçersiz."

Belirli bir satır aralığını içe aktarıyorsanız, son satır numarasının sayfa için geçerli olduğundan emin olun. Toplam satırları kontrol etmek için Get-ExcelSheetInfo kullanılabilir.

Hataları önlemek için çalışma kitabı yollarını, sayfa adlarını, satır numaralarını kontrol edin ve çalışma kitaplarını düzgün şekilde açın/kapatın. Hataları ortaya çıkarmak için -ErrorAction Stop'u kullanın. Ek rehberlik için modül belgelerine bakın.

PowerShell İçe Aktarma-Excel Kaynakları ve Daha Fazla Öğrenme

PowerShell Import-Excel hakkında daha fazla bilgi edinmek istiyorsanız başlamanıza yardımcı olacak çeşitli kaynaklar bulunmaktadır. PowerShell Galerisi veya GitHub'daki ImportExcel modülü, PowerShell Import-Excel ile birlikte kullanılabilecek ek modülleri ve cmdlet'leri bulmak için harika bir yerdir.

Çözüm

Excel dosyalarını PowerShell'e aktarmak ve otomatikleştirmek, ImportExcel modülünün yardımıyla kolay ve güçlüdür. Bu makalede, Excel verilerini PowerShell nesnelerine okumak için ImportExcel modülünün nasıl kurulacağını ve kullanılacağını ele aldık. PowerShell sözdizimini kullanarak belirli çalışma sayfalarını, hücre aralıklarını nasıl içe aktaracağınızı, Excel verilerini nasıl filtreleyeceğinizi ve işleyeceğinizi öğrendiniz. Ayrıca Excel dosyalarını doğrudan komut dosyalarınızdan nasıl güncelleyeceğinizi ve dışa aktaracağınızı da gördük. Bu kılavuzda özetlenen teknikler ve en iyi uygulamalarla bu aracın tüm avantajlarından yararlanabilir ve daha verimli bir veri analisti olabilirsiniz.

Ücretsiz ImportExcel modülünü kullanarak Excel dosyalarını PowerShell'e aktarmak oldukça kolaydır. Temel adımlar şunlardır:

  • ImportExcel modülünü yükleyin
  • Excel dosyasını okumak için Import-Excel cmdlet'ini kullanın
  • Çalışma sayfası verilerine PowerShell nesneleri olarak erişme
  • PowerShell sözdizimini kullanarak Excel verilerini filtreleyin ve işleyin
  • Excel dosyalarını PowerShell'den güncelleme ve dışa aktarma

Bu tekniklerle Excel raporlamayı, veri işlemeyi ve çok daha fazlasını doğrudan PowerShell komut dosyaları içinde otomatikleştirebilirsiniz. İster PowerShell Import-Excel'e yeni başlıyor olun ister deneyimli bir kullanıcı olun, her zaman öğrenecek ve keşfedecek yeni bir şeyler vardır. Elde edebileceğiniz zaman tasarrufunu ve üretkenlik kazanımlarını hayal edin. Bu nedenle bugün PowerShell ile Excel'de komut dosyası oluşturmaya başlayın ve veri işlemenizi bir sonraki düzeye taşıyın!

İlgili makaleler