【发布时间】:2022-11-18 04:50:35
【问题描述】:
| Street | City | Hour of Registration |
|---|---|---|
| hill st | bolton | 11/16/2022 10:00 |
| flo st | bolton | 11/15/2022 10:10 |
如果 city=bolton AND Hour of Registration 小于或等于 <= 24 小时,则删除行
所以基本上,如果我对带有上述数据集的 xls 文件运行代码,则只应删除第 1 行(hill st)。基本上类似于当前时间 - 注册时间。
我下面的代码能够删除给定 1 个条件的行,但我不确定如何实现多个条件或时间
计数是自下而上的。自上而下似乎搞乱了计数并错过了一些行
$file = 'salehouses.xls'
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
# open file
$workbook = $excel.Workbooks.Open($file)
$sheet = $workbook.Worksheets.Item(1)
# get max rows
$rowMax = $sheet.UsedRange.Rows.Count
for ($row = $rowMax; $row -ge 2; $row--) {
$cell = $sheet.Cells[$row, 2].Value2
if ($cell -ieq 'bolton') {
$null = $sheet.Rows($row).EntireRow.Delete() }
$Filename = 'salehouses.xls'
$workbook.SaveAs("c:\xls\salehouses.xls")
$excel.Quit()
Bigger Data set to test against as of 11/17/2022 3:50 PM where everything <24hr should be deleted.
Street City Hour Of Registeration
hill st Bolton 11/16/2022 12:28 >24hr
flow st Bolton 11/16/2022 13:39 >24hr
jane st Bolton 11/16/2022 15:00 >24hr
jack st Bolton 11/16/2022 15:00 >24hr
Gone st Bolton 11/16/2022 18:16 <24hr
top st Bolton 11/16/2022 18:27 <24hr
sale st Bolton 11/16/2022 19:18 <24hr
jack st Bolton 11/16/2022 20:14 <24hr
Gone st Bolton 11/16/2022 20:28 <24hr
top st Bolton 11/17/2022 02:51 <24hr
sale st Bolton 11/17/2022 03:02 <24hr
jack st Bolton 11/17/2022 06:21 <24hr
Gone st Bolton 11/17/2022 08:51 <24hr
【问题讨论】:
标签: powershell