2017-05-01 10 views
0

既存のExcelファイルにデータを追加する際に問題があります。NPOI .xlsファイルに値を挿入/追加する

HSSFWorkbook hssfwb; 
FileStream file1 = new FileStream(pathDoXls, FileMode.Open, FileAccess.Read); 
hssfwb = new HSSFWorkbook(file1); 

ISheet sheet = hssfwb.GetSheet("Zawodnicy"); 
int ostatniWiersz = sheet.LastRowNum; 
textBox14.Text = (ostatniWiersz+1).ToString(); 
Console.WriteLine(ostatniWiersz); 

ICell cell = sheet.CreateRow(ostatniWiersz+1).CreateCell(0); 
cell.SetCellValue(textBox14.Text); 

ICell cell1 = sheet.CreateRow(ostatniWiersz + 1).CreateCell(1); 
cell1.SetCellValue(textBox2.Text); 

//sheet.CreateRow(ostatniWiersz + 1).CreateCell(1).SetCellValue(textBox2.Text); 
//sheet.CreateRow(ostatniWiersz + 1).CreateCell(2).SetCellValue(textBox3.Text); 

FileStream file = new FileStream(pathDoXls, FileMode.Create); 
hssfwb.Write(file); 
file.Close(); 

コードの理論的にはこの部分:ここで

はコードである

ICell cell = sheet.CreateRow(ostatniWiersz+1).CreateCell(0); 
cell.SetCellValue(textBox14.Text); 

ICell cell1 = sheet.CreateRow(ostatniWiersz + 1).CreateCell(1); 
cell1.SetCellValue(textBox2.Text); 

は私が意味する、最後の行の位置にセルを作成する必要があります。

ostatniWiersz=10 

ので、行に11とセル0はtextBox14の内容でなければなりません 行11のセル1はtextBox2 contでなければなりませんent。

しかし、私は、このコードをコンパイルするときに私は行の11セル1理論値の値を持っているが助けを

おかげ(Iはセル0と1を意味する)の両方のフィールドに挿入されるべきです。あなたが同じ行を上書きしている

答えて

1

コード以下の効果が

ICell cell = sheet.CreateRow(ostatniWiersz+1).CreateCell(0); 
cell.SetCellValue(textBox14.Text); 

コードの下に使用してみてくださいを失った理由を、thatsの。

HSSFWorkbook hssfwb; 
    FileStream file1 = new FileStream(pathDoXls, FileMode.Open, FileAccess.Read); 
    hssfwb = new HSSFWorkbook(file1); 

    ISheet sheet = hssfwb.GetSheet("Zawodnicy"); 
    int ostatniWiersz = sheet.LastRowNum; 
    textBox14.Text = (ostatniWiersz + 1).ToString(); 
    Console.WriteLine(ostatniWiersz); 

    IRow worksheetRow = sheet.CreateRow(ostatniWiersz + 1); 

    ICell cell = worksheetRow.CreateCell(0); 
    cell.SetCellValue(textBox14.Text); 

    ICell cell1 = worksheetRow.CreateCell(1); 
    cell1.SetCellValue(textBox2.Text); 

    //sheet.CreateRow(ostatniWiersz + 1).CreateCell(1).SetCellValue(textBox2.Text); 
    //sheet.CreateRow(ostatniWiersz + 1).CreateCell(2).SetCellValue(textBox3.Text); 

    FileStream file = new FileStream(pathDoXls, FileMode.Create); 
    hssfwb.Write(file); 
    file.Close(); 

あなたの問題を解決することを願っています。

+1

ありがとうございました!しかし、 ICELL cell = sheet.CreateRow(ostatniWiersz + 1).CreateCell(0); cell.SetCellValue(textBox14.Text); ICell cell1 = sheet.CreateRow(ostatniWiersz + 1).CreateCell(1); cell1.SetCellValue(textBox2.Text); このコード部分は削除する必要があります – Przemon

+0

私は答えを更新し、不要なコードを削除しました。 – DevMJ

関連する問題