asp.net html table to DataTable

添加引用

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

 

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);

    }

  

转载于:https://www.cnblogs.com/gxivwshjj/p/3699680.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值