サーバーサイドでEXCELを読み込む(ClosedXML)
前々回「サーバーサイドでEXCELを読み込む(NPOI、EPPlus)」と、前回「サーバーサイドでEXCELを読み込む(NPOI、EPPlus、Koogra)」の続き。
EPPlusが開発も活発で良さげだったんだけど、ライセンスLGPLかー。
ググってたら、ClosedXMLというものを発見。
MITライセンスです。
名称 | OpenXML | バージョン | リリース日 | ライセンス |
---|---|---|---|---|
NPOI | × | 1.2.5 | 2012/5/4 | Apache License 2.0 |
EPPlus | ○ | 3.0.0.2 | 2012/1/31 | LGPL |
Koogra | ○ | 3.1.5 | 2010/3/24 | MIT License |
ClosedXML | ○ | 0.66.1 | 2012/7/28 | MIT License |
バージョン1にも満たないこれからのプロジェクトみたいだけど、筋は良さそう。
OpenXML を簡単にする ClosedXML
ClosedXML.dllとDocumentFormat.OpenXml.dllを参照設定してあげてください。
Using wb = New XLWorkbook(filePath) Dim ws = wb.Worksheet(1) For rowNo = 1 To ws.RangeUsed.RangeAddress.LastAddress.RowNumber For colNo = 1 To ws.RangeUsed.RangeAddress.LastAddress.ColumnNumber Dim cell = ws.Cell(rowNo, colNo) If Not IsNull(cell.Style.NumberFormat.Format) Then 'ユーザー書式が設定されていた場合は、書式変換を行う Console.WriteLine(String.Format("{0:" & cell.Style.NumberFormat.Format & "}", cell.Value)) Else Console.WriteLine(cell.Value.ToString) End If Next Next End Using
VBAチックでいい感じ。
Documentationをよく読みましょう。
Where to use the using keywordを見るまで、using使っておらず危なかった。。