サーバーサイドで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使っておらず危なかった。。