プライベートや仕事で気づいたことやノウハウなどを書き留めるブログです

2017/07/01

WPS Officeのメリット:COMコンポーネントがPowershellで使える

0 件のコメント
何かと便利なWPS Office
SpreadsheetもWriterも軽量で使いやすい。
さらにCOMコンポーネントも使えるので、Powershellを使った作業の自動化にも便利。
KingosoftOfficeのときから使えてたらしい。

KET.applicationでもExcel.applicationでもいいらしい。
Powershellならこんな感じ?
$excel = New-Object -ComObject KET.Application
$excel = New-Object -ComObject Excel.Application


Kingsoft office automation
http://bbs.kingsoftstore.com/forum.php?mod=viewthread&tid=2060

Kingsoft Office 2009 supports Microsoft Office (Word/Excel) API compatible OLE/COM/ActiveX application automation
http://www.binarynow.com/office-suite/kingsoft-office-2009-supports-microsoft-office-word-excel-api-compatible-ole-com-activex-application-automation/


でも、WPS Officeの欠点は不具合があったときに修正がとても遅いこと。
値段は安いので、良いとこ悪いとこ見極めれば使い方次第です。
現バージョンだと下記の現象もあったりします。
https://nokoshitamono.blogspot.jp/2017/05/wps-officespreadsheets.html

ヤフオクのOEMのOffice2010が8,000円くらいなので6,000円だと微妙。
WPSが4,000円くらいなら良かったのに。
シリアルをパソコンを変更しても使えることに良さを感じるならWPSでもいいかも。
※Office2007は今年2017年でサポート終了なのでオススメしません。


Powershellのサンプルがおおよそはそのまま使えます。
たぶん、全部のメソッド、プロパティは対応してないと思います。
セルの値を入力とか行の削除とかの基本的な命令は使えるはず。
Rows.delete()とか使えます。
でも、そこまでならClosedXMLでもできるの意味ないかも。

$excel = New-Object -ComObject Excel.Application
$excel.Visible = $true
$book = $excel.Workbooks.Add()
$sheet = $excel.Worksheets.Item(1)
$sheet.Cells.Item(1,2) = "データ入力のテスト"
$book.SaveAs("C:\tmp\Test2.xlsx")
$book.close()
$excel.quit()



詳しくはMSDNにてWorkbookオブジェクトを参照してみてください。
基本は実行時バインディングのように、excel、workbook、sheetの
オブジェクトが必要になると思います。たぶん。

morituri 様
PowerShellでExcelの読み書き・ファイル作成
http://blog.livedoor.jp/morituri/archives/54318641.html



Workbook オブジェクト (Excel)
https://msdn.microsoft.com/ja-jp/library/office/ff835568.aspx

SaveAsで保存するときにxls、csvとか選択するのはこちらで。
XlFileFormat 列挙 (Excel)
https://msdn.microsoft.com/ja-jp/library/office/ff198017.aspx
51: xlsx
50: xls
6:csv

このあたりも使えるかも。
Excel オブジェクト モデルの概要
https://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.excel(v=office.11).aspx








0 件のコメント :

コメントを投稿