我正在使用Windows应用程序。在该应用程序中我成功地将DataGrid导出到Excel中...现在问题是,当我从网格导出到Excel工作表时,单元格值在Excel工作表的左上角有一些绿色标记...我想这是类型转换问题。我将如何避免这个问题....以及如何将单元格值从文本更改为数字...(即)转换为数字....
有人可以告诉我这个问题的解决方案吗?
先谢谢
我为某些值范围格式化Excel表格的代码,
wksheet.Range[GetRanges[0].ToString(), GetRanges[GetRanges.Count-2].ToString()].Merge();
wksheet.get_Range(GetRanges[0].ToString(), GetRanges[GetRanges.Count-].ToString()).Interior.Color = Color.FromArgb(192, 0, 0);
答案 0 :(得分:9)
我目前还没有要测试的Windows机器,但也许您可能想尝试更改单元格格式,例如:
my_range.NumberFormat = "0.0"; // change number of decimal places as needed
以下是Microsoft的完整示例:How to automate Microsoft Excel from Microsoft Visual C#.NET。
答案 1 :(得分:1)
以下例程将从文本文件中的数据(文本和数字)动态填充电子表格。
踢球者正在使用对象数组来设置值。
StreamReader STRead;
String[] STCells;
object[] cellData;
int temp;
Excel.Range tempRange;
for (int i = 0; i < FileList.Length; i++)
{
STRead = FileList[i].OpenText();
int j = 0;
while (!STRead.EndOfStream)
{
STCells = STRead.ReadLine().Split(',');
cellData = new object[STCells.Length];
for (int k = 0; k < STCells.Length; k++)
{
if (Int32.TryParse(STCells[k], out temp))
cellData[k] = temp;
else
cellData[k] = STCells[k];
}
tempRange = sheetList[i].get_Range(ReturnCellID(j, 0),
ReturnCellID(j, STCells.Length - 1));
j++;
tempRange.Value2 = cellData;
}
STRead.Close();
}
答案 2 :(得分:1)
我遇到了包含常规数字和百分比(从Crystal Report导出字符串的结果)的Excel工作表的问题。
要立刻改变所有这些,我做了一个像这样的循环:
//example range
Excel.Range rng = mWorkSheet.get_Range("A1", "H25");
foreach (Excel.Range range in rng)
{
if (range.Value != null)
{
int number;
bool isNumber = int.TryParse(range.Value.ToString().Trim(), out number);
if (isNumber)
{
range.NumberFormat = "#,##0";
range.Value = number;
}
else
{
//the percent values were decimals with commas in the string
string temp = range.Value.ToString();
temp = temp.Replace(",", ".");
range.Value = temp;
}
}
}
结果是百分比字符串和数字都转换为正确的Excel格式。
答案 3 :(得分:0)
将值分配给单元格时,请先尝试获取二维数组中的所有值,然后将数组指定给Range。这样它的速度非常快,而且我猜单元格中的值也是数字。尝试一下......希望它能够起作用
答案 4 :(得分:0)
使用Excel Jet Cell .NET component将单元格值从文本更改为数字。
Cell["A1"].Style.StringFormat = "##.#"; // or "0.0" same as in MS Excel