#region 输出Excel
public static void CreateExcelOther(Page page, DataSet ds, string colHeaders, string typeid, string FileName)
{
HttpResponse resp;
resp = page.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
//resp.ContentType = "application/Vnd.MS-Excel";
resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
string ls_item = "";
int i = 0;
//定义表对象与行对像,同时用DataSet对其值进行初始化
System.Data.DataTable dt = ds.Tables[0];
string bodyData = ExportTable(colHeaders,ds);
// typeid=="1"时导出为EXCEL格式文件;typeid=="2"时导出为XML格式文件
if (typeid == "1")
{
//向HTTP输出流中写入取得的数据信息
//resp.Write(colHeaders);
resp.Write(bodyData);
}
else
{
if (typeid == "2")
{
//从DataSet中直接导出XML数据并且写到HTTP输出流中
resp.Write(ds.GetXml());
}
}
//写缓冲区中的数据到HTTP头文件中
resp.End();
}
#endregion
#region 表格数据
public static string ExportTable(string colHeaders, DataSet ds)
{
StringBuilder sb = new StringBuilder();
//data = ds.DataSetName + "\n";
int count = 0;
foreach (DataTable tb in ds.Tables)
{
//data += tb.TableName + "\n";
sb.AppendLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">");
sb.AppendLine("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\">");
////写出列名
sb.AppendLine("<tr style=\"font-weight: bold; white-space: nowrap;\">");
foreach (string aStr in colHeaders.Split('\t'))
{
sb.AppendLine("<td>" + aStr + "</td>");
}
sb.AppendLine("</tr>");
//写出数据
foreach (DataRow row in tb.Rows)
{
sb.Append("<tr>");
foreach (DataColumn column in tb.Columns)
{
if (column.ColumnName.Equals("IDCard") || column.ColumnName.Equals("IDCard"))
sb.Append("<td style=\"vnd.ms-excel.numberformat:@\">" + row[column].ToString() + "</td>");
else
sb.Append("<td>" + row[column].ToString() + "</td>");
}
sb.AppendLine("</tr>");
count++;
}
sb.AppendLine("</table>");
}
return sb.ToString();
}
#endregion