Back to Top

プログラムの覚書

Category: NPOI

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

VB.NET NPOIブックを追加・更新する

NPOIで、ブックを追加・更新する方法を記載します。

新規にブックを作成する

'Excelのブックを作成(xlsx形式)
Dim book As IWorkbook = New XSSFWorkbook()

'シートを作成
Dim sheet1 As ISheet = book.CreateSheet("MySheet")

sheet1.CreateRow(0).CreateCell(0).SetCellValue("Hello World.")

Dim filePath As String = "c:\work\Sample01.xlsx"
Using wfs = File.Create(filePath)
    book.Write(wfs)
End Using

 

既存のファイルをブックに読み込む

Dim FilePath As String = "c:\work\Sample01.xlsx"

'Excelのブックを開く
Dim book As IWorkbook = New XSSFWorkbook(FilePath)

'シートを作成
Dim sheet As ISheet = book.CreateSheet("MySheet")

sheet.CreateRow(0).CreateCell(0).SetCellValue("Hello World.")

・上記の読み込みの場合、修正は出来るが同一ファイルに更新が出来ない。

別ファイルをオープンし書き込むか、表示・印刷の読み込み専用で使うかです。

 

既存のファイルのブックを修正する

Dim FilePath As String = "c:\work\Sample01.xlsx"

'Excelのブックを開く
Dim rfs As FileStream = File.OpenRead(FilePath)
Dim book As IWorkbook = New XSSFWorkbook(rfs)
rfs.Close()

'シートを作成
Dim sheet As ISheet = book.CreateSheet("MySheet")

sheet.CreateRow(0).CreateCell(0).SetCellValue("Hello World.")

'ファイルを更新する
Using wfs = File.Create(FilePath)
    book.Write(wfs)
End Using

ファイルを読み込んだらファイルをクローズする。

書き込みの際は、書き込みでファイルをオープンし書き込む。

※リードライトでオープンしていてもWrite()で、エラーになるのでオープンしなおす。

 

Posted in NPOI | Leave a reply