EPPlusでExcelのフォーマットを編集する

PowerShellで出力したExcelのフォーマットの直し方

以前、ImportExcelモジュールを使ってExcelデータを集約する記事を書きました。

ImportExcelによるExcelデータ集約

こんな感じの使用記録表を取り込んでExcel出力したところ、表示が崩れてしまいました。

No date starttime endtime duration
1 2020/4/1 9:00 10:00 1:00
2 2020/4/3 11:00 11:30 0:30
3 2020/4/5 15:00 17:00 2:00
4

日付や時刻が崩れてしまうようです。具体的には、こんな感じ。

  • 日付のみのデータはDoubleの数字で格納される
  • 時刻のみのデータは1900/1/0 の付いた時刻に変換される

Export-Excelでは、-PassThruオプションを使うとEPPlusのオブジェクトが返ってきます。
Export-ExcelのHelpの例13あたりに記載があります。

Export-Excelコマンドレットの使い方【ImportExcel】【Powershell】

こうすると、$Excel変数にEPPlusオブジェクトが入ります。
svはSet-Variableの略です。

下記でも動くらしいんですが、パイプで送ったものが左に返ってくるのがなんとなく気持ち悪いので慣れません😓

Tableシートにデータが収まっているので、日付と時刻を指定します。

数字を日付に戻す

日付の付いた時刻を時刻のみに戻す

Excelの書式設定で使う文字列ならなんでも行けそうです。
Excel のセルの表示形式で [ユーザー定義] に使用できる書式記号について Microsoft help

Saveをお忘れなく。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください