У меня есть файл XML, который содержит значение для каждого часа данного дня для данного месяца.
Например, дата / время начала будут 15-го числа в 12:00 утра данного месяца, а дата / время окончания будут 15-го числа в 12:00 утра следующего месяца.
Пример файла XML:
<Generated>
<Entry>
<ID>76492055</ID>
<Date>2018-09-15</Date>
<Time>00:00:00</Time>
<Income>746557.0993</Income>
</Entry>
<Entry>
<ID>76492055</ID>
<Date>2018-09-15</Date>
<Time>01:00:00</Time>
<Income>815445.5908</Income>
</Entry>
<Entry>
<ID>76492055</ID>
<Date>2018-09-15</Date>
<Time>02:00:00</Time>
<Income>1190228.1310</Income>
</Entry>
<Entry>
<ID>76492055</ID>
<Date>2018-09-15</Date>
<Time>03:00:00</Time>
<Income>932243.0268</Income>
</Entry>
<Entry>
<ID>76492055</ID>
<Date>2018-09-15</Date>
<Time>04:00:00</Time>
<Income>709702.1181</Income>
</Entry>
...
</Generated>
Я вполне могу точно отобразить данные с помощью следующего кода в PowerShell:
$xml = [System.Xml.XmlDocument](Get-Content "TheXMLFile.xml")
[datetime]$EndDate = (Get-Date).AddMonths(0).ToString("yyyy-MM-15")
[datetime]$StartDate = (Get-Date).AddMonths(-1).ToString("yyyy-MM-15")
$IncomeDates = 0..(($EndDate - $StartDate).days-1) | % {
$StartDate.AddDays($_).ToShortDateString() }
foreach ($IncomeDate in $IncomeDates) {
$xml.Generated.Entry | Where {$_.Date -eq $IncomeDate} | Select ID,Date,Time,Income
}
Однако мне нужно, чтобы PowerShell извлекал данные XML для данного дня (в часе) этого месяца и вставлял их в каждую последовательную ячейку в этой строке (того дня) на целевом листе Excel.
Пример целевой таблицы: