Search

2017/04/08

Excel無しのWindowsでxlsxファイルを読んだり変更したり:PowerShellとClosedXML

PowerShellができれば何でもできるっぽい。DLLさえよみこめば。
ClosedXMLみたいなExcelの操作ができるDLLを読めばxlsxが読める。
やってみた。簡単だった。
リンク解除につまずいただけ。
やっぱりシェルが使えるのは便利すぎる。


------
今のところ、0.86.0にClosedXML.dllありました。
ClosedXML.0.86.0.zip
https://github.com/ClosedXML/ClosedXML/releases


ClosedXMLのドキュメントとDocumentFormat.OpenXml.dll
https://github.com/ClosedXML/ClosedXML/wiki
DocumentFormat.OpenXml.dllは、本家Open XML SDKのがいいかも。


かんたんな手順!
手順1)同じフォルダにdllを置く ※c:\tmpを想定
ClosedXML.dll
DocumentFormat.OpenXml.dll
test.xlsx

手順2)dllのブロックを解除する


手順3)下記コードをPowerShellで実行

[Reflection.Assembly]::LoadFile("C:\tmp\DocumentFormat.OpenXml.dll") [Reflection.Assembly]::LoadFile("C:\tmp\ClosedXML.dll") 
$wb = New-Object ClosedXML.Excel.XLWorkbook("c:\tmp\test.xlsx"); 
$ws =$wb.Worksheet(1); 
for($i=1; $i-lt 20; $i++){ $ws.cell(11,$i).Value = 100+$i; }
for($i=1; $i-lt 20; $i++){ $ws.cell($i,11).Value = 1000+$i; } 
$wb.SaveAs("c:\tmp\test.xlsx");


あとはいろいろと改変しよう!
新規ブック作りたいときは、3-4行を下記に差し替え。

$wb = New-Object ClosedXML.Excel.XLWorkbook; 
$ws =$wb.Worksheets.Add("SheetOne"); 





参照サイト

【PowershellでClosedXMLについて】
miyamiya様
PowerShell で ClosedXML を使って Excel ファイルを作成する
http://qiita.com/miyamiya/items/fd93d633afa0314f231a

愛しく切ない1bed miyamiya様
PowerShell で ClosedXML を使って Excel ファイルを作成する
http://1bed.saloon.jp/?p=2206


【リンク解除について】
himorogiの日記
PowerShell から .NetFramework 版 SQLite を使う
http://d.hatena.ne.jp/himorogi/20141105/1415217173


【DLLのロードについて】
guitarrapc_tech様
PowerShell の Add-Type と [Reflection.Assembly]
http://tech.guitarrapc.com/entry/2014/03/17/042253

[]

0 件のコメント:

コメントを投稿