作者:敖士伟 ikmb@163.com 说明: 1.用开源的myxls生成标准的二进制excel文件; 2.前台非常简单的js和dom引用; 后台主要代码: //作者:敖士伟 ikmb@163.com protected void Page_Load(object sender, EventArgs e) { string t_data=Request.Form["t_data"].ToString().Trim(); XlsDocument doc = new XlsDocument(); doc.FileName = "Excel.xls"; Worksheet sheet = doc.Workbook.Worksheets.Add("Sheet1"); string[] trslip = new string[1]; trslip[0] = "trslip"; string[] tdslip = new string[1]; tdslip[0] = "tdslip"; string[] trs = t_data.Trim().Split(trslip, StringSplitOptions.RemoveEmptyEntries); Cell cell = null; for (int i = 0; i < trs.Length; i++) { string[] tds = trs[i].Split(tdslip, StringSplitOptions.RemoveEmptyEntries); for (int j = 0; j < tds.Length; j++) { tds[j] = tds[j].Trim().Replace(" ", "").Replace("nbsp;", "").Replace("&",""); if (IsNumber(tds[j])) { cell = sheet.Cells.Add((i + 1), (j + 1), Convert.ToDouble(tds[j])); } else { cell = sheet.Cells.Add((i + 1), (j + 1), tds[j]); } if (i == 0) { cell.Font.Weight = FontWeight.Bold; } } } doc.Send(); } /// <summary> /// 判读字符串是否为数值型。可以代正负号(+-) /// </summary> /// <param name="strNumber">字符串</param> /// <returns>是否</returns> public static bool IsNumber(string strNumber) { System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(@"^[+-]?/d+(/.)?/d*$"); return r.IsMatch(strNumber); } 前台代码一: //作者:敖士伟 ikmb@163.com <mce:script language="javascript" type="text/javascript" src="jquery-1.2.6.pack.js" mce_src="jquery-1.2.6.pack.js"></mce:script> <mce:script language="javascript" type="text/javascript"><!-- //反后端发送excel数据开始 function get_table_data(tid) { var t_data = ""; $("#" + tid).find("tr").each(function(i) { if ($("#" + tid).find("tr:eq(" + i + ")").find("td").length != 0) { $("#" + tid).find("tr:eq(" + i + ")").find("td").each(function(i) { t_data += $(this).text() + "tdslip"; }); } else { $("#" + tid).find("tr:eq(" + i + ")").find("th").each(function(i) { t_data += $(this).text() + "tdslip"; }); } t_data += "trslip"; }); return t_data; } function SendToExcel() { document.getElementById("ifr_data").contentWindow.document.getElementById("t_data").value = get_table_data("t1"); document.getElementById("ifr_data").contentWindow.document.getElementById("frm_data").submit(); } //反后端发送excel数据结束 // --></mce:script> <table></table>数据表 <!--发关excel Dom开始--> <iframe id="ifr_data" src="1.htm" mce_src="1.htm" style="display:none;" mce_style="display:none;"></iframe> <input type="button" value="本页导出Excel" οnclick="SendToExcel();" /> <!--发关excel Dom结束--> 前台代码二: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <form id="frm_data" action="ToExcel.aspx" method="post"> <input type="text" id="t_data" name="t_data" /> </form> </body> </html>