通过C#编写string,数字数据到Excel工作,但Excel不正确处理数字数据

我从Sybase返回结果集,返回到C#客户端。

我使用下面的函数将结果集数据写入Excel:

private static void WriteData(Excel.Worksheet worksheet, string cellRef, ref string[,] data) { Excel.Range range = worksheet.get_Range(cellRef, Missing.Value); if (data.GetLength(0) != 0) { range = range.get_Resize(data.GetLength(0), data.GetLength(1)); range.set_Value(Missing.Value, data); } } 

数据被正确写入。

问题是,因为我使用string数组来写入数据(这是string和浮点数的混合),所以Excel使用消息“Number Stored as Text”突出显示包含数字数据的每个单元格。

我如何摆脱这个问题?

非常感谢Chapax

尝试以下操作:用对象数组replacestring数组。

 var data = new object[2,2]; data[0, 0] = "A"; data[0, 1] = 1.2; data[1, 0] = null; data[1, 1] = "B"; var theRange = theSheet.get_Range("D4", "E5"); theRange.Value2 = data; 

如果我使用这个代码,相当于你的:

 var data = new string[2,2]; 

我得到和你一样的症状。 作为一个附带的好处,你不需要将任何东西投射到string:你可以用你想要看到的任何东西来填充你的数组。

尝试在范围对象上设置NumberFormat属性。