Skip to content

go-oleでMS Officeを操作しやすくするラッパー群とその生成ツール

License

Notifications You must be signed in to change notification settings

tanaton/go-ole-msoffice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-ole-msoffice

go-oleでMS Officeを操作しやすくするラッパー群を提供します。

内容

go-oleを用いてGo言語でMS Officeを操作しやすくするラッパー群と、ラッパー群をなるべく手間をかけずに生成するツールです。
JScriptでOfficeを操作する感覚に近いものを目指しています。
一定のルールに従ってjsonを書くことでGo言語のコードを生成します。

インストール

Excelを使いたい場合

go get github.com/tanaton/go-ole-msoffice/excel

Outlookを使いたい場合

go get github.com/tanaton/go-ole-msoffice/outlook

ラッパーの使い方

基本的な考え

  • プロパティを読み出す際は「[オブジェクト].Get[プロパティ名]()」を呼び出す。
  • プロパティを設定する際は「[オブジェクト].Set[プロパティ名]()」を呼び出す。
  • メソッドを呼ぶ際は「[オブジェクト].[メソッド名]()」を呼び出す。
  • プロパティ、メソッド名はVBAのMSDNを参照。

サンプルコード

package main

import (
	ole "github.com/go-ole/go-ole"
	"github.com/tanaton/go-ole-msoffice/excel"
)

func main() {
	// COMの初期化(go-oleで必要。必須!)
	ole.CoInitializeEx(0, ole.COINIT_APARTMENTTHREADED|ole.COINIT_DISABLE_OLE1DDE)
	defer ole.CoUninitialize()

	// エクセルオブジェクトの生成、取得
	e := excel.ThisApplication()
	if e == nil {
		return
	}
	defer e.Release()

	// プロパティの設定
	e.SetVisible(true)
	// プロパティの読み出し
	workbooks := e.GetWorkbooks()
	// メソッドの呼び出し
	workbooks.Open(`C:\test.xlsx`)
}

デモ

ラッパー生成ツールの使い方

  • (後で書く。)

方針

  • 既定プロパティ機能を利用しない。何をやっているのか分からなくなるので。

今後やりたいこと

  • MSDNライブラリをクロールしてある程度自動生成する

ライセンス

MIT

About

go-oleでMS Officeを操作しやすくするラッパー群とその生成ツール

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages