Back to Top

プログラムの覚書

VB.NET NPOIセルの選択および値を設定・取得する

セルのオブジェクトを取得する方法と、セルに値を設定または、取得する方法を記載します。

セルを初期化するときのオブジェクトを取得(選択)する

'ブックを作成(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

・日付は、数値と判断されるので、表示フォーマットで区別するが、フォーマットが設定されていないと数値とみなされる。またフォーマットによっては正常に判断されない。

 

Posted in NPOI | Leave a reply

VB.NET NPOIシートを取得・追加・削除・コピーする

シートの追加・シートの削除・シートのコピー、シート名・シート番号からのシートの取得の方法を記載します。

シートを追加する(シートの作成)

Dim book As IWorkbook = New XSSFWorkbook()

'シートを作成して追加する
Dim sheet1 As ISheet = book.CreateSheet("Sheet1")

Dim safeName As String = WorkbookUtil.CreateSafeSheetName("['abc', *? z]")
Dim sheet2 As ISheet = book.CreateSheet(safeName)

・sheet2の作成の前に WorkbookUtil.CreateSafeSheetName を使用していますが、名前の補正をしてくれます。

 

シートを取得する

シートを削除するには、シート名による削除とシート番号による削除がります。

'名前でシートを取得する
Dim sheet1 As ISheet = book.GetSheet("Sheet1")

'シート番号を取得する
Dim sheetNo As Integer = book.GetSheetIndex("Sheet1")

'番号指定でシートを取得する(番号は0~)
Dim sheet2 As ISheet = book.GetSheetAt(sheetNo)

 

シートを削除する

シートを取得するには、シート名による取得とシート番号による取得がります。

'
book.RemoveName("Sheet1")

'または

'シート番号を取得する
Dim sheetNo As Integer = book.GetSheetIndex("Sheet1")

'番号指定でシートを削除する
book.RemoveSheetAt(sheetNo)

 

シートをコピーする

Dim sheet1 As ISheet = book.GetSheet("Sheet1")

'Sheet1をSheet2としてコピーする
Dim sheet2 As ISheet = sheet1.CopySheet("sheet2")

 

シート番号からシート名、シート名からシート番号を取得する

'シート名からシート番号を取得する
Dim sheetNo As Integer = book.GetSheetIndex("Sheet1")

'シート番号からシート名を取得する
Dim safeName As String = book.GetSheetName(sheetNo)

 

 

Posted in NPOI | Leave a reply