//dsInput 为dataset
if (m_dsInput != null)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<table><tr>");
//保存表头
foreach (DataColumn c in m_dsInput.Tables[0].Columns)
{
sb.AppendFormat("<td>{0}</td>", c.ColumnName);
}
sb.AppendLine("</tr>");
//sb.Append("</tr>");
//保存内容
foreach (DataRow dr in m_dsInput.Tables[0].Rows)
{
sb.Append("<tr>");
foreach (DataColumn c in m_dsInput.Tables[0].Columns)
{
sb.AppendFormat("<td>{0}</td>", dr[c.ColumnName]);
}
sb.AppendLine("</tr>");
//sb.Append("</tr>");
}
sb.Append("</table>");
System.IO.StreamWriter sw = new System.IO.StreamWriter("c://gaoxiaodong.xls", false , System.Text.Encoding.UTF8);
sw.WriteLine(sb.ToString());
}
这一方法的原理是将dataSet里的数据做成表格的形式,例如将标题(column)写到table的一行(tr),每个标题都是一
列(td),下面的数据也是一样处理,相当于做成html格式,当然比如说背景色,边框,都可以设置.把这些数据都存放到
stringbuilder中,最后用StreamWriter 以流的形式写入到excel中.可奇怪的是以上的代码会丢失一些最后数据,不知道
是什么原因,但原理就是这样了.