2011-10-11 44 views
2

C#,Visual Studio 2010中C#访问EXCEL,格式化单元作为通用

当Excel细胞在C#(经由COM对象)操纵,我应该使用。价值或.Value2? 是

sheet.Cells[row + n, col].Value = "Hello world" 

sheet.Cells[row + n, col].Value2 = "Hello world" 

是什么它们之间的区别?

另外,如何设置单元格格式为“常规”?

sheet.Cells[row + n, col].NumberFormat = "XYZ"; // Not sure what should be here 

现在,当我分配一个小区甚至如果我做

sheet.Cells[row + n, col].NumberFormat = "@"; 

我得到这个“小错误”,数字“0.34”,并在每个单元中的左上角注册

回答

4

要回答第一个问题,你应该看看这篇文章:http://blogs.msdn.com/b/eric_carter/archive/2004/09/06/225989.aspx

的可选参数的部分不适用了,因为C#4.0具有可选参数。

但有区别(在文章中说明)

这个属性[值]与值 属性之间的唯一区别是,Value 2属性不使用货币和日期 数据类型。您可以使用Double数据类型将使用这些数据类型格式化的值返回为浮点数 。

对于第二个问题,你有没有尝试过设置一个单元格为“常规”并在代码中读出它?

我认为这是sheet.Cells[row + n, col].NumberFormat = "General",其中"@"是纯文本。

+0

感谢您的文章,我现在看到的差异,如果我使用“一般”,我得到的错误“属性NumberFormat不能用于类的范围” –

0

为了获得常规类型,作为应该分配给NumberFormat属性的“魔术字符串”,尝试使用空字符串,例如

sheet.Cells[5, 7].NumberFormat = ""; // sets the cell type to the General type