スプレッドコマンダーのPowerShellスクリプトからのリッチな出力

36096 ワード

免責事項:私はスプレッドコマンダーの著者です
SpreadCommanderは、データ分析のためのツールを備えたオフィスプログラムです.これは、SpreadCommanderの使用方法を説明するSerieの最初の記事です.
SpreadCommanderのコンソールの目標は、PowerShellスクリプトからオフィス文書を構築するのを許容することです.出力は、太字、斜体、下線のテキスト、バック、フォアカラー、スタイル、画像、テーブル、およびその他のさまざまなテキストの書式設定を許可します.スクリプトの出力を使用してOfficeドキュメントを生成できます.
SpreadCommanderでコンソール-いくつかの部分-本(一般的なコンソールから出力)、スプレッドシート(出力テーブル)、データ(出力テーブル)、ヒープ(プロジェクト内の別のファイルを表示).
豊富な出力は、新しいpowershell cmdletsで実装されます.書き込みホストのような標準的なCmdletに加えて、SpreadCommanderは出力をカスタマイズできる新しいCmdletsを提供します.

テキストを書く


テキストを書き込みます.文字プロパティや段落スタイルなどの追加パラメータを指定できます.
Add-BookParagraphStyle 'Header1' -FontName:'Segoe UI' -FontSize:24 -Bold `
    -Alignment:Center -OutlineLevel:1 -SpacingBefore:120 `
    -SpacingAfter:120 -Replace;
Add-BookParagraphStyle 'Text' -FontName:'Times New Roman' -FontSize:12 -Alignment:Justify -SpacingBefore:20 -SpacingAfter:20 -Replace;

Write-Text -ParagraphStyle:'Header1' 'Introduction to Spread Commander';
Write-Text -ParagraphStyle:'Text' 'Hello, Spread Commander!';

HTMLを書く


HTML形式の文字列をコンソールに出力します.これは、HTMLタグの大きなサブセットをサポートしていますが、それはWebブラウザではなく、非常に複雑なHTMLを出力することはできません.
Write-Html -ParagraphStyle:'Text' @'
<p align=justify><b>SpreadCommander</b> allows to output 
<i>HTML-formatted text</i>.</p>
'@;

マークダウン


マークダウン形式のテキストをコンソールに出力します.
Write-Markdown -ParagraphStyle:'Text' @'
*HTML-formatted text* can be encoded in **Markdown** style.
'@;

書き書きする


LaTeX形式のテキストをイメージに変換し、コンソールに出力します.
Write-Latex @(
    'B''=-\nabla \times E', 
    'E''=\nabla \times B - 4\pi j',
    'e^{ix} = \cos{x} + i \sin{x}');

構文を書き込む


強調表示された構文でテキストを出力します.
Write-SyntaxText -Syntax:'PowerShell' "Write-Host 'Hello, Wolrd!'"

エラーメッセージを書き込む


エラーとしてフォーマットされたテキストを出力します.を使用して、非終端エラーを出力できます.SpreadCommander ErrorActionPreferencesを停止し、CMDRELETにスローされたエラーを終了するように設定します.したがって、Cmdlet Write ErrorMessageはエラー/警告メッセージを出力することを推奨します.
Write-ErrorMessage 'Error happened.';

画像を書き込む


イメージをコンソールに出力します.
Write-Image '~\Images\flag-Olympic-Games.jpg' -ScaleX:0.4 -ScaleY:0.4;

@ pathはプロジェクトのルートパスです.

コンテンツを書き込む


既存のファイルの内容を本に出力します.MS Word、RTF、TXT、HTML、マークダウン(. md、. markdown、. mdown)ファイル.

データを書き込む


リストの内容やデータを出力する.内部のリストは、スプレッドシートにエクスポートされ、フォーマットされ、その後本にコピーされます.スプレッドシートへの出力も可能です将来の記事でdemostratedされます.
$olympic_medals = @(
    [PSCustomObject]@{'Country' = 'USA';         'Gold' = 39; 'Silver' = 41; 'Bronze' = 33; 'Total' = 113};
    [PSCustomObject]@{'Country' = 'China';       'Gold' = 38; 'Silver' = 32; 'Bronze' = 18; 'Total' = 88};
    [PSCustomObject]@{'Country' = 'Japan';       'Gold' = 27; 'Silver' = 14; 'Bronze' = 17; 'Total' = 58};
    [PSCustomObject]@{'Country' = 'Britain';     'Gold' = 22; 'Silver' = 21; 'Bronze' = 22; 'Total' = 65};
    [PSCustomObject]@{'Country' = 'ROC';         'Gold' = 20; 'Silver' = 28; 'Bronze' = 23; 'Total' = 71};
    [PSCustomObject]@{'Country' = 'Australia';   'Gold' = 17; 'Silver' = 7;  'Bronze' = 22; 'Total' = 46};
    [PSCustomObject]@{'Country' = 'Netherlands'; 'Gold' = 10; 'Silver' = 12; 'Bronze' = 14; 'Total' = 36};
    [PSCustomObject]@{'Country' = 'France';      'Gold' = 10; 'Silver' = 12; 'Bronze' = 11; 'Total' = 33};
    [PSCustomObject]@{'Country' = 'Germany';     'Gold' = 10; 'Silver' = 11; 'Bronze' = 16; 'Total' = 37};
    [PSCustomObject]@{'Country' = 'Italy';       'Gold' = 10; 'Silver' = 10; 'Bronze' = 20; 'Total' = 40}
);

$olympic_medals |
    Write-DataTable -TableStyle:Medium20 -Formatting:"format column 'Gold' with ColorScale='Blue,Red', ForeColor='White'";

スプレッドテーブルを書く


既存のスプレッドシートテーブルを出力します.PowerShellからスプレッドシートを作成するには、将来の記事の一つです.

書き込みチャート


グラフを生成し、出力します.スプレッドコマンダーは、複数のグラフの種類をサポートしています-バー、ライン、スプライン、パイ、ファンネル、エリア、レンジエリア、ガント、ポーラー、レーダー、および他の多く.
$olympic_medals |
    New-Chart Bar 'Country' @('Gold', 'Silver', 'Bronze') |
    Add-ChartTitle 'Olympic Medals' -Font:'Tahoma,18,Italic' |
    Set-ChartLegend -ShadowColor:Gray -AlignmentHorizontal:Center `
        -AlignmentVertical:BottomOutside -Direction:LeftToRight |
    Write-Chart -Width:2000 -Height:1600;

地図を書く


Geoマップを生成して出力します.
$tokyo      = [PSCustomObject] @{ Latitude = 35.6895;  Longitude = 139.6917;  Name = 'Tokyo' };
$beijing    = [PSCustomObject] @{ Latitude = 39.904;   Longitude = 116.4075;  Name = 'Beijing' };
$paris      = [PSCustomObject] @{ Latitude = 48.8566;  Longitude = 2.3522;    Name = 'Paris' };
$milan      = [PSCustomObject] @{ Latitude = 45.4669;  Longitude = 9.19;      Name = 'Milan' };
$losAngeles = [PSCustomObject] @{ Latitude = 34.05;    Longitude = -118.25;   Name = 'Los-Angeles' };
$brisbane   = [PSCustomObject] @{ Latitude = -27.4677; Longitude = 153.028;   Name = 'Brisbane' };

New-Map -BackColor:White | 
    Add-MapLayerImage Bing Road | 
    Add-MapLayerVectorItems |

    Add-MapItem Pushpin @($tokyo.Latitude,      $tokyo.Longitude)      $tokyo.Name |
    Add-MapItem Pushpin @($beijing.Latitude,    $beijing.Longitude)    $beijing.Name |
    Add-MapItem Pushpin @($paris.Latitude,      $paris.Longitude)      $paris.Name |
    Add-MapItem Pushpin @($milan.Latitude,      $milan.Longitude)      $milan.Name |
    Add-MapItem Pushpin @($losAngeles.Latitude, $losAngeles.Longitude) $losAngeles.Name |
    Add-MapItem Pushpin @($brisbane.Latitude,   $brisbane.Longitude)   $brisbane.Name |

    Add-MapItem Line @($tokyo.Latitude,      $tokyo.Longitude)      @($beijing.Latitude,    $beijing.Longitude)    -StrokeColor:Gold -StrokeWidth:5 -Geodesic | 
    Add-MapItem Line @($beijing.Latitude,    $beijing.Longitude)    @($paris.Latitude,      $paris.Longitude)      -StrokeColor:Gold -StrokeWidth:5 -Geodesic | 
    Add-MapItem Line @($paris.Latitude,      $paris.Longitude)      @($milan.Latitude,      $milan.Longitude)      -StrokeColor:Gold -StrokeWidth:5 -Geodesic | 
    Add-MapItem Line @($milan.Latitude,      $milan.Longitude)      @($losAngeles.Latitude, $losAngeles.Longitude) -StrokeColor:Gold -StrokeWidth:5 -Geodesic | 
    Add-MapItem Line @($losAngeles.Latitude, $losAngeles.Longitude) @($brisbane.Latitude,   $brisbane.Longitude)   -StrokeColor:Gold -StrokeWidth:5 -Geodesic | 

    Write-Map -CenterPoint:@(0.0, 0.0) -Width:2000 -Height:1600 -ZoomLevel:1;

ブックを節約


本をファイルに保存します.
Save-Book '~\Output\Book.docx';
スプレッドシート、チャート、マップへの出力、SQLを使用して将来の記事でレビューされます.