c#word文档怎么替换文字

如题所述

public partial class WebForm3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ReplaceToExcel();
}
/// <summary>
/// 替换word中的文本,并导出word
/// </summary>
protected void ReplaceToExcel()
{

Word.Application app = null;
Word.Document doc = null;
//将要导出的新word文件名
string newFile = DateTime.Now.ToString("yyyyMMddHHmmssss") + ".doc";
string physicNewFile = Server.MapPath(DateTime.Now.ToString("yyyyMMddHHmmssss") + ".doc");
try
{
app = new Word.Application();//创建word应用程序
object fileName = Server.MapPath("template.doc");//模板文件
//打开模板文件
object oMissing = System.Reflection.Missing.Value;
doc = app.Documents.Open(ref fileName,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

//构造数据
Dictionary<string, string> datas = new Dictionary<string, string>();
datas.Add("{name}", "张三");
datas.Add("{sex}", "男");
datas.Add("{provinve}", "浙江");
datas.Add("{address}", "浙江省杭州市");
datas.Add("{education}", "本科");
datas.Add("{telephone}", "12345678");
datas.Add("{cardno}", "123456789012345678");

object replace = Word.WdReplace.wdReplaceAll;
foreach (var item in datas)
{
app.Selection.Find.Replacement.ClearFormatting();
app.Selection.Find.ClearFormatting();
app.Selection.Find.Text = item.Key;//需要被替换的文本
app.Selection.Find.Replacement.Text = item.value;//替换文本

//执行替换操作
app.Selection.Find.Execute(
ref oMissing, ref oMissing,
ref oMissing, ref oMissing,
ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref replace,
ref oMissing, ref oMissing,
ref oMissing, ref oMissing);
}

//对替换好的word模板另存为一个新的word文档
doc.SaveAs(physicNewFile,
oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing,
oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);

//准备导出word
Response.Clear();
Response.Buffer = true;
Response.Charset = "utf-8";
Response.AddHeader("Content-Disposition", "attachment;filename=" + DateTime.Now.ToString("yyyyMMddHHmmssss") + ".doc");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
Response.ContentType = "application/ms-word";
Response.End();
}
catch (System.Threading.ThreadAbortException ex)
{
//这边为了捕获Response.End引起的异常
}
catch (Exception ex)
{

}
finally
{
if (doc != null)
{
doc.Close();//关闭word文档
}
if (app != null)
{
app.Quit();//退出word应用程序
}
//如果文件存在则输出到客户端
if (File.Exists(physicNewFile))
{
Response.WriteFile(physicNewFile);
}
}
}
}
温馨提示:内容为网友见解,仅供参考
无其他回答

c#word文档怎么替换文字
\/\/\/ 替换word中的文本,并导出word \/\/\/ protected void ReplaceToExcel(){ Word.Application app = null;Word.Document doc = null;\/\/将要导出的新word文件名 string newFile = DateTime.Now.ToString("yyyyMMddHHmmssss") + ".doc";string physicNewFile = Server.MapPath(DateTime.Now.ToString...

C#word文档里正常的文字替换功能已实现,但是word文本框里的文字替换却...
在word中有个工具-选项-编辑-将键入内容替换所选内容 框内打上√就行了

c# 如何替换指定行中的内容
查找到文件中的这一行 获得的字符串 。replace(“newword”,“oldword”)

...C# 调用WORD多页 如何 "替换" 每一页第一行的文本内容?
\/\/处理bug : 只处理一页的文档,多页文档不可处理 object unit;unit = Microsoft.Office.Interop.Word.WdUnits.wdStory;app.Selection.HomeKey(ref unit, ref nullobj);object objReplace = Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll;app.Selection.Find.Execute(ref nullobj, ref nullo...

C#打印WORD中的电子签名问题
用字符串替换方法Word.Selection.Find.Execute(),直接ReplaceAll。此处的重点在于:替换文字为“^c”。“^c”的意思就是让Word以剪贴板中的内容替换“查找内容”框中的内容。参考帮助内容:要将图形对象或者其他非文本项指定为替换内容,可将这些项置于剪贴板上,然后将 ReplaceWith 指定为“^c”。

用C#在Word文档中搜索文本
在word应用程序中搜索和替换文本是举手之劳的事情 通过word的对象模型 我们也可以使用编程方式来实现 Word的对象模型有比较详细的帮助文档 放在 Office 安装程序目录 office 是在Program Files\\Microsoft Office\\OFFICE \\ 下 文档本身是为VBA提供的 在这个目录下还可以看到所有的office应用程序的VBA帮助 打开...

用c#如何去掉word文档中的换行
1、如果你想做的很彻底,那需要了解word文档格式,而有些word文档格式是不公开的,比如wps兼容word文档,就会下功夫分析文件结构。但word97文档格式似乎已经公开。好象从2007后,word文档开始采用类似于xml的文档格式,这种文档格式是公开的,你可以尝试修改其文档去实现去掉空格。2、利用word提供的接口实现。

C#中word数据替换-导出-并合并
VS调用OFFICE的COM+组件就可以操作WORD了,至于你怎么合并数据,就看你具体业务需求了 按照你想要“合并”的方式逐行写进WORD里面就行了,具体怎么写你百度看看就好了

...里面的一些东西替换掉再生成一个新的WORD文档怎么做。谁那最好有源...
public string ReadTemp(string tempPath){ string ModelTemp = HttpContext.Current.Server.MapPath(tempPath); \/\/ 读取模板文件 string str = "";Encoding encoding = Encoding.GetEncoding("gb2312");StreamReader sr = null;try { sr = new StreamReader(ModelTemp, encoding);str = sr....

...总是会选中一个字符 类似于word中的修订状态 如何解决?
你估计不小心按了Insert按钮,变成了覆盖状态了,再按一下Insert按钮,就是Home键左边那个,就变回插入状态了

相似回答