我将数据附加到现有的excel文件时遇到问题。
以下是代码:
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内容。
但是当我编译这段代码时,我只在第11行单元格1中有价值。理论上应该在两个字段插入值(我的意思是单元格0和1)
感谢您的帮助。
答案 0 :(得分:1)
你正在覆盖同一行,这就是为什么下面代码的效果丢失了
ICell cell = sheet.CreateRow(ostatniWiersz+1).CreateCell(0);
cell.SetCellValue(textBox14.Text);
尝试使用以下代码。
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();
希望它能解决你的问题。