使用Excel.Interop和C#

时间:2016-11-04 13:43:14

标签: c# office-interop

我通过Excel.Interop和C#动态地将13位数值添加到Excel单元格。但是,该值会显示为7,21119E+12而不是7211192800080行中的内容。如果单击单元格,则显示正确。

//_ReportData is a DataTable with a single item
for (int i = 0; i < _ReportData[0].Rows.Count; i++)
{
    for (int j = 0; j < _ReportData[0].Columns.Count; j++)
    {
        excelCellRange_data = ((Worksheet)excelWorksheet_data).Cells;
        var cellValueRange = ((Range)excelCellRange_data)[i, j + 1];
        if (i == 0)
            ((Range)cellValueRange).Value2 = _ReportData[0].Columns[j].ToString(); //This is where the columns are set
        else
            ((Range)cellValueRange).Value2 = _ReportData[0].Rows[i][j].ToString(); //This is where the values are set
    }
}

请帮忙吗?

2 个答案:

答案 0 :(得分:2)

这是一个Excel-“问题”。如果您直接在单元格中键入数字,请按Enter键,将出现相同的问题。如果您首先将单元格格式化为数字,它将显示正确。

((Range)cellValueRange).NumberFormat = "0";

答案 1 :(得分:1)

您应该在没有ToString()方法的情况下插入值。 Excel应从插入的值类型自动应用格式。