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()で、エラーになるのでオープンしなおす。