public static string GetHtmlString(string ExportFileName, bool isPrint,DataTable tbl)
{
StringBuilder sb = new StringBuilder();
sb.Append("<HTML><HEAD>");
sb.Append("<title>" + ExportFileName + "</title>");
sb.Append("<META HTTP-EQUIV='content-type' CONTENT='text/html; charset=GB2312'> ");
sb.Append("<script language=javascript>");
sb.Append("self.resizeBy(0,0);");
sb.Append("self.resizeTo(screen.availWidth,screen.availHeight);");
sb.Append("</script>");
sb.Append("<style type=text/css>");
sb.Append("td{font-size: 9pt;border:solid 1 #000000;}");
sb.Append("table{padding:3 0 3 0;border:solid 1 #000000;margin:0 0 0 0;BORDER-COLLAPSE: collapse;}");
sb.Append("</style>");
sb.Append("</HEAD>");
if (!isPrint)
sb.Append("<BODY >");
else
sb.Append("<BODY onload = 'window.print()'>");
sb.Append("<table cellSpacing='0' cellPadding='0' width ='100%' border='1'");
sb.Append(">");
sb.Append("<tr valign='middle'>");
sb.Append("<td><b>" + CommonUI.Translate("RowSequences") + "</b></td>");
foreach (DataColumn column in tbl.Columns)
{
sb.Append("<td><b><span>" + column.ColumnName + "</span></b></td>");
}
sb.Append("</tr>");
int iColsCount = tbl.Columns.Count;
int rowsCount = tbl.Rows.Count - 1;
for (int j = 0; j <= rowsCount; j++)
{
sb.Append("<tr>");
sb.Append("<td>" + ((int)(j + 1)).ToString() + "</td>");
for (int k = 0; k <= iColsCount - 1; k++)
{
sb.Append("<td");
sb.Append(">");
object obj = tbl.Rows[j][k];
if (obj == DBNull.Value)
{
// 如果是NULL则在HTML里面使用一个空格替换之
obj = " ";
}
if (obj.ToString() == "")
{
obj = " ";
}
string strCellContent = obj.ToString().Trim();
sb.Append("<span>" + strCellContent + "</span>");
sb.Append("</td>");
}
sb.Append("</tr>");
}
sb.Append("</TABLE></BODY></HTML>");
return sb.ToString();
}
将指定Datatable导出为EXCEL方法:
public static void Export(System.Web.UI.Page page,DataTable tbl, string strFileName)
{
StringWriter sw = new StringWriter();
sw.Write(GetHtmlString("",false,tbl));
sw.Close();
page.Response.Clear();
page.Response.Buffer = false;
page.Response.AppendHeader("Content-Disposition", "attachment; filename=/"" + strFileName +
System.DateTime.Now.Year.ToString() + "-" +
System.DateTime.Now.Month.ToString() + "-" +
System.DateTime.Now.Day.ToString() + " " +
System.DateTime.Now.Hour.ToString() + "-" +
System.DateTime.Now.Minute.ToString() + ".xls/"");
page.Response.ContentType = "application/ms-excel";
page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
page.Response.Write(sw);
page.Response.End();
}