我有一个excel文件(csv),用来计算产品许可证的日期。用html创建表格。需要添加列来计算许可证的日期。但是我不能这样做。我的ecxcell文件是这样的; x1c 0d1x。需要'product','bitis'和'license days(在foreach循环中计算)。但是没有这样做。我需要一个包含product,bitis和$license的表。如何在表中添加$license?
$cInCsv = Import-Csv -Path $sInFile -Delimiter ";" -Encoding UTF7
$StartDate = Get-Date -UFormat "%d.%m.%Y"
$sDateFormat = "%d.%m.%Y"
$sInFile = "C:\Users\akilic\Desktop\tarihlerr.csv"
$header = @"
<style>
table {border-width: 1px; border-style: solid; border-color: black; border-collapse: collapse;}
th {border-width: 1px; padding: 3px; border-style: solid; border-color: black; background-color: #6495ED;}
td {border-width: 1px; padding: 3px; border-style: solid; border-color: black;}
</style>
"@
#Import-Csv -Path $sInFile -Delimiter ";" -Encoding UTF7 | Select product,bitis,gün | ConvertTo-Html -Head $header | Out-File "C:/Users/akilic/Desktop/health.html"
Foreach ($ThisUser in $cInCsv)
{
$EndDate = Get-Date ($ThisUser.'bitis')
$day = NEW-TIMESPAN –Start $StartDate –End $EndDate
$licence = $day.Days
if( $licence -lt 90 -and $licence -gt 0){
$ThisUser | Select-Object product,bitis, @{Name='gun'; Expression={$licence}} | Export-Csv "C:\Users\akilic\Desktop\test.csv" -Append -Force
}
if($licence -lt 0){
$pos = [Math]::Abs($licence)
Write-Host $ThisUser.product " lisansı $pos gün geçmiştir"
$ThisUser | Select-Object product,bitis,@{Name='gun'; Expression={$pos}} | Export-Csv "C:\Users\akilic\Desktop\test.csv" -Append -Force
}
}
1条答案
按热度按时间yuvru6vn1#
您需要使用日期时间对象,而不是格式化字串。
按如下方式设置
$StartDate
:然后,在循环中从'bitis'列计算
$EndDate
,如下所示:现在您可以使用DateTime对象$StartDate和$EndDate建立TimeSpan。
顺便说一句,我会收集一个变量中的数据,然后将其全部保存到CSV中,这样你就不会在文件中追加这么多的磁盘写入。
和/或根据
$result
中的数据创建HTML表哦,是的,您需要交换这些行以从CSV文件中读取