C#访问EXCEL,将单元格格式化为常规

时间:2011-10-11 10:13:13

标签: c# excel formatting cells

C#,Visual Studio 2010

在C#中操作excel单元格时(通过COM对象),我应该使用.Value还是.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

现在当我指定一个数字为“0,34”的单元格时,即使我这样做

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

我在每个单元格的左下角注册了这个“小错误”

2 个答案:

答案 0 :(得分:4)

要回答第一个问题,您应该阅读本文:http://blogs.msdn.com/b/eric_carter/archive/2004/09/06/225989.aspx

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

但是存在差异(在文章中说明)

  

此属性[Value2]与Value之间的唯一区别   属性是Value2属性不使用Currency和Date   数据类型。您可以返回使用这些数据类型格式化的值   使用Double数据类型的浮点数。

对于第二个问题,您是否尝试将单元格设置为“常规”并在代码中读取它?

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

答案 1 :(得分:1)

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

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