QA@IT

エクセル形式(xlsx)でのファイル出力について

5048 PV

VisualStudio2010で開発を行っています。
開発環境では、Officeがインストールされています。

上記の環境で、エクセルファイルを出力するアプリを作成した場合で
officeが入っていないPCで動かした場合は、問題なくエクセル形式で
ファイルを出力させることはできるのでしょうか?
やはり、エクセルをインストールしないとダメでしょうか?

作成したアプリには、office.interopを参照していてかつ
テンプレートとしてエクセルをリソースとして持っています。
officeがはいっていないPCでは、開くことはできないですが、
エクセル形式のファイルを作成することはできますでしょうか?

ご教授お願いいたします。

回答

「office.interop」を利用する場合、対象サーバーにOfficeのインストールが必須になります。
しかも同時アクセスがサポートされていないので、不特定多数の利用に向いていないと思います。

NPOIの使用をおすすめします。

NPOIの公式Webサイト

編集 履歴 (0)

office.interop はMS Officeの各オブジェクトを操作する為の

間接的なものにすぎません。実態となるdllがなければ動作することは出来ないです。

 

テンプレートとしてエクセルをリソースとして持っています。

エクセル形式の文書ファイルの事だと思いますが?違いますでしょうか?

編集 履歴 (0)

ADO.NET と ACE OleDb プロバイダを利用して Excel のブックを新規作成することができます。Office は不要です。

ACE については以下のページを見てください。(以下には Access 2007 と書いてありますが ACE は Excel にも使えます)

Access 2007 の DB を利用するアプリ開発
http://surferonwww.info/BlogEngine/post/2011/11/08/Development-of-application-which-uses-accdb-file-of-Access-2007.aspx

Excel ファイルを作る方法は以下のページを見てください。

ACE OleDb で Excel のブック作成
http://surferonwww.info/BlogEngine/post/2012/01/26/Creating-Excel-workbook-by-using-ACE-OleDb-provider.aspx

ACE は使いたくない、もしくは書式設定もしたいということであれば、Open XML を使用することを検討されてはいかがですか。

Open XML SDK 2.0 を使用して Excel 2010 ブックを生成する
https://msdn.microsoft.com/ja-jp/library/office/hh180830(v=office.14).aspx

Excel 2007 以降でよければ ClosedXML というものもあります。

ClosedXML - The easy way to OpenXML
http://closedxml.codeplex.com/

#質問者さんが立てた別スレッド ↓ と関係があるならその旨書いてください。

http://qa.atmarkit.co.jp/q/9507

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。