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 = "@";
我在每个单元格的左下角注册了这个“小错误”
答案 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