セルのオブジェクトを取得する方法と、セルに値を設定または、取得する方法を記載します。
セルを初期化するときのオブジェクトを取得(選択)する
'ブックを作成(xlsx形式) Dim book As IWorkbook = New XSSFWorkbook() Dim sheet1 As ISheet = book.CreateSheet("Sheet1") '行の5行目を取得する Dim row As IRow = sheet1.CreateRow(4) '5列目のセルを取得する Dim cell As ICell = row.CreateCell(4) 'または Dim cell As ICell = sheet1.CreateRow(4).CreateCell(4)
・セルの行、列ともに0から数えます。
セルのオブジェクトを取得(選択)する
'行の5行目を取得する Dim row As IRow = sheet1.GetRow(4) '5列目のセルを取得する Dim cell As ICell = row.GetCell(4) 'または Dim cell As ICell = sheet1.GetRow(4).GetCell(4)
セルに値を設定する
設定する値には、文字列、数値、論理値、日付などがあります。
Dim book As IWorkbook = New XSSFWorkbook() Dim sheet1 As ISheet = book.CreateSheet("Sheet1") 'セルを取得する Dim row As IRow = sheet1.CreateRow(4) '数値を設定する row.CreateCell(0).SetCellValue(1234.5) '文字列を設定する row.CreateCell(1).SetCellValue("Hello World") '論理値を設定する row.CreateCell(2).SetCellValue(True) '日付を設定する row.CreateCell(3).SetCellValue(Now.Date)
セルの値を取得する
'数値を取得する Dim d As Double = sheet1.GetRow(4).GetCell(0).NumericCellValue() '文字列を取得する Dim s As String = sheet1.GetRow(4).GetCell(1).StringCellValue() '論理値を取得する Dim b As Boolean = sheet1.GetRow(4).GetCell(2).BooleanCellValue() '日付を取得する Dim t As Date = sheet1.GetRow(4).GetCell(3).DateCellValue() '全てのデータ型を文字列として取得する Dim str As String = sheet1.GetRow(4).GetCell(3).ToString()
セルの値をデータ型別に取得する
Dim cel As ICell = sheet1.GetRow(0).GetCell(0) Dim val As Object Select Case cell.CellType Case CellType.Numeric If (DateUtil.IsCellDateFormatted(cell)) Then val = cell.DateCellValue Else val = cell.NumericCellValue End If Case CellType.Boolean val = cell.BooleanCellValue Case CellType.Formula val = cell.CellFormula Case Else val = cell.StringCellValue End Select
・日付は、数値と判断されるので、表示フォーマットで区別するが、フォーマットが設定されていないと数値とみなされる。またフォーマットによっては正常に判断されない。