有如下一个大字符串:
<div>\r\n\t<table class=\"datatable3\" cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"gvResult\" style=\"width:100%;border-collapse:collapse;\">\r\n\t\t
<tr>\r\n\t\t\t<th scope=\"col\">F_ID</th>
<th scope=\"col\">F_Name</th>\r\n\t\t</tr><tr>\r\n\t\t\t
<td>4</td>
<td>金线(女娲补天_维护)</td>\r\n\t\t
</tr><tr style=\"background-color:#F4F9FD;\">\r\n\t\t\t
<td>5</td>
<td>金线(女娲补天)</td>\r\n\t\t
</tr><tr>\r\n\t\t\t
<td>8</td>
<td>木线(女娲补天)</td>\r\n\t\t
</tr><tr style=\"background-color:#F4F9FD;\">\r\n\t\t\t
<td>9</td>
<td>木线(女娲补天_维护)</td>\r\n\t\t
</tr><tr>\r\n\t\t\t
<td>10</td>
<td>水线(女娲补天)</td>\r\n\t\t
</tr>\r\n\t
</table>\r\n
</div>如何把这个大字符串转化,并存入一个dataset或者datatable主要是导出Excel用,想导出当前页的内容,所以想把当前页的html文本转化成一个dataset,这样我就可以直接导出了
<div>\r\n\t<table class=\"datatable3\" cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"gvResult\" style=\"width:100%;border-collapse:collapse;\">\r\n\t\t
<tr>\r\n\t\t\t<th scope=\"col\">F_ID</th>
<th scope=\"col\">F_Name</th>\r\n\t\t</tr><tr>\r\n\t\t\t
<td>4</td>
<td>金线(女娲补天_维护)</td>\r\n\t\t
</tr><tr style=\"background-color:#F4F9FD;\">\r\n\t\t\t
<td>5</td>
<td>金线(女娲补天)</td>\r\n\t\t
</tr><tr>\r\n\t\t\t
<td>8</td>
<td>木线(女娲补天)</td>\r\n\t\t
</tr><tr style=\"background-color:#F4F9FD;\">\r\n\t\t\t
<td>9</td>
<td>木线(女娲补天_维护)</td>\r\n\t\t
</tr><tr>\r\n\t\t\t
<td>10</td>
<td>水线(女娲补天)</td>\r\n\t\t
</tr>\r\n\t
</table>\r\n
</div>如何把这个大字符串转化,并存入一个dataset或者datatable主要是导出Excel用,想导出当前页的内容,所以想把当前页的html文本转化成一个dataset,这样我就可以直接导出了
//检索浏览器
if (navigator.userAgent.indexOf("MSIE") < 0) {
alert('请用ie浏览器进行表格导出');
return;
} var curTbl = document.getElementById(tableid);
var oXL = null;
try {
oXL = GetObject("", "Excel.Application");
}
catch (E) {
try {
oXL = new ActiveXObject("Excel.Application");
}
catch (E2) {
alert("导出Excel失败!");
return;
}
} //创建AX对象excel
var oWB = oXL.Workbooks.Add();
//获取workbook对象
var oSheet = oWB.ActiveSheet;
//在此进行样式控制
oSheet.Rows(1 + ":" + 1).RowHeight = 20; //定义行高
oSheet.Rows(2 + ":" + 2).RowHeight = 20;
//定义列宽
oSheet.Columns('A:A').ColumnWidth = 15;
oSheet.Columns('B:B').ColumnWidth = 20;
oSheet.Columns('C:C').ColumnWidth = 10;
oSheet.Columns('D:D').ColumnWidth = 15;
oSheet.Columns('E:E').ColumnWidth = 10;
oSheet.Columns('F:F').ColumnWidth = 10;
oSheet.Columns('G:G').ColumnWidth = 20;
oSheet.Columns('H:H').ColumnWidth = 15;
oSheet.Columns('I:I').ColumnWidth = 15;
oSheet.Columns('J:J').ColumnWidth = 10;
oSheet.Columns('K:K').ColumnWidth = 10;
oSheet.Columns('L:L').ColumnWidth = 15; //oSheet.Rows(1).HorizontalAlignment = 3; var sel = document.body.createTextRange(); //激活当前sheet
sel.moveToElementText(curTbl); //把表格中的内容移到TextRange中
sel.select(); //全选TextRange中内容
sel.execCommand("Copy"); //复制TextRange中内容
oSheet.Paste(); //粘贴到活动的EXCEL中
oXL.Visible = true; //设置excel可见属性 //oSheet.Application.Quit(); //结束当前进程
} 或者用RenderControl方法把生成的HTML输出为Excel格式:protected void ToExcel(DataTable dt)
{
try
{
DataGrid dgExport = null;
HttpContext curContext = System.Web.HttpContext.Current;
StringWriter strWriter = null;
HtmlTextWriter htmlWriter = null; if (dt!= null)
{
// 设置编码和附件格式
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.UTF8;
curContext.Response.Charset = ""; // 导出excel文件
strWriter = new System.IO.StringWriter();
htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter); dgExport = new System.Web.UI.WebControls.DataGrid();
dgExport.DataSource = dt.DefaultView;
dgExport.DataBind(); // 返回客户端
dgExport.RenderControl(htmlWriter);
curContext.Response.Write(strWriter.ToString());
curContext.Response.End();
}
}
catch (Exception ex)
{
ClientScript.RegisterStartupScript(typeof(Page), "Error", "<script>alert(\"导出Excel时遇到错误。错误信息:\\n\\n" + ex.Message.Replace("\r\n", "") + "\");</script>");
}
}
前台HTML:<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" />
</div>
<div>
<table id="table1" runat="server">
<tr>
<td>id</td>
<td>name</td>
</tr>
<tr>
<td>1</td>
<td>aaa</td>
</tr>
<tr>
<td>2</td>
<td>bbb</td>
</tr>
</table>
</div>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="转换成DataTable并绑定到GridView" />
</form>
</body>后台cs:protected void Button1_Click(object sender, EventArgs e)
{
//把第一行作为标题列
if (table1.Rows.Count == 0) return;
DataTable dt = new DataTable();
foreach (HtmlTableCell cell in table1.Rows[0].Cells)
{
dt.Columns.Add(new DataColumn(cell.InnerText));
}
//把第二行以后的作为数据行
for (int i=1; i < table1.Rows.Count; i++)
{
DataRow newRow=dt.NewRow();
for (int j=0; j < table1.Rows[i].Cells.Count; j++)
{
newRow[j] = table1.Rows[i].Cells[j].InnerText;
}
dt.Rows.Add(newRow);
} //绑定GridView
this.GridView1.DataSource = dt.DefaultView;
this.GridView1.DataBind();
}