如何使用互操作将 excel 单元格值设置为 string.empty?

How can I set an excel cell value to string.empty using interop?

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

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

但奇怪的是,当我再次获取该值时,它总是return 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

如果单元格值为文本,则 Value2 将 return 类型为字符串,如果单元格值为数字,则 Value2 将 return 类型为双精度。如果单元格为空,则 return 类型为 COM 对象 null。

因此 Value 也将为 null。我认为(现在无法检查)l,如果您检查任何空白单元格的文本(即使您没有将其设置为“”),它将 return 一个空字符串。

感谢@Mátray Márk,他的回答突然让我觉得单元格值类型可能会起作用。

所以我设置了:

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

砰的一声,string.empty 成功了!