word 域值替换 带html格式的怎样替换呢?

hengyan 2012-12-26 04:41:28
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>网页上内容导出到word</title>
</head>
<body>
<input type='button' name='button_export' title='导出到word' onclick='OpenWord()' value='下载到word'>
<input type="hidden" id="hid1" value="<table style='background-color:Yellow;'><tr><td>第一行第一列</td><td>第一行第二列</td></tr><tr><td>第二行第一列</td><td>第二行第二列</td></tr></table>" />
</body>
</html>
<script language="javascript">
//去掉首尾空格
function String.prototype.Trim() {
return this.replace(/(^\s*)|(\s*$)/g, "");
}
function OpenWord() {
var word = null;
try {
word = new ActiveXObject('Word.Application');
}
catch (e) {
if (word != null) word.Quit();
alert("无法调用Office对象,请确保您的机器已安装了Office并已将IE安全级别降低!如:当前站加入受信任站点并安全级别为低!");
return;
}
try {
word.visible = true;
//获取模板路径
var dotpath = "temp.doc";
var doc = word.documents.open(dotpath);
var fields = word.ActiveDocument.Fields; //所有域
var iFieldsCount = fields.Count; //域个数
var fieldsName = ""; //域名

var FieldValue = "";
debugger;
for (var i = 0; i < iFieldsCount; i++) {
fieldsName = fields.Item(i + 1).Code.Text; //域名
fieldsName = fieldsName.replace("\\* MERGEFORMAT", "").replace("MERGEFIELD", "").Trim().replace(/\"/g, ""); //得到真正的域名
//域赋值
if (fieldsName == "$N$mContent") {
fields.Item(i + 1).Result.Text = document.getElementById("hid1").value;
}
else {
fields.Item(i + 1).Result.Text = "标题";
}
}
word.Application.Activate();
}
catch (e) {
if (word != null) word.Quit();
alert('程序异常:' + e.message);
return;
}
}
</script>

上面是代码,存为文件后可以直接打开,需要在路径位置创建一个temp.doc的模板文档,其中有一个名字为$N$mContent的域

我想实现的是当域名为$N$mContent时,用hid1的value替换$N$mContent hid1的值并不限制于表格,可能有更复杂的格式。现在的情况是 替换后,是直接把<table.....</table>给输出来,我想要的效果是直接输出表格。

项目中的情况是,hid1的value是从数据库中读取,而值保存是从网页上嵌套的web编辑器中获取的。所以格式比较复杂。请问能实现吗?
...全文
205 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hengyan 2012-12-27
  • 打赏
  • 举报
回复
up???????????

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧