html导入到excel或word中的实现代码

发布时间:2020-06-29编辑:脚本学堂
本文介绍下,将html内容导入到excel或word中的代码,有需要的朋友参考下吧。

1,通过js实现,在页面的前台调用微软office的com组件,要求用户必须安装office,启动automation服务,并且在浏览器中启用未注册的activex选项.
 

复制代码 代码示例:

function importToExcel(tableid) {
    var curTbl = document.getElementById(tableid);
    try {
       var oXL = new ActiveXObject("Excel.Application");
    }
    catch (e) {
alert("请安装微软Excel并且在浏览器的安全级别中启用‘对未标记为安全执行脚本的ActiveX控件初始化并执行脚本’的安全选项");
return;
    }
    var oWB = oXL.Workbooks.Add();
    var oSheet = oWB.ActiveSheet;

    var sel = document.body.createTextRange();
    sel.moveToElementText(curTbl);
    sel.select();
    sel.execCommand("Copy");

    oSheet.Paste();
    oXL.Visible = true;
}

function importToWord(tableid) {
    var curTbl = document.getElementById(tableid);
    try {
var oWD = new ActiveXObject("Word.Application");
    } catch (e) {
alert("请安装微软Word并且在浏览器的安全级别中启用‘对未标记为安全执行脚本的ActiveX控件初始化并执行脚本’的安全选项");
return;
    }
    var oDC = oWD.Documents.Add("", 0, 1);
    var oRange = oDC.Range(0, 1);

    var sel = document.body.createTextRange();
    sel.moveToElementText(curTbl);
    sel.select();
    sel.execCommand("Copy");

    oRange.Paste();
    oWD.Application.Visible = true;

 

2,服务器端实现
服务器端需要安装office,客户端不需要安装office,将需要保存的文本,以流的形式输出到页面,然后保存为指定的文件类型。
 

复制代码 代码示例:
/// <summary>
/// 将html导出excel
/// </summary>
/// <param name="content">html内容</param>
/// <param name="FileName">导出时的默认文件名</param>
public void ExportToExcel(string content, string FileName)
{
var resp = this.Response;
string filenames = HttpUtility.UrlEncode(FileName + DateTime.Now.ToString("yyyy-MM-dd"), Encoding.UTF8) + ".xls";
Dictionary<string, string> cols = new Dictionary<string, string>();
//设定导出文件的格式
resp.ContentType = "application/vnd.ms-excel";
//by www.jb200.com
//设定编码方式
//resp.Charset = "gb2312";
resp.ContentEncoding = System.Text.Encoding.UTF7;
//关闭ViewState
EnableViewState = false;
//把HTML写回浏览器
resp.AppendHeader("Content-Disposition", "attachment;filename=" + filenames);
resp.Write(content);
}