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();
}
}
都说了,这样应该就没问题了!
补充:.NET技术 , ASP.NET