Back to Top

プログラムの覚書

Category: VB.NET

VB.NET

VB.NET NPOIセルの属性を設定する

セルの文字位置、文字色、セルの色、セルの枠線、などの属性を設定する方法を記載します。

セル内の文字の表示位置を設定する

Dim cell As ICell = sheet1.CreateRow(1).CreateCell(1)

cell.SetCellValue("Hello World")

Dim style1 As ICellStyle = book.CreateCellStyle()
style1.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Right          '水平方向
style1.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center   '垂直方向
style1.WrapText = True
cell.CellStyle = style1

 

セルの枠線を設定する

Dim cell As ICell = sheet1.CreateRow(1).CreateCell(1)

Dim style1 As ICellStyle = book.CreateCellStyle()
style1.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin     '下線
style1.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin       '左線
style1.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin      '右線
style1.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin        '上線
cell.CellStyle = style1

 

枠に色を付ける

Dim cell As ICell = sheet1.CreateRow(1).CreateCell(1)

Dim style1 As ICellStyle = book.CreateCellStyle()
style1.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Yellow.Index
style1.FillPattern = FillPattern.SolidForeground
style1.FillBackgroundColor = NPOI.HSSF.Util.HSSFColor.Yellow.Index
cell.CellStyle = style1

 

文字属性の設定

Dim cell As ICell = sheet1.CreateRow(1).CreateCell(1)
Dim style1 As ICellStyle = book.CreateCellStyle()

Dim font1 As IFont = book.CreateFont()
font1.FontName = "MS P明朝"
font1.Color = HSSFColor.Red.Index           '文字色
font1.Boldweight = FontBoldWeight.Normal    
font1.FontHeight = 25
font1.Boldweight = True
style1.SetFont(font1)     

cell.CellStyle = style1

 

Posted in NPOI | Leave a reply

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