asp.net里导出excel表方法汇总
1、由dataset生成
2、使用微软的C++写的ACTIVEX控件:http://download.microsoft.com/download/OfficeXPDev/sample/1.0/WIN98MeXP/EN-US/Dsoframerctl.exe
3、由datagrid生成:
用法:ToExcel(datagrid1);
4、这个用dataview ,代码好长
----------------------------------------------------------------
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
SqlDataAdapter da=new SqlDataAdapter("select * from tb1",conn);
DataSet ds=new DataSet();
da.Fill(ds,"table1");
DataTable dt=ds.Tables["table1"];
StringWriter sw=new StringWriter();
sw.WriteLine("自动编号,姓名,年龄");
foreach(DataRow dr in dt.Rows)
{
sw.WriteLine(dr["ID"]+","+dr["vName"]+","+dr["iAge"]);
}
sw.Close();
Response.AddHeader("Content-Disposition", "attachment; filename=test.csv");
Response.ContentType = "application/ms-excel";
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
Response.Write(sw);
Response.End();
对方法一,二补充一点,如果你希望导出的是xls文件分隔符用\t就能了,不要用逗号
代码修改如下:
sw.WriteLine("自动编号\t姓名\t年龄");
foreach(DataRow dr in dt.Rows)
{
sw.WriteLine(dr["ID"]+"\t"+dr["vName"]+"\t"+dr["iAge"]);
}
另外,修改输出的文件扩展名为xls即可。
---------------------------------项目实践--yx---1
------------2
--------------------------------群里人发 据说效率很高
/// <summary>
/// 把dset输入为html table
/// </summary>
/// <param name="ds">数据</param>
/// <returns></returns>
private static string ExportHtmTable(System.Data.DataSet dset)
{
System.Text.StringBuilder data = new System.Text.StringBuilder();
data.Append("<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">");
data.Append("<head>");
data.Append("<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=GB2312\"/>");
data.Append("<!--[if gte mso 9]><xml>");
data.Append("<x:ExcelWorkbook>");
data.Append("<x:ExcelWorksheets>");
data.Append("<x:ExcelWorksheet>");
data.Append("<x:Name>模板</x:Name>");
data.Append("<x:WorksheetOptions>");
data.Append("<x:Print>");
data.Append("<x:ValidPrinterInfo />");
data.Append("</x:Print>");
data.Append("</x:WorksheetOptions>");
data.Append("</x:ExcelWorksheet>");
data.Append("</x:ExcelWorksheets>");
data.Append("</x:ExcelWorkbook>");
data.Append("</xml>");
data.Append("<![endif]-->");
data.Append("</head>");
data.Append("<body>");
//data = ds.DataSetName + "\n";
foreach (System.Data.DataTable tb in dset.Tables)
{
//data += tb.TableName + "\n";
data.Append("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\">");
//写出列名
data.Append("<tr style=\"font-weight: bold; white-space: nowrap;\">");
foreach (System.Data.DataColumn column in tb.Columns)
{
data.Append("<td>" + column.ColumnName + "</td>");
}
data.Append("</tr>");
//写出数据
foreach (System.Data.DataRow row in tb.Rows)
{
data.Append("<tr>");
foreach (System.Data.DataColumn column in tb.Columns)
{
data.Append("<td>" + row[column].ToString() + "</td>");
}
data.Append("</tr>");
}
data.Append("</table>");
}
data.Append("</body>");
data.Append("</html>");
return data.ToString();
}