質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

5回答

20197閲覧

Excelファイルを出力する方法(※Microsoft.Office.Interop.Excelを使用しない)

eureka7

総合スコア17

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

3クリップ

投稿2016/09/06 04:34

編集2016/09/06 09:16

ASP.NETでExcelファイルを作成し、作成したファイルをダウンロードする処理を作成しているのですが、IISサーバーをインストールしているサーバに"Microsoft.Office.Interop.Excel"関連のdllが存在しないためエラーとなってしまいました。

ライセンスの関係でIISサーバーをインストールしているサーバにOfficeをインストールしないことになったのですが、"Microsoft.Office.Interop.Excel"のdllを使用しないでExcelファイルを出力する方法を調べてみたのですがそれらしい物は見当たりませんでした。

ご存知の方いらっしゃいましたらご教授の程よろしくお願い致します。

(2016.09.06 18:13 追記)
KoichiSugiyamaさん、twckさんご回答ありがとうございます。

極力VisualStudioで標準でインストールされているライブラリをしようして製造をしたいと考えていますので、他に手が無い場合は参考にさせて頂きます。

色々と調べてみたのですが、VisualStudioで標準でインストールされているライブラリのみを使用してExcelファイルを出力する方法は不可能なのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

.NET で EXCEL Book を読み書きするライブラリは多数あります。
古いですが私が2年前に調べたリストを記載します。

Open XML SDK

  • Microsoft社製。
  • Excel 2003 以前の形式(.xls):非対応
  • ローレベルな部分の操作ができるので、他のライブラリで出来ない事も出来る。
  • その代わり学習コスト、開発コストが非常に高くつくので、全くお勧めはしない。

ClosedXML

  • ライセンス:MIT License
  • Excel 2003 以前の形式(.xls):非対応
  • COM の Microsoft Excel ObjectLibrary の代わりを目指して開発されたらしいので、Microsoft.Office.Interop.Excel からの移植コストは断然優れていると思われる。

EPPlus

  • ライセンス:LGPL
  • Excel 2003 以前の形式(.xls):非対応
  • 図形、画像の挿入など機能が豊富。

NPOI

  • ライセンス:Apache License 2.0
  • Excel 2003 以前の形式(.xls):対応
  • JAVA の Excel 操作ライブラリである Apache POI から派生しており、ネット上には Apache POI の記事が多数あるため、サンプルコードを見つけやすい。

Koogra

  • ライセンス:MIT License
  • Excel 2003 以前の形式(.xls):対応
  • 開発が止まってる?

Microsoft.Office.Interop.Excel を使用しているプログラムが既にあるのであれば、移植コストが少ない ClosedXML がおすすめです。

私が .NET で EXCEL Book の操作をし始めた頃は まだ Excel 2003 以前の形式(.xls) も多く使われていたため NPOI を選択しましたが、Excel 2003 のサポートが 2014年4月に切れたので、現在であれば EPPlus を選んでいたかもしれません。

投稿2016/09/06 08:25

twck

総合スコア314

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

twck

2016/09/06 13:18

(2016.09.06 18:13 追記)に対する回答 .xlsxファイルの中身は Zip圧縮した XMLファイルです。 拡張子を .xlsx から .zip に変えて 解凍すれば中身を確認できます。 なので Office Open XML の仕様を理解すれば、Visual Studio(.Net Framework)の標準機能で XMLを作って Zip圧縮すれば理論的には可能でしょう。 要は ClosedXML や NPOI と同じようなものを自分で作ればいいわけです。 おそらく数年は掛かるでしょうから Open XML SDK の数百倍お勧めしませんけど。
eureka7

2016/09/08 22:51

アドバイスありがとうございます! 今回は複雑なブックを作成する必要が無かったため、ClosedXMLは使用しませんでしたが次回製造するとき使用したいと思います。
guest

0

ベストアンサー

実際に最後まで試した事がないので恐縮ですが、一応標準の機能だけでできるようです。
ACE OleDb で Excel のブック作成

正直、ClosedXMLの方が遥かに手軽です。

投稿2016/09/08 07:16

ishi9

総合スコア1294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

eureka7

2016/09/08 22:49

ACE OleDbでExcelのブックを作成することが出来ました! アドバイスありがとうございます。
guest

0

私自身は使ったことがないのですが、ClosedXMLというライブラリでできるようです。

サーバサイドでExcelブックを生成するいくつかの方法 も参考にしてみてください。

投稿2016/09/06 05:09

KoichiSugiyama

総合スコア3041

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

eureka7

2016/09/08 22:51

アドバイスありがとうございます! 今回は複雑なブックを作成する必要が無かったため、ClosedXMLは使用しませんでしたが次回製造するとき使用したいと思います。
guest

0

こんにちはヽ(^0^)ノ

色々な推薦ライブラリを拝見しました。

こういう流れで、私も自分がよく使ってるライブラリ(Spire.xls for java)を推薦したいのです。

スペックは以下通り:

ライセンス:LGPL
Excel 2003 以前の形式(.xls):対応
開発は活躍中。無料試用可能。

どうぞ、お気軽に

投稿2020/10/20 03:18

編集2020/10/20 03:25
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/10/27 01:58

> ライセンス:LGPL .Net向けのものはMS-LRLという記載は見つかりましたが、 Java向けのものについてライセンス周りの記載を見つけられませんでした。 LGPLというのはどこから確認できますか?
guest

0

前のお二人が書かれている、ClosedXMLは、VisualStudioのNuGetで取得できるパッケージです。
ClosedXMLはMicrosoftが作ったOpenXMLを使いやすくしたものです。(内部でOpenXMLが呼ばれます)
安定性とかも支障ないと思います。

投稿2016/09/08 07:09

KIYOSHI

総合スコア268

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

eureka7

2016/09/08 22:50

アドバイスありがとうございます! 今回は複雑なブックを作成する必要が無かったため、ClosedXMLは使用しませんでしたが次回製造するとき使用したいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問