diff --git a/FAQ/How to Read an Existing Excel File.md b/FAQ/How to Read an Existing Excel File.md index 93fc469..30ad946 100644 --- a/FAQ/How to Read an Existing Excel File.md +++ b/FAQ/How to Read an Existing Excel File.md @@ -1,12 +1,40 @@ -# How to Read an existing Excel File +# How to Read an Existing Excel File ```powershell Import-Module ImportExcel -#Loads the Excel file into a is a custom PS Object +#Loads the Excel file into a PSCustomObject $ExcelFile = Import-Excel "C:\Test\file.xlsx" -WorksheetName "Sheet1" ``` ## Visual of Data Structure -The File C:\Test\file.xlsx contains +The File C:\Test\file.xlsx contains +![ExcelFileContents](/images/FAQ_Images/ExcelFileContents.png) -After Loading this data into ```$ExcelFile``` the data is stored like: \ No newline at end of file +After loading this data into ```$ExcelFile``` the data is stored like: +![ExcelFileDebugImg](/images/FAQ_Images/ExcelFileDebugImg.jpg) + +## Other Common Operations + +### Load a Column +```powershell +$SpecificColumn = $ExcelFile."anotherHeader" #loads column with the header "anotherHeader" -- data stored in an array +``` + +### Load a Row +```powershell +$SpecificRow = $ExcelFile[1] #Loads row at index 1. Index 1 is the first row instead of 0. +``` + +### Map Contents to Hashtable to Interpret Data +Sometimes mapping to a Hashtable is more convenient to have access to common Hashtable operations. Enumerate a Hashtable with the row's data by: +```powershell +$HashTable = @{} +$SpecificRow= $ExcelFile[2] +$SpecificRow.psobject.properties | ForEach-Object {$HashTable[$_.Name] = $_.Value} +``` +To then iterate through the enumerated Hashtable: +```powershell +ForEach ($Key in ($HashTable.GetEnumerator()) | Where-Object {$_.Value -eq "x"}){ #Only grabs a key where the value is "x" + #values accessible with $Key.Name or $Key.Value +} +```