我全部的分数就只剩下29分了,诚心求解
问题是这样的
一般用C# 导出Excel,放值进入一个worksheet(ExcelSheet类型的)里面的做法都是--worksheet.worksheet.CreateRow(RowIndex).CreateCell(ColumnIndex).SetCellValue(value.ToString());
然后如果获取当前worksheet的一个单元格的值就是----worksheet.worksheet.GetRow(RowIndex).GetCell(ColumnIndex);
问题就在这里,我发现,如果我在刚刚设置好值后面马上获取当前值是可以的
worksheet.worksheet.CreateRow(0).CreateCell(0).SetCellValue(kk);
var k1=worksheet.worksheet.GetRow(0).GetCell(0);---很明显,k1会等于kk;
但是,如果在设置好值之后再加点一条数据,结果就会很不一样了
worksheet.worksheet.CreateRow(0).CreateCell(0).SetCellValue(kk);
worksheet.worksheet.CreateRow(1).CreateCell(1).SetCellValue(dk);
var k1=worksheet.worksheet.GetRow(0).GetCell(0);--- 结果是k1为null,而不为kk
只是一个位置不同而已,为什么会导致结果的不一样,这个情况令我这个星期都很懊恼了,谢谢各位发表意见...

解决方案 »

  1.   

    worksheet.worksheet.CreateRow(0).CreateCell(0).SetCellValue(kk);
    不要用CreateRow,CreateCell
    可能会改变当前行列的结构
    所以你再取取不到了
    excel里面的行列都是生成好的,可以直接访问
    比如
    worksheet.worksheet.GetRow(0).GetCell(0).SetCellValue(kk);
      

  2.   

    也可以用worksheet.Cells[i,j]访问,比较方便
      

  3.   


    想更正一下,worksheet.worksheet--是一个HSSFSheet,但是我没看见这个worksheet下有
    worksheet.Cells[i,j],请问一下,有这个方法的是哪个个类呢~?谢谢~
      

  4.   

    因为,当worksheet.worksheet.GetRow(0).GetCell(0)的时候根本就找不到当前cell,所以更加不可能setvalue了
      

  5.   

    这是POI吧...
    怎么不用Excel自带的类库?
    我前面还以为是WorkSheet呢
    在引用里面添加Excel的dll库
    再引入Excel的名空间,就可以了
    用起来比用POI简单
    主要的类
    WorkBook是指Excel文件对象
    WorkSheets是文件中包含的所有sheet页的列表
    WorkSheet是某个sheet
    Cells单元格集合
    Rows行集合
    Columns列集合