SlideShare a Scribd company logo
1 of 12
ASP.NET WebForms
Excelファイル操作ライブラリ調査
2016/3/14
佐野 尚之
アジェンダ
・Excel 2003のXML形式ファイルを利用
・Open XML SDK
・ClosedXML
・NPOI
・EPPlus
・Koogra
・Excel Data Reader
・参考情報
Excel 2003のXML形式ファイルを利用
■普通にaspxでテーブル等を用いてレイアウトを作成し、Page_Loadイベントに以下
を追加しクライアントに返す。
Response.Buffer = True
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("Content-Disposition", "attachment;filename=xxxxxx.xls")
■ひな形となるExcelスプレッド形式ファイルを作成しておき、XMLとして編集してクライアント
に返す。
(ひな形なしで新規作成も可能)
xml.Load("xxxxxx.xlm")
・
・xmlの編集を行う
・
Response.AddHeader("Content-Type", "application/vnd.ms-excel")
Response.AddHeader("Content-Disposition", "attachment;filename=xxxxxx.xls")
xml.Save(Response.OutputStream)
Response.End()
Excel2007以降ではファイルの形式が拡張子が示す形式と異なるという警告がでます。
Excel2010ではクライアントで発行元の警告が出ますが、以下の設定を変更すれば回避出来ます。
Excel2010のセキュリティセンターの[保護されたビュー]で、以下のチェックをオフにする。
・インターネットから取得したファイルに対して、保護されたビューを有効にする
・安全でない可能性のある場所のファイルに対して、保護されたビューを有効にする
ASP.NETでExcelシート(XMLスプレッドシート)を生成する
http://d.hatena.ne.jp/Kazzz/20091003/p1
オートメーション機能を利用しないExcel形式でのWeb帳票印刷
http://codezine.jp/article/detail/194
Open XML SDK
・Office 2007 以降の .xlsx ファイルが作成できる。
・オープンソース。
・ソースコードがGitHubで公開されている。
・Microsoft が提供している Open XML SDKを使う。
・Excel がインストールされていない環境でも作成できる。
・一言で言い表すなら「超使いづらい」。
ClosedXML
・Open XMLをラップしてもっと直観的なAPIに仕立て上げてくれ
たもの。
・VBAでExcelを操作する感じでコーディングできる。
・NuGetでインストール可能。
・ライセンスはMIT License。
NPOI
・Java の Apache POI を .NET に移植したもの。
・xlsx 及び 97-2003 の xls ファイルの双方に対応しています。
・読み込みも書き出しもできる便利なライブラリ。
・ライセンスはApache License 2.0。
・xlsx ファイルを作成した場合、Excelでファイルを開くと、「
'○○.xlsx'には、読み取れない内容が含まれています。このブック
の内容を回復しますか?」というファイルが破損しているエラー
が発生するという情報があり採用しないほうがよさそう。
・参照設定にNPOI.dllを追加する必要あり。
http://npoi.codeplex.com/
EPPlus
・xlsx ファイルの読み書きに対応しています。
・チャートや VBA を操作できる API あり。
・NPOI よりも機能は豊富らしい。
・処理速度については、50,000セルを1秒で読み込めるというら
しい。
・ライセンスはLGPL 。
・ExcelPackageの派生版らしい。
・参照設定にEPPlus.dllを追加する必要あり。
http://epplus.codeplex.com/
Koogra
・日本語の情報が少ない。
・ライセンスはMIT License。
・最終更新は2013/04/23。
・参照設定にNet.SourceForge.Koogra.dllとIonic.Utils.Zip.dllを
追加する必要あり
https://sourceforge.net/projects/koogra/
Excel Data Reader
・読み込み専用らしい。
・日本語の扱いで問題が出るという情報あり。
・ライセンスはMIT License。
https://exceldatareader.codeplex.com/
参考情報
Open XML SDK を使って Excel ファイルを出力
http://tnakamura.hatenablog.com/entry/2015/10/28/090601
ASP.NET MVC で Excel ファイルを出力
http://tnakamura.hatenablog.com/entry/2015/10/29/075452
OpenXML 形式で Excel ファイルを作成する方法
http://www.projectgroup.info/tips/Microsoft.NET/tips_0004.html
Building an ASP.NET Web Application with Open XML Functionality
http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2012/01/02/building-an-
asp-net-web-application-with-open-xml-functionality.aspx
OpenXMLを使用して、サーバーサイドでExcelファイルを生成(1)
http://notesdotnet4.blogspot.jp/2011/11/openxmlexcel.html
OpenXMLを使用して、サーバーサイドでExcelファイルを生成(2)
http://notesdotnet4.blogspot.jp/2011/11/openxmlexcel_01.html
OpenXMLを使用して、サーバーサイドでExcelファイルを生成(3)
http://notesdotnet4.blogspot.jp/2011/11/openxmlexcel_02.html
OpenXMLを使用して、サーバーサイドでExcelファイルを生成(4)
http://notesdotnet4.blogspot.jp/2011/11/openxmlexcel_9495.html
参考情報
サーバーサイドでEXCELを読み込む(ClosedXML)
http://iwa4.hatenablog.com/entry/2012/08/01/102806
C#でExcelファイルを作成する ClosedXmlを使用
http://whoopsidaisies.hatenablog.com/entry/2013/11/12/092843
C#でExcel 2007形式のファイルを出力する
http://blog.okazuki.jp/entry/20120429/1335690880
NPOI 2.0 と ClosedXML 0.67 の比較
http://iwa4.hatenablog.com/entry/2012/08/17/191326
ClosedXMLを用いたExcelファイルダウンロード
https://social.msdn.microsoft.com/Forums/ja-JP/3c22d7fc-4d6c-447e-b216-
e62a90a65db9/closedxmlexcel?forum=aspnetja
ClosedXMLでasp.netからストリームに出力する
https://yamabiko1145.wordpress.com/2014/04/24/closedxml%E3%81%A7asp-
net%E3%81%8B%E3%82%89%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E
3%83%A0%E3%81%AB%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B/
最近(?)、ClosedXMLのどうさがちょっとおかしいんだが。
http://others2.blog.so-net.ne.jp/2014-03-29
Open XMLでExcelを生成する
http://my-clip-devdiary.blogspot.jp/2012/06/open-xmlexcel.html
OpenXML を簡単にする ClosedXML
http://www.infoq.com/jp/news/2011/07/ClosedXML
参考情報
C# の Excel ファイル操作ライブラリー
https://creativeweb.jp/aspnet-oss/excel-tools
サーバーサイドでEXCELを読み込む(NPOI、EPPlus)
http://iwa4.hatenablog.com/entry/2012/07/23/181245
サーバーサイドでEXCELを読み込む(NPOI、EPPlus、Koogra)
http://iwa4.hatenablog.com/entry/2012/07/24/223238
Excelファイルの作成
Top / Coding / .NET / 3rdPartyライブラリ / Excelファイルの作成
http://wiki.clockahead.com/index.php?Coding%2F.NET%2F3rdParty%A5%E9%A5%A4%A
5%D6%A5%E9%A5%EA%2FExcel%A5%D5%A5%A1%A5%A4%A5%EB%A4%CE%BA%E
E%C0%AE
ASP.net WebサイトでクライアントにExcelを返す
http://wintips.blog117.fc2.com/blog-entry-70.html

More Related Content

Similar to Asp.net web forms_excel操作ライブラリ

おもにEXcelだけで出来る自動化技術
おもにEXcelだけで出来る自動化技術おもにEXcelだけで出来る自動化技術
おもにEXcelだけで出来る自動化技術
Takanobu Mizuta
 
実践 Reactive Extensions
実践 Reactive Extensions実践 Reactive Extensions
実践 Reactive Extensions
Shin Ise
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
 
Data-driven Design: 4つの技法 InfoPathを用いたスケーラブル SharePointソリューション
Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューションData-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション
Data-driven Design: 4つの技法 InfoPathを用いたスケーラブル SharePointソリューション
JamesLRishe
 
Haskellday rf
Haskellday rfHaskellday rf
Haskellday rf
rf0444
 
Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19
Hideki Hashizume
 
2011年2月9日第130回FxUG勉強会@東京第一打者空振り三振
2011年2月9日第130回FxUG勉強会@東京第一打者空振り三振2011年2月9日第130回FxUG勉強会@東京第一打者空振り三振
2011年2月9日第130回FxUG勉強会@東京第一打者空振り三振
Sadao Tokuyama
 

Similar to Asp.net web forms_excel操作ライブラリ (16)

おもにEXcelだけで出来る自動化技術
おもにEXcelだけで出来る自動化技術おもにEXcelだけで出来る自動化技術
おもにEXcelだけで出来る自動化技術
 
Xtext 紹介
Xtext 紹介Xtext 紹介
Xtext 紹介
 
実践 Reactive Extensions
実践 Reactive Extensions実践 Reactive Extensions
実践 Reactive Extensions
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
 
Docmgt_002
Docmgt_002Docmgt_002
Docmgt_002
 
Ext.direct
Ext.directExt.direct
Ext.direct
 
やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介
 
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
 
Tech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LTTech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LT
 
XPages 開発 Tips 百連発
XPages 開発 Tips 百連発XPages 開発 Tips 百連発
XPages 開発 Tips 百連発
 
Data-driven Design: 4つの技法 InfoPathを用いたスケーラブル SharePointソリューション
Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューションData-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション
Data-driven Design: 4つの技法 InfoPathを用いたスケーラブル SharePointソリューション
 
densan2014-late01
densan2014-late01densan2014-late01
densan2014-late01
 
AWS Lambda Update
AWS Lambda UpdateAWS Lambda Update
AWS Lambda Update
 
Haskellday rf
Haskellday rfHaskellday rf
Haskellday rf
 
Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19
 
2011年2月9日第130回FxUG勉強会@東京第一打者空振り三振
2011年2月9日第130回FxUG勉強会@東京第一打者空振り三振2011年2月9日第130回FxUG勉強会@東京第一打者空振り三振
2011年2月9日第130回FxUG勉強会@東京第一打者空振り三振
 

More from Naoyuki Sano

More from Naoyuki Sano (20)

Aws centos7_wordpress_3
Aws centos7_wordpress_3Aws centos7_wordpress_3
Aws centos7_wordpress_3
 
無料のグループウェア調査
無料のグループウェア調査無料のグループウェア調査
無料のグループウェア調査
 
プログラミングのEラーニング 学習サイト調査
プログラミングのEラーニング 学習サイト調査プログラミングのEラーニング 学習サイト調査
プログラミングのEラーニング 学習サイト調査
 
そろそろXamarin使ってみませんか 1
そろそろXamarin使ってみませんか 1そろそろXamarin使ってみませんか 1
そろそろXamarin使ってみませんか 1
 
Aws cent os7_wordpress_2
Aws cent os7_wordpress_2Aws cent os7_wordpress_2
Aws cent os7_wordpress_2
 
Aws cent os7_wordpress_1
Aws cent os7_wordpress_1Aws cent os7_wordpress_1
Aws cent os7_wordpress_1
 
Asp.net dynamic data調査
Asp.net dynamic data調査Asp.net dynamic data調査
Asp.net dynamic data調査
 
Web forms scaffolding調査
Web forms scaffolding調査Web forms scaffolding調査
Web forms scaffolding調査
 
ファイルサーバー移行方法の調査
ファイルサーバー移行方法の調査ファイルサーバー移行方法の調査
ファイルサーバー移行方法の調査
 
Asp.net web forms_log4net
Asp.net web forms_log4netAsp.net web forms_log4net
Asp.net web forms_log4net
 
ASP.NET WebForms調査
ASP.NET WebForms調査ASP.NET WebForms調査
ASP.NET WebForms調査
 
Vb script power_shellでメール送信
Vb script power_shellでメール送信Vb script power_shellでメール送信
Vb script power_shellでメール送信
 
自分のPcに仮想環境を作ってlinuxをインストールしてみよう
自分のPcに仮想環境を作ってlinuxをインストールしてみよう自分のPcに仮想環境を作ってlinuxをインストールしてみよう
自分のPcに仮想環境を作ってlinuxをインストールしてみよう
 
Tera Termのインストール
Tera TermのインストールTera Termのインストール
Tera Termのインストール
 
Virtual Boxのインストール
Virtual BoxのインストールVirtual Boxのインストール
Virtual Boxのインストール
 
AWS EC2 CentOS6.5+WordPress③
AWS EC2 CentOS6.5+WordPress③AWS EC2 CentOS6.5+WordPress③
AWS EC2 CentOS6.5+WordPress③
 
AWS EC2 CentOS6.5+WordPress②
AWS EC2 CentOS6.5+WordPress②AWS EC2 CentOS6.5+WordPress②
AWS EC2 CentOS6.5+WordPress②
 
AWS EC2 CentOS6.5+WordPress①
AWS EC2 CentOS6.5+WordPress①AWS EC2 CentOS6.5+WordPress①
AWS EC2 CentOS6.5+WordPress①
 
レンタルサーバー/Vps/クラウド
レンタルサーバー/Vps/クラウドレンタルサーバー/Vps/クラウド
レンタルサーバー/Vps/クラウド
 
Awsについて
AwsについてAwsについて
Awsについて
 

Recently uploaded

Recently uploaded (10)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

Asp.net web forms_excel操作ライブラリ