首页 > 代码库 > asp.net html table to DataTable

asp.net html table to DataTable

添加引用

http://htmlagilitypack.codeplex.com/downloads/get/437941

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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 = http://www.mamicode.com/null; ;
        using (System.IO.Stream str = new System.IO.FileStream(path, System.IO.FileMode.Open))
        {
            data = http://www.mamicode.com/new byte[str.Length];
            str.Read(data, 0, data.Length);
        }
        this.Response.OutputStream.Write(data, 0, data.Length);
 
    }