DOBON.NETプログラミング道掲示板
(現在 過去ログ5 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■35070 / inTopicNo.1)  NPOIでのエクセル編集で期待通りに書き込めません
  
□投稿者/ Miya 一般人(1回)-(2022/06/10(Fri) 11:22:23)
  • アイコン環境/言語:[Win10 VB.net2010] 
    分類:[.NET] 

    VB.net2010 NOPI.2.1.3.1でのエクセル編集についてご教示下さい。


    既存のエクセルを開いて指定のセルに値を書込みたいのですが、
    下記の内容で実行すると
    Row(0)の書式がクリアされ、"Hello1"を書き込み、
    Row(0)の書式がクリアされ、"Hello2"を書き込んでいる様でした。

    Row(0)の書式がクリアされず、"Hello1"と"Hello2"を書き込むには
    どうすれば良いでしょうか?


    ---------------------------------------------------------
    Dim File_Name As String = "C:\xxxx\Book1.xls"
    Dim rfs As FileStream = File.OpenRead(File_Name)
    Dim book As IWorkbook = New HSSFWorkbook(rfs)
    rfs.Close()

    '番号指定でシートを取得する(最初のシート)
    Dim sheet As ISheet = book.GetSheetAt(0)

    sheet.CreateRow(0).CreateCell(0).SetCellValue("Hello1")
    sheet.CreateRow(0).CreateCell(2).SetCellValue("Hello2")

    'ファイルを更新する
    Using wfs = File.Create(File_Name)
    book.Write(wfs)
    End Using
    ---------------------------------------------------------
630×304 => 250×120
イメージ
1654827743.png
/7KB
引用返信 削除キー/
■35071 / inTopicNo.2)  Re[1]: NPOIでのエクセル編集で期待通りに書き込めません
□投稿者/ Hongliang 大御所(628回)-(2022/06/10(Fri) 12:13:10)
  • アイコンコードを見ただけの感想ですが、

    > sheet.CreateRow(0).CreateCell(0).SetCellValue("Hello1")
    > sheet.CreateRow(0).CreateCell(2).SetCellValue("Hello2")

    CreateRow/CreateCellしてるから新しい行/セルが作られてるんじゃないでしょうか。
    GetRowとかそういう感じのを使用されてみては。
引用返信 削除キー/
■35073 / inTopicNo.3)  Re[2]: NPOIでのエクセル編集で期待通りに書き込めません
□投稿者/ Miya 一般人(3回)-(2022/06/10(Fri) 13:44:39)
  • アイコンHongliang様

    教えて頂き、有難う御座います。
    Getはテータ取得のみと思っていました。

    下記の様にして、書込める事確認できました。

    ---------------------------------------------------------
    '列名設定
    Dim xRow As IRow
    'セル設定
    Dim xCell As ICell

    xRow = sheet.GetRow(3)
    xCell = xRow.GetCell(1)
    xCell.SetCellValue("Hello1")
    ---------------------------------------------------------



    No35071に返信(Hongliangさんの記事)
    > コードを見ただけの感想ですが、
    >
    >>sheet.CreateRow(0).CreateCell(0).SetCellValue("Hello1")
    >>sheet.CreateRow(0).CreateCell(2).SetCellValue("Hello2")
    >
    > CreateRow/CreateCellしてるから新しい行/セルが作られてるんじゃないでしょうか。
    > GetRowとかそういう感じのを使用されてみては。
解決み!
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -