Skip to content
Snippets Groups Projects
Commit a16794d8 authored by Flavio Ackermann's avatar Flavio Ackermann
Browse files

Improved Excel file handling, CSV file handling

parent 2713ba30
Branches
No related tags found
No related merge requests found
Import-Module -Name "$PSScriptRoot\Module\ElectronicsDataHandling" Start-Transcript -Path "$PSScriptRoot\..\Log\$(Get-Date -Format "yyyy-MM-dd-HHmmss").log"
Convert-ElectronicsDataFile
\ No newline at end of file Import-Module -Name "$PSScriptRoot\Module\ElectronicsDataHandling" -Force
Convert-ElectronicsDataFile -Verbose
Stop-Transcript
\ No newline at end of file
...@@ -77,7 +77,7 @@ function Import-RequiredModules { ...@@ -77,7 +77,7 @@ function Import-RequiredModules {
Write-Verbose "Imported module '$ModuleName'" Write-Verbose "Imported module '$ModuleName'"
} catch { } catch {
Write-Warning "Module '$ModuleName' could not be imported" Write-Warning "Module '$ModuleName' could not be imported"
break return
} }
} }
} }
...@@ -107,7 +107,9 @@ function Convert-ElectronicsDataFile { ...@@ -107,7 +107,9 @@ function Convert-ElectronicsDataFile {
$OutputFilePath $OutputFilePath
) )
begin { begin {}
process {
Import-RequiredModules Import-RequiredModules
#region Select input file #region Select input file
...@@ -122,9 +124,15 @@ function Convert-ElectronicsDataFile { ...@@ -122,9 +124,15 @@ function Convert-ElectronicsDataFile {
$null = $FileBrowser.ShowDialog() $null = $FileBrowser.ShowDialog()
$SourceFile = Get-Item -Path $FileBrowser.FileName $SourceFile = Get-Item -Path $FileBrowser.FileName
Write-Verbose "Source file is '$($SourceFile.FullName)'`n$SourceFile" Write-Verbose "Source file is '$($SourceFile.FullName)'"
}
$FileExtension = $SourceFile.Extension
if ($FileExtension -notmatch '.txt|.xlsx|.csv') {
Write-Warning "File format is not supported: '$FileExtension'"
return
} }
#endregion #endregion
Write-Output "What"
#region Select output file #region Select output file
if (-not ($OutputFilePath)) { if (-not ($OutputFilePath)) {
...@@ -145,31 +153,25 @@ function Convert-ElectronicsDataFile { ...@@ -145,31 +153,25 @@ function Convert-ElectronicsDataFile {
$SaveStatus = $SaveFileDialog.ShowDialog() $SaveStatus = $SaveFileDialog.ShowDialog()
if ($SaveStatus -eq 'Cancel') { if ($SaveStatus -eq 'Cancel') {
Write-Verbose 'Save file dialog got cancelled' Write-Warning 'Save file dialog got cancelled'
break return
} }
$OutputFile = New-Item -Path $SaveFileDialog.FileName -Force $OutputFilePath = $SaveFileDialog.FileName
#endregion #endregion
$Selector = Get-SelectorFromDialog $Selector = Get-SelectorFromDialog
$FileExtension = $SourceFile.Extension
if ($FileExtension -notmatch '.txt|.xlsx') {
Write-Warning "File format is not supported: '$FileExtension'"
break
}
Write-Output "Importing content from '$($SourceFile.FullName)'" Write-Output "Importing content from '$($SourceFile.FullName)'"
switch ($FileExtension) { switch ($FileExtension) {
'.xlsx' { $Data = Import-Excel -Path $SourceFile.FullName -NoHeader } '.csv' { $Data = Import-CSV -Path $SourceFile.FullName }
'.txt' { $Data = Get-Content -Path $SourceFile.FullName } '.txt' { $Data = Get-Content -Path $SourceFile.FullName }
'.xlsx' { $Data = Import-Excel -Path $SourceFile.FullName -NoHeader }# -AsText *}
} }
}
process {
$i = 0 $i = 0
$Result = $Data | ForEach-Object { $Result = $Data | ForEach-Object {
if ($i % $Selector -eq 0) { if ($i % $Selector -eq 0) {
...@@ -177,20 +179,23 @@ function Convert-ElectronicsDataFile { ...@@ -177,20 +179,23 @@ function Convert-ElectronicsDataFile {
} }
$i++ $i++
} }
}
end {
switch ($FileExtension) { switch ($FileExtension) {
'.xlsx' { '.csv' {
$Result | Export-Excel -Path $OutputFile -NoHeader $Result | Export-CSV -Path $OutputFilePath -NoTypeInformation
} }
'.txt' { '.txt' {
$Result | Set-Content -Path $OutputFile $null = New-Item -Path $OutputFilePath -Force
$Result | Set-Content -Path $OutputFilePath
}
'.xlsx' {
$Result | Export-Excel -Path $OutputFilePath -NoHeader -ClearSheet
} }
} }
Write-Verbose "Created file '$OutputFile'" Write-Verbose "Created file '$OutputFilePath'"
Invoke-Item -Path $OutputFile.DirectoryName Invoke-Item -Path (Get-Item -Path $OutputFilePath).DirectoryName
} }
end {}
} }
Export-ModuleMember -Function Convert-ElectronicsDataFile Export-ModuleMember -Function Convert-ElectronicsDataFile
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment