如何解决Powershell从Excel列导入的日期和时间以错误的格式导入
我正在使用Import-Excel模块将Excel文档导入到Powershell脚本中。 导入效果很好,但是带有日期的列的格式确实很奇怪。 Excel工作表中的日期和时间的格式如下:yyyy-mm-dd hh:mm(2020-09-01 04:03),但是导入的数据看起来像这样:43965,1672916667。
我试图将[DateTime]添加到这样的变量中:
"Senast ansluten" = [DateTime]$ExcelLok.'Senast ansluten'
但后来我得到错误
Cannot convert value "44075.3451851852" to type "System.DateTime". Error: "String was not recognized as a valid DateTime."
如何指定格式以便正确读取?
$ImportExcel = Import-Excel -Path 'C:\Temp\Powershell scripts\Test\PingFastaIP\Fasta IP-nummer.xlsm' -WorksheetName ADM_UTB
ForEach ($ExcelLok in $ImportExcel){
[PSCustomObject]@{
"IP address" = $ExcelLok.IP
"Lokation" = $ExcelLok.Lok
"Ping status" = $ExcelLok.'Ping status'
"Senast ansluten" = [DateTime]$ExcelLok.'Senast ansluten'
} | Format-Table -Property `
@{Name='Lokation';Expression={ $ExcelLok.Lok };align='left';width=15},@{Name='IP address';Expression={ $ExcelLok.IP };align='left';width=15},@{Name='Ping status';Expression={ $ExcelLok.'Ping status' };align='left';width=20},@{Name='Senast ansluten';Expression={ $ExcelLok.'Senast ansluten' }}
}
解决方法
感谢麦克莱顿,解决方案变成了这样:
$ImportExcel = Import-Excel -Path 'C:\Temp\Powershell scripts\Test\PingFastaIP\Fasta IP-nummer.xlsm' -WorksheetName ADM_UTB
ForEach ($ExcelLok in $ImportExcel){
[PSCustomObject]@{
"IP address" = $ExcelLok.IP
"Lokation" = $ExcelLok.Lok
"Ping status" = $ExcelLok.'Ping status'
"Senast ansluten" = [DateTime]::FromOADate($ExcelLok.'Senast ansluten')
} | Format-Table -Property `
@{Name='Lokation';Expression={ $ExcelLok.Lok };align='left';width=15},@{Name='IP address';Expression={ $ExcelLok.IP };align='left';width=15},@{Name='Ping status';Expression={ $ExcelLok.'Ping status' };align='left';width=20},@{Name='Senast ansluten';Expression={ [DateTime]::FromOADate($ExcelLok.'Senast ansluten') }}
}
,
试试这个:
$ImportExcel = Import-Excel -Path 'C:\Temp\Powershell scripts\Test\PingFastaIP\Fasta IP-nummer.xlsm' -WorksheetName ADM_UTB -AsDate 'DateColumn'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。