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

问题描述 投票:1回答:2

我用下面的方法来设置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,它在Cell [1,2]上成功地将单元格值设置为“”。您可以查看下面的附件。这是怎么发生的?有任何想法吗?我是以错误的方式设置值吗?

MagicCell.xlsx

c# excel com-interop
2个回答
0
投票

如果单元格值是文本,则Value2将返回类型字符串,如果单元格值为数字,则Value2将返回double类型。如果单元格为空,则返回类型为COM对象null。

所以Value也是null。我想(现在不能检查)l,如果检查任何空白单元格的文本(即使你没有将它设置为“”),它将返回一个空字符串。


0
投票

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

所以我设置:

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

繁荣,string.empty的作品!

© www.soinside.com 2019 - 2024. All rights reserved.