当从C#应用程序导出数据时,数字在excel中以科学记数法出现

时间:2014-08-06 14:18:43

标签: c# excel datagridview export-to-excel

        Excel.Application xlApp ;
        Excel.Workbook xlWorkBook ;
        Excel.Worksheet xlWorkSheet ;
        object misValue = System.Reflection.Missing.Value;

        xlApp = new Excel.Application();
        xlWorkBook = xlApp.Workbooks.Add(misValue);
        xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
        int i = 0;
        int j = 0; 

        for (i = 0; i <= dataGridView1.RowCount  - 1; i++)
        {
            for (j = 0; j <= dataGridView1.ColumnCount  - 1; j++)
            {
                DataGridViewCell cell = dataGridView1[j, i];
                xlWorkSheet.Cells[i + 1, j + 1] = cell.Value;
            }
        }...

如上所示,我将数据从datagridview导出到.xls文件。问题是,当导出文件时,大于10个数字左右的数据在Excel中打开文件时似乎以科学记数法表示。这导致数据。我不能允许自己,因为数据是代码而不是计数。

1 个答案:

答案 0 :(得分:2)

如果Cell.Value可以解释为数字,Excel会将其解释为数字。除非Cell.NumberFormat是Text(“@”)。

尝试

...
xlWorkSheet.Cells[i + 1, j + 1].NumberFormat = "@";
xlWorkSheet.Cells[i + 1, j + 1] = cell.Value
...

问候

阿克塞尔