PowerShell で Excel 2007 のシートを操作する


PowerShell ??????????????????????? Excel ???????????????????????????????? Excel ?????????????????????????????????????????

2007 Office system ???????????? Office Open XML ??????????????????????????????? API ??????????System.IO.Packaging ????????.NET Framework 3.0 ???????????????Excel 2007 ?? (xlsx) ?????System.IO.Packaging ?????? Excel ???????????????????????????????????????????Office OpenXML ????????????

?????CodePlex ?????????????????????????????????????Excel 2007 ?????????????????????????? System.IO.Packaging ???? ????

ExcelPackage: Office Open XML Format file creation
http://www.codeplex.com/ExcelPackage

???? (?????)?????????????????????????????ExcelPackageBinary.zip ?????? ExcelPackage.dll ?????????????? Excel ????????TestSheet.xlsx ??? ExcelPackage.dll ?????????????????

? ?
?? ??
?? ??
?? ??

System.IO.Packaging ??????? .NET Framework 3.0 ???????????????????? PowerShell ???????

[Reflection.Assembly]::LoadFrom("$pwd\excelpackage.dll")
$ep = New-Object OfficeOpenXml.ExcelPackage (dir TestSheet.xlsx)
foreach ($i in 1..4) {
   foreach ($j in 1..2) {
      $ep.workbook.worksheets[1].Cell($i,$j).value
   }
}

????????????????????????

?
?
??
??
??
??
??
??

??????(???????????????????????????????????)

???????????? Excel 2007 ???????????????????????????????????????????

Comments (3)

  1. Shigeya Tanabe says:

    そうですね、サーバーに Office をインストールすることは考えられない、というお話をよく聞きます。Office のアプリケーションなしでデータを読み書きできる Open XML は、意外なところで有効かもしれません。ぜひ試してみてください。

    一方で、MMCベースの管理ツールは、リモートコンピュータに接続できるものが増えてきましたので、クライアトマシンに管理ツールだけインストールしてリモート管理、というスタイルが増えてくるかもしれませんね。特にユーザーやグループに対して、こまかく管理権限を委任してる場合は、そのスタイルが向いていると思います。となると、管理ツールと Office が同じマシンに入っているのも違和感無いです。

    どちらも一長一短だと思いますが、自由度が高まる分、組織ごとにしっかり方針を決めないといけませんね。

  2. Anonymous says:

    便利な機能ですね。今までは、エクセルをインストールしなければできなかったことができるようになったのですね。セキュリティは別としてサーバ上で、エクセルデータを作りたい何度思ったことか。今度そのような場面に遭遇したらさっそく試してみます。

  3. 奥主 洋 says:

    SharePoint の Excelサービスもありますしね。用途に応じて選択肢が豊富になりましたね。昔はマルチスレッド処理に組み込むとデスクトップ(1ユーザー)で想定しているアプリケーションなので...とお客様によく悲しい報告をせざるを得ませんでしたが。特にお客様が何かを作ってしまった後だったりするケースとか。

Skip to main content