//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中.可奇怪的是以上的代码会丢失一些最后数据,不知道
是什么原因,但原理就是这样了.