Увидел как убого выглядит вставляемый код и поискал способ для формирования расцвеченного HTML кода для вставки в статьи блога. Поскольку я использую Powershell совсем не часто, то функционала стандартного ISE мне выше крыши. Так что первым делом попытался найти способ сделать это из этого инструмента.
Но увы PowerShellPack уже вышел в тираж.
для самого ISE. Одним из которых был
. Удобная штука с собственным установщиком. Пришлось правда использовать set-executionpolicy, но это и так пришлось бы делать.
у себя этот архивчик.
В статью Блогера код вставляется в режиме HTML. И выглядит один-в-один как в редакторе:
$path = "d:\temp\"
$files = Get-ChildItem $path
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$excel.DisplayAlerts = $false
$Summary = @()
foreach ($file in $files) {
#Открываем каждый из полученных файлов
$excel.Workbooks.Open($file.fullname) | Out-Null
[int] $Year = "20" +$File.name.substring($file.name.Length - 6,2);
[int] $Month = $file.name.substring($file.name.Length - 9,2);
Write-Host "Open file: " $file.FullName "; Year = " $Year "; Month = " $month
#Получаем перечень с именами листов длиной менее трёх символов - листы с данными по дням имеют имена в два символа
$Sheets = $excel.worksheets | where {$_.Name.length -lt 3}
$plan = 0
$fact = 0
#Для каждого из полученных листов в файле проводим разбор
foreach ($Sheet in $Sheets) {
[int] $Day = $Sheet.Name
for ($Col = 7; $Col -le 8; $Col++) {
For ($Row =14; $Row -le 16; $Row++) {
if ($sheet.cells.item($Row, $Col).Value2 -eq "Койко/мест") {
#Write-host $year $Month $Day "-" $Col ":" $Row = "YES!"
#Write-Host "Day = " $Day "; Fact Value = " $sheet.cells.item($Row, $Col + 2).Value2 "; PlanValue = " $sheet.cells.item($Row + 1, $Col + 2).Value2
#$DataDay = New-Object PsObject
#$DataDay | Add-Member -MemberType noteproperty -Name Year -Value $Year
#$DataDay | Add-Member -MemberType noteproperty -Name Month -Value $Month
#$DataDay | Add-Member -MemberType noteproperty -Name Day -Value $Day
#$DataDay | Add-Member -MemberType noteproperty -Name FactValue -Value $sheet.cells.item($Row, $Col + 2).Value2
#$DataDay | Add-Member -MemberType noteproperty -Name PlanValue -Value $sheet.cells.item($Row + 1, $Col + 2).Value2
#$Summary += $DataDay
$plan +=$sheet.cells.item($Row + 1, $Col + 2).Value2
$fact +=$sheet.cells.item($Row, $Col + 2).Value2
}
}
}
}
$DateMonth = New-Object PsObject
$DateMonth | Add-Member -MemberType noteproperty -Name Year -Value $Year
$DateMonth | Add-Member -MemberType noteproperty -Name Month -Value $Month
$DateMonth | Add-Member -MemberType noteproperty -Name FactValue -Value $Fact
$DateMOnth | Add-Member -MemberType noteproperty -Name PlanValue -Value $Plan
$Summary += $DateMonth
}
$Summary | Out-GridView
#$table = @()
# for ($i=2010; $i -le 2011; $i++) {
# For ($j = 1; $j -le 12; $j++) {
# $temp = $summary | where {$_.Month = $j} | where {$_.Year = $i}
# $Fact = 0
# $Plan = 0
# foreach ($t in $temp) {
# $fact += $t.FactValue
# $plan += $t.PlanValue
# }
#
# $DateMonth = New-Object PsObject
# $DataMonth | Add-Member -MemberType noteproperty -Name Year -Value $Year
# $DataMonth | Add-Member -MemberType noteproperty -Name Month -Value $Month
# $DataMonth | Add-Member -MemberType noteproperty -Name FactValue -Value $Fact
# $DataMOnth | Add-Member -MemberType noteproperty -Name PlanValue -Value $Plan
# $table += $dateMonth
# }
#
# }