当从C#应用程序导出数据时,数字在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文件。 问题是当文件被导出时,数据是十几个数字左右,在Excel中打开文件时,似乎用科学符号表示。 这导致dataloss。 我自己也不能这样做,因为数据是代码而不是数据。

如果一个Cell.Value可以被解释为一个数字,Excel将会把它解释为一个数字。 除非Cell.NumberFormat是文本(“@”)。

尝试

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

问候

阿克塞尔