asp.net html table to DataTable
2020-11-16 05:27
标签:des blog http os io for 添加引用 http://htmlagilitypack.codeplex.com/downloads/get/437941 asp.net html table to DataTable,搜素材,soscw.com asp.net html table to DataTable 标签:des blog http os io for 原文地址:http://www.cnblogs.com/gxivwshjj/p/3699680.html
protected
void
Export(
string
content,
string
file)
{
HtmlDocument doc =
new
HtmlDocument();
doc.LoadHtml(content);
HtmlNode table = doc.DocumentNode.SelectSingleNode(
"//table"
);
DataTable dttable =
new
DataTable();
HtmlNode row = table.SelectSingleNode(
"//tr[@class=\"title\"]"
);
string
name =
string
.Empty;
foreach
(HtmlNode cell
in
row.SelectNodes(
"th|td"
))
{
name = cell.InnerText.Replace(
"\r\n"
,
""
).Trim();
dttable.Columns.Add(name);
// create columns from th
}
foreach
(
var
rows
in
doc.DocumentNode.SelectNodes(
"//tr[td]"
))
{
dttable.Rows.Add(rows.SelectNodes(
"td"
).Select(td => td.InnerText.Replace(
"\r\n"
,
""
).Trim()).ToArray());
}
//return dttable;
dttable.Rows.RemoveAt(0);
if
(dttable.Columns.Contains(
"操作"
))
dttable.Columns.Remove(
"操作"
);
GemBox.ExcelLite.ExcelFile ef = SaveData.DataTableToExcel(dttable);
Response.ContentType =
"application/vnd.ms-excel"
;
Response.AddHeader(
"Content-Disposition"
,
"attachment; filename="
+ file);
//string path = AppDomain.CurrentDomain.BaseDirectory + "xls_view\\" + file;
string
path =
string
.Format(
"{0}xls_report\\{1}\\{2}"
, AppDomain.CurrentDomain.BaseDirectory, GetAdmin.cid, GetAdmin.account);
if
(!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
}
path = System.IO.Path.Combine(path, file);
ef.SaveXls(path);
byte
[] data =
null
; ;
using
(System.IO.Stream str =
new
System.IO.FileStream(path, System.IO.FileMode.Open))
{
data =
new
byte
[str.Length];
str.Read(data, 0, data.Length);
}
this
.Response.OutputStream.Write(data, 0, data.Length);
}
上一篇:php url字符转义操作
下一篇:WinDump使用方法
文章标题:asp.net html table to DataTable
文章链接:http://soscw.com/essay/21610.html