我vs2003做了个导出excle的功能,但发现数据开始部分的0都被清掉了,还有数据比较大例如4013010002137则变成了4.01301E+12,那位大侠能告诉我原因以及我该怎么做啊?

解决方案 »

  1.   

    你用我这个试试看,应该不会出现这个问题
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Windows.Forms ;
    using System.IO;namespace OutputToExecl
    {
        public class ExportXLS
        {
            public ExportXLS()
            {
     
            }
            public static void ExportDataGridViewToExcel(DataGridView dataGridview1)
            {
                SaveFileDialog saveFileDialog = new SaveFileDialog();
                saveFileDialog.Filter = "Execl files (*.xls)|*.xls";
                saveFileDialog.FilterIndex = 0;
                saveFileDialog.RestoreDirectory = true;
                saveFileDialog.CreatePrompt = true;
                saveFileDialog.Title = "导出Excel文件到";            saveFileDialog.ShowDialog();            Stream myStream;
                myStream = saveFileDialog.OpenFile();
                StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312"));
                string str = "";
                try
                {
                    //写标题 
                    for (int i = 0; i < dataGridview1.ColumnCount; i++)
                    {
                        if (i > 0)
                        {
                            str += "\t";
                        }
                        str += dataGridview1.Columns[i].HeaderText;
                    }                sw.WriteLine(str);
                    //写内容
                    for (int j = 0; j < dataGridview1.Rows.Count; j++)
                    {
                        string tempStr = "";
                        for (int k = 0; k < dataGridview1.Columns.Count; k++)
                        {
                            if (k > 0)
                            {
                                tempStr += "\t";
                            }
                            tempStr += dataGridview1.Rows[j].Cells[k].Value.ToString();
                        }
                        sw.WriteLine(tempStr);
                    }
                    sw.Close();
                    myStream.Close();
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                }
                finally
                {
                    sw.Close();
                    myStream.Close();
                }
            }    }
    }
      

  2.   

    在0开的值前面加',设置cell为文本类型。