博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
html转pdf、html页面保存为word文件、将页面上的table表格导出为excel
阅读量:5245 次
发布时间:2019-06-14

本文共 7840 字,大约阅读时间需要 26 分钟。

1.html转pdf

using System;using System.Collections.Generic;using System.Linq;using System.Web;/// ///  HtmlToPdf 的摘要说明///  使用前需要安装事项///  安装软件见 Lib/wkhtmltox-0.12.4_msvc2015-win64.exe/// public class HtmlToPdf{    ///     /// 根据实际安装目录修改    ///     private string exePath = @"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe";    public HtmlToPdf()    {        //        // TODO: 在此处添加构造函数逻辑        //           }    public  bool ToPdf(string url,string outPdfPath)    {        try        {            string path = url + " " + outPdfPath;            //执行wkhtmltopdf.exe             System.Diagnostics.Process p = System.Diagnostics.Process.Start(exePath, path);            //若不加这一行,程序就会马上执行下一句而抓不到文件发生意外:System.IO.FileNotFoundException: 找不到文件 ''。             p.WaitForExit();            return true;        }        catch (Exception)        {                              }        return false;        //因为Web 是多线程环境,避免甲产生的文件被乙下载去,所以档名都用唯一        // string fileNameWithOutExtention = Guid.NewGuid().ToString();               }}
HtmlToPdf帮助类

使用需要下载并安装wkhtmltopdf.exe文件

HtmlToPdf pdf = new HtmlToPdf();var vl = pdf.ToPdf("要保存的url地址需要包含http://xxxxxx", "PDF要保存的文件路径+文件名称");

 2.读取html内容

///     /// 读取ht.html文件内容    ///     /// 
private string GetBidTempStrng() { StringBuilder sbHtml = new StringBuilder(); // 读取模板替换数据 var path = Server.MapPath("~/contractFile/ht.html"); using (Stream inStream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read)) using (StreamReader outStream = new StreamReader(inStream, Encoding.Default)) { while (!outStream.EndOfStream) { sbHtml.Append(outStream.ReadLine()); } } var html = sbHtml.ToString(); return html; }
读取ht.html文件内容

3. webform中将html文件保存为word文件

#region 转换为Word文档样式        //Response.ContentType = "application/msword";        Response.ContentType = "application/msword";        //Response.Write(Encoding.UTF8.GetBytes(sb.ToString()));        string fileName = "xxx.doc";//客户端保存的文件名        string filePath = Server.MapPath("~/contractFile/ht.html");//路径        //以字符流的形式下载文件        FileStream fs = new FileStream(filePath, FileMode.Open);        byte[] bytes = new byte[(int)fs.Length];        fs.Read(bytes, 0, bytes.Length);        fs.Close();        //Response.ContentType = "application/octet-stream";        //通知浏览器下载文件而不是打开        Response.AddHeader("Content-Disposition", "attachment;  filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));        Response.BinaryWrite(bytes);        Response.Flush();        Response.End();        #endregion
region 转换为Word文档样式

4.ie中将文件保存为word

js指定页面区域内容导入Word
    

政府采购合同

合同编号:(自动抓取项目编号)@xmbh@

采购人(甲方):@cgr@(自动抓取)

供应商(乙方):@gys@ (自动抓取)

根据《中华人民共和国政府采购法》、《中华人民共和国合同法》及@xmmc@(自动抓取)采购项目(项目编号:@xmbh@自动抓取)的《竞价文件》、乙方的《报价资料》及《成交通知书》,甲、乙双方同意签订本合同。双方同意共同遵守如下条款:

一、合同货物(系统自动抓取)

货物品名 规格型号 详细技术参数 单位 数量 单价 总价(万元)
小火车 001 详细技术参数 1 120 0.00120(万元)
小火车 001 详细技术参数 1 120 0.00120(万元)
合计 xxxx元(大写)

二、合同总价

html 实例

 5.html table导出excel

var idTmr;function ExportToExcel(tableid) {    if (getExplorer() == 'ie') {        var curTbl = document.getElementById(tableid);        var oXL;        try {            oXL = new ActiveXObject("Excel.Application"); //创建AX对象excel          } catch (e) {            alert("无法启动Excel!\n\n如果您确信您的电脑中已经安装了Excel," + "那么请调整IE的安全级别。\n\n具体操作:\n\n" + "工具 → Internet选项 → 安全 → 自定义级别 → 对没有标记为安全的ActiveX进行初始化和脚本运行 → 启用");            return false;        }        var oWB = oXL.Workbooks.Add();        var xlsheet = oWB.Worksheets(1);        var sel = document.body.createTextRange();        sel.moveToElementText(curTbl);        sel.select();        sel.execCommand("Copy");        xlsheet.Paste();        oXL.Visible = true;        try {            var fname = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls");        } catch (e) {            print("Nested catch caught " + e);        } finally {            oWB.SaveAs(fname);            oWB.Close(savechanges = false);            oXL.Quit();            oXL = null;            idTmr = window.setInterval("Cleanup();", 1);        }    }    else {        tableToExcel(tableid)    }}//获取浏览器种类function getExplorer() {    var explorer = window.navigator.userAgent;    //ie      if (explorer.indexOf("MSIE") >= 0) {        return 'ie';    }        //firefox      else if (explorer.indexOf("Firefox") >= 0) {        return 'Firefox';    }        //Chrome      else if (explorer.indexOf("Chrome") >= 0) {        return 'Chrome';    }        //Opera      else if (explorer.indexOf("Opera") >= 0) {        return 'Opera';    }        //Safari      else if (explorer.indexOf("Safari") >= 0) {        return 'Safari';    }}function Cleanup() {    window.clearInterval(idTmr);    CollectGarbage();}//导出Excelvar tableToExcel = (function () {    var uri = 'data:application/vnd.ms-excel;base64,',            template = '
{table}
', base64 = function (s) { return window.btoa(unescape(encodeURIComponent(s))) }, format = function (s, c) { return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; }) } return function (table, name) { if (!table.nodeType) table = document.getElementById(table) var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML } window.location.href = uri + base64(format(template, ctx)) }})()
HtmlTableToExcel.js
导出excel
序号 采购项目名称 上报时间 项目时间 提交时间 上报人员 提交人员 错误原因
html
jQuery("#Excel").click(function () {      ExportToExcel("details");});
js

 

转载于:https://www.cnblogs.com/lovable/p/9186957.html

你可能感兴趣的文章
Java基础教程——网络基础知识
查看>>
Kruskal基础最小生成树
查看>>
浅谈算法和数据结构: 一 栈和队列
查看>>
Java内部类详解
查看>>
【hdu 1429】胜利大逃亡(续)
查看>>
图论-次短路求法
查看>>
What's New for Visual C# 6.0
查看>>
ExtJs学习笔记之ComboBox组件
查看>>
关于收费软件
查看>>
getopt_long
查看>>
TensorFlow MNIST CNN 代码
查看>>
javascript之Style物
查看>>
JSON跨域解决方案收集
查看>>
SSH框架整合总结
查看>>
图的深度优先遍历
查看>>
C# 之 提高WebService性能大数据量网络传输处理
查看>>
md5sum命令详解
查看>>
[bzoj1004] [HNOI2008] Cards
查看>>
原生HttpClient详细使用示例
查看>>
几道面试题
查看>>