【NetOffice】【VSTO】方法:VSTOのExcelアプリケーションオブジェクトをNetOfficeのExcelアプリケーションに変換する。
- 2012.12.04 Tuesday
- 20:38
JUGEMテーマ:コンピュータ
-------------------------------------------
Summary
NetOffice.ExcelApi.Appcalitionコンストラクタの第二引数にExcelアプリケーションのComオブジェクトを指定すると、VSTOなどから起動したExcelアプリケーションをNetOffice経由で操作することができるようになります。
-------------------------------------------
Source and Project
NetOfficeには、ExcelアプリケーションのSystem.__ComObejectを受け取り、NetOffice.ExcelApi.Appcalitionに包含する仕組みが用意されています。この仕組みを使うとVSTO内で扱っているMicrosoft.Office.Interop.Excel.ApplicationをNetOfficeのNetOffice.ExcelApi.Appcalitionへ変換することができます。
using System;
using System.Linq;
using NetOfficeExcel = NetOffice.ExcelApi;
using Interop = Microsoft.Office.Interop.Excel;
-------------------------------------------
Summary
NetOffice.ExcelApi.Appcalitionコンストラクタの第二引数にExcelアプリケーションのComオブジェクトを指定すると、VSTOなどから起動したExcelアプリケーションをNetOffice経由で操作することができるようになります。
-------------------------------------------
Source and Project
NetOfficeには、ExcelアプリケーションのSystem.__ComObejectを受け取り、NetOffice.ExcelApi.Appcalitionに包含する仕組みが用意されています。この仕組みを使うとVSTO内で扱っているMicrosoft.Office.Interop.Excel.ApplicationをNetOfficeのNetOffice.ExcelApi.Appcalitionへ変換することができます。
using System;
using System.Linq;
using NetOfficeExcel = NetOffice.ExcelApi;
using Interop = Microsoft.Office.Interop.Excel;
namespace Art55.NetOfficeDemo20121204_002
{
class Program
{
static void Main()
{
Interop.Application interopApplication = new Interop.Application { Visible = true };
interopApplication.Workbooks.Add();
{
class Program
{
static void Main()
{
Interop.Application interopApplication = new Interop.Application { Visible = true };
interopApplication.Workbooks.Add();
var application = new NetOfficeExcel.Application(null, interopApplication);
application
.Workbooks
.First()
.Worksheets
.OfType<NetOfficeExcel.Worksheet>()
.ToList()
.ForEach(sheet => Console.WriteLine(sheet.Name));
application
.Workbooks
.First()
.Worksheets
.OfType<NetOfficeExcel.Worksheet>()
.ToList()
.ForEach(sheet => Console.WriteLine(sheet.Name));
Console.ReadLine();
}
}
}
■ComオブジェクトをNetOffice.ExcelApi.Appcalitionクラスでラップする。
var application = new NetOfficeExcel.Application(null, interopApplication);
第一引数がComObjectになっていますが、これはNetOfficeの中で定義されている型です。NetOfficeのComObjectにラップされていないComオブジェクトは第2引数で指定しなければなりません。
今回のサンプルコードはConsoleアプリケーションで作成してますが、VSTOで作成したCOMアドインやWorksheetなどでも同様の方法で変換できます。
Source and Project
--------------------------------------
本投稿は、CodePlexで公開されているNetOfficeを利用していませんが、紹介します。
NetOffice - MS Office in .NET
http://netoffice.codeplex.com/
}
}
}
■ComオブジェクトをNetOffice.ExcelApi.Appcalitionクラスでラップする。
var application = new NetOfficeExcel.Application(null, interopApplication);
第一引数がComObjectになっていますが、これはNetOfficeの中で定義されている型です。NetOfficeのComObjectにラップされていないComオブジェクトは第2引数で指定しなければなりません。
今回のサンプルコードはConsoleアプリケーションで作成してますが、VSTOで作成したCOMアドインやWorksheetなどでも同様の方法で変換できます。
Source and Project
--------------------------------------
本投稿は、CodePlexで公開されているNetOfficeを利用していませんが、紹介します。
NetOffice - MS Office in .NET
http://netoffice.codeplex.com/
NetOffice関連の記事は下記にまとめています。
【NetOffice】【Excel】NetOfficeのまとめ
http://pro.art55.jp/?eid=1304102
--------------------------------------