当前位置:编程学习 > C#/ASP.NET >>

asp.net向excel导入数据,如果文字带有回车等控制符,则其信息不会显示在一个单元格,怎么解决?

数据库中数据存储带格式(比如个人简历),我向excel导入的时候,这些信息会显示在不同的单元格里,我怎么处理啊。我是把datatable数据导出 excel,用的是一个一个数据遍历的模式进行的。导出的核心代码如下:
        //向HTTP输出流中写入取得的数据信息
        //逐行处理数据 
        foreach (DataRow row in myRow)
        {
            //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据  
            for (i = 0; i < cl; i++)
            {
                if (i == (cl - 1))//最后一列,加n
                {
                    ls_item +=row[i].ToString() + "\n";
                }
                else
                {
                    ls_item +=row[i].ToString() + "\t";
                }
            }
            resp.Write(ls_item);
            ls_item = "";
        }
        resp.End(); --------------------编程问答-------------------- 内容两边加上引号:
 ls_item = '"' + row[i].ToString().Replace("\n", "\u000a") + '"' + ...; --------------------编程问答-------------------- 用引号引起来 --------------------编程问答-------------------- 试试下面的方法:
public static void DataTable2Excel(System.Data.DataTable dtData) 
    { 
  System.Web.UI.WebControls.DataGrid dgExport = null; 
      // 当前对话 
      System.Web.HttpContext curContext = System.Web.HttpContext.Current; 
      // IO用于导出并返回excel文件 
      System.IO.StringWriter strWriter = null; 
      System.Web.UI.HtmlTextWriter htmlWriter = null; 

      if (dtData != null) 
      { 
        // 设置编码和附件格式 
        curContext.Response.ContentType = "application/vnd.ms-excel"; 
        curContext.Response.ContentEncoding =System.Text.Encoding.UTF8; 
        curContext.Response.Charset = ""; 

        // 导出excel文件 
        strWriter = new System.IO.StringWriter(); 
        htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter); 

        // 为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid 
        dgExport = new System.Web.UI.WebControls.DataGrid(); 
        dgExport.DataSource = dtData.DefaultView; 
        dgExport.AllowPaging = false; 
        dgExport.DataBind(); 

        // 返回客户端 
        dgExport.RenderControl(htmlWriter);   
        curContext.Response.Write(strWriter.ToString()); 
        curContext.Response.End(); 
      } 
    } 

 
--------------------编程问答--------------------
引用 1 楼 jshi123 的回复:
内容两边加上引号:
 ls_item = '"' + row[i].ToString().Replace("\n", "\u000a") + '"' + ...;


都说了,这样应该就没问题了!
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,