c#导出excel时,怎么会出现没有到换行时就换行了!
业务员每天发短信,并存放在数据库中,想导出每个业务员从1号到31号的所发的短信内容,第一列显示编号,第二列为业务员名,后面的每列分别显示1-31号的短信内容。每一个业务员占一行,但是导出后有部分业务员占了好几行(比如到了20几号的短信后就跳到下一行显示了)。如下图本来在显示业务员名这一列显示了短信内容。
所用的导出源码如下:请高手帮忙解决1
protected void btnExport_Click(object sender, EventArgs e)
{
string ConnectStr = ConfigurationManager.AppSettings["LocalSqlServer"];
SqlConnection SqlConn = new SqlConnection(ConnectStr);
string d = "e:\\sms\\业务员短信" + DateTime.Now.ToString("yyyyMMddhhmm") + ".xls";
StreamWriter w = new StreamWriter(d, true, Encoding.Default);
string star = txt_star.Text + " 16:00";
string end = txt_end.Text + " 16:00";
try
{
SqlConn.Open();
}
catch
{
Response.Write("<script>alert('数据库连接错误!');</script>");
return;
}
try
{
SqlCommand SqlCmd = SqlConn.CreateCommand();
SqlCmd.CommandText = "select distinct UserID,RealName , 一 ,二, 三,四, 五, 六, 七, 八,九, 十, 十一, 十二, 十三, 十四,十五, 十六, 十七, 十八, 十九,二十, 二一,二二, 二三, 二四, 二五,二六, 二七, 二八,二九, 三十, 三一,";
// sql = "select distinct UserID,RealName , 一 ,二, 三,四, 五, 六, 七, 八,九, 十, 十一, 十二, 十三, 十四,十五, 十六, 十七, 十八, 十九,二十, 二一,二二, 二三, 二四, 二五,二六, 二七, 二八,二九, 三十, 三一,";
SqlCmd.CommandText += " GoalTimes as GoalTimes,sum(sjGoalTimes) as sjGoalTimes,qfzs,cqday from Quew_User where 1=1 ";
SqlCmd.CommandText += " and InceptTime >='" + star + "' and InceptTime<='" + end + "'";
SqlCmd.CommandText += sqlWhere;
SqlCmd.CommandText += " group by UserID,RealName ,一 ,二, 三,四, 五, 六, 七,";
SqlCmd.CommandText += " 八,九, 十, 十一, 十二, 十三, 十四,十五, 十六, 十七, 十八, 十九,二十, 二一, 二二, 二三, 二四, 二五,二六, 二七, 二八,二九, 三十, 三一,qfzs,cqday,GoalTimes order by RealName ";
DataTable table = BindData2(SqlCmd.CommandText);
SqlDataReader Reader = SqlCmd.ExecuteReader();
for (int i = 0; i < Reader.FieldCount; ++i)
{
w.Write(Reader.GetName(i));
w.Write('\t');
}
w.Write("\r\n");
//object[] values = new object[Reader.FieldCount];
//while (Reader.Read())
//{
// Reader.GetValues(values);
// for (int i = 0; i < values.Length; ++i)
// {
// //w.Write("'");//避免打开excel时部分字符转换为数字(科学计数法)
// w.Write(values[i].ToString());
// w.Write('\t');
// }
// w.Write("\r\n");
//}
foreach (DataRow row in table.Rows)
{
for (int i = 0; i < table.Columns.Count; i++)
{
//w.Write("'");//避免打开excel时部分字符转换为数字(科学计数法)
w.Write(row[i].ToString());
w.Write('\t');
}
w.Write("\r\n");
}
w.Flush();
w.Close();
Reader.Close();
SqlConn.Close();
}
catch
{
Response.Write("<script>alert('数据库连接错误!');</script>");
w.Close();
SqlConn.Close();
return;
}
} --------------------编程问答--------------------
你的图挂了 --------------------编程问答--------------------
有意思么?
图片挂了 --------------------编程问答-------------------- 库中有看不到的换行,输出的时候过滤掉"\r" --------------------编程问答--------------------
请问如何过滤?另外,因为是手机文本短信,"\r"短信中应该输入不进去的啊! --------------------编程问答--------------------
我不知道csdn如何贴图,这只能输入连接地址,若没显示请单击右键--》显示图像
补充:.NET技术 , C#