代码之家  ›  专栏  ›  技术社区  ›  Spencer

如何将excel单元格值设置为字符串。是否使用互操作清空?

  •  1
  • Spencer  · 技术社区  · 7 年前

    我使用以下方法设置excel单元格值:

    newSheet.Cells[23,2].Value2 = "";
    newSheet.Cells[23,2].Value = "";
    

    但奇怪的是,当我再次得到这个值时,它总是返回null,这是为什么?

    var tt = newSheet.Cells[23,2].Value; //null
    var tt2 = newSheet.Cells[23,2].Value2; //null
    var tt3 = newSheet.Cells[23,2].Text; //this is ""!
    

    我找到一个excel,它成功地将单元格[1,2]上的单元格值设置为“”。您可以查看下面的附件。这是怎么发生的?有什么想法吗?我是否以错误的方式设置了值?

    MagicCell.xlsx

    2 回复  |  直到 7 年前
        1
  •  0
  •   Mátray Márk    7 年前

    如果单元格值为文本,则Value2将返回类型string,如果单元格值为number,则Value2将返回类型double。如果单元格为空,则返回类型为COM对象null。

    所以值也将为null。我想(现在无法检查)l,如果您检查任何空白单元格文本(即使您没有将其设置为),它将返回一个空字符串。

        2
  •  0
  •   Spencer    7 年前

    多亏了@MÃtray MÃrk,他的回答突然让我想到,单元格值类型可能会起作用。

    因此,我设置:

    newSheet.Cells[23,2].NumberFormat = "@";
    

    还有吊杆,绳子。空的作品!