在导出的CSV文件中要输出一个字符串,比如00001,可是出来的是1,但是如果使用'的话可以正常显示出来,不知道除了使用'外还有没有别的好的方法了呢? 
非网页格式,只有代码没有窗体的程式
数据插入代码:
            try
            {
         conn.Open();
                SqlCommand com = new SqlCommand();
                com.Connection = conn;
                com.CommandTimeout = 180;
                com.CommandText = "FIC-CZFAD";
                com.CommandType = CommandType.StoredProcedure;
                StreamWriter sw = new StreamWriter(f_name, true, Encoding.UTF32);                string writerstr = "";
                SqlDataAdapter myda = new SqlDataAdapter(com);
                DataTable dt = new DataTable();
                myda.Fill(dt);                for (int i = 0; i < dt.Rows.Count - 1; i++)
                {
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        writerstr  = writerstr +"'" + dt.Rows[i][j].ToString().Trim()+"\t";
                    }
                    sw.WriteLine(writerstr);
                    writerstr = string.Empty;                }
                sw.Flush();                sw.Close();                conn.Close();请教高手援手,感激十分!

解决方案 »

  1.   

     字符前面加这个((char)(9)).ToString() 就可以了,我实现过 
      

  2.   

     writerstr  = writerstr + ((char)(9)).ToString()  + dt.Rows[i][j].ToString().Trim()+"\t"; 
      

  3.   

    e~  http://bbs.55dns.net/?fromuid=211793
      

  4.   

    你的方法运行后的数据十这样的(和原来我那个方法是没有变化的):
    00265514325C
    2655143270
    00265514328E
    00265514348D
    2655143444
    2655143488
    2655143448
    2655143451
    2655143489
    2655143486
    00265514347c
    2655143474
    2655143477
    2655143493
    2655143475
    2655143491
    00265514347b
    00265514348a
    2655143496
    26前面是有2个0 的,但是现在还没有
      

  5.   

    奇怪了,我原来的代码是这样的,可以实现的,下面是代码,从网页导出的
            HtmlTextWriter htWriter = new HtmlTextWriter(Response.Output);
            
            Response.Clear();
            Response.ContentType = "application/octet-stream";   //"application/octet-stream";Text/application   
            Response.AppendHeader("Content-Disposition", "attachment;   filename=" + Server.UrlEncode(Filename));
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");        string data = "";
            foreach (DataTable tb in ds.Tables)
            {
                //写出列名
                foreach (DataColumn column in tb.Columns)
                {
                    data += column.ColumnName + ",";
                }
                data += "\n";
                Response.Write(data);
                //写出数据
                foreach (DataRow row in tb.Rows)
                {
                    data = "";
                    foreach (DataColumn column in tb.Columns)
                    {
         
                       data += ((char)(9)).ToString() + row[column].ToString() + ",";
                    
                    }
                    
                    Response.Write(data + "\n");
                }
                
            }
            Response.Write("\n");
            Response.End();
      

  6.   

    目前还有别的方法吗?
    不光csv,Excel也是一样,需要加"'".
    单引号的作用是,将数值以文本形式表示。
      

  7.   

    我知道的是网页格式的也能做到。
    但是我现在是直接是代码的,并且整个程式没有窗体。
    在前面加"'"的结果是这样的:'002655140c8f
    '002655143230
    '00265514325C
    '002655143270
    '00265514328E
    '00265514348D
    '002655143444
    '002655143488
    '002655143448
    '002655143451
    '002655143489
    '002655143486
    '00265514347c
    '002655143474
    '002655143477
    '002655143493
    '002655143475
    '002655143491
    '00265514347b
    '00265514348a
    '002655143496
    '002655144d44
    无法消除前面的符号,在表格里面双击之后就OK了