html导入到excel或word中的实现代码
本文导语: 1,通过js实现,在页面的前台调用微软office的com组件,要求用户必须安装office,启动automation服务,并且在浏览器中启用未注册的activex选项. 代码示例: function importToExcel(tableid) { var curTbl = document.getElementById(tableid); ...
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,将需要保存的文本,以流的形式输出到页面,然后保存为指定的文件类型。
/// 将html导出Excel
///
/// html内容
/// 导出时的默认文件名
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 cols = new Dictionary();
//设定导出文件的格式
resp.ContentType = "application/vnd.ms-excel";
//by www.
//设定编码方式
//resp.Charset = "gb2312";
resp.ContentEncoding = System.Text.Encoding.UTF7;
//关闭ViewState
EnableViewState = false;
//把HTML写回浏览器
resp.AppendHeader("Content-Disposition", "attachment;filename=" + filenames);
resp.Write(content);
}