- 字体大小、颜色不变,插入的线条,页面不变。
- 替换的结果保存到新建word文件内,不改变原有word文件。
该回答引用ChatGPT
代码如下,如果运行报错,或者不懂的可以回复我
using System;
using System.IO;
using Microsoft.Office.Interop.Word;
namespace WordReplace
{
class Program
{
static void Main(string[] args)
{
string inputFileName = @"C:\input.docx";
string outputFileName = @"C:\output.docx";
string searchText = "替换文本"; // 要替换的文本
string lineText = "插入线条"; // 插入的带有线条的文本
// 创建 Word 应用程序对象
Application app = new Application();
// 打开文档
Document doc = app.Documents.Open(inputFileName);
// 遍历文档中的所有段落
foreach (Paragraph para in doc.Paragraphs)
{
// 在段落中查找要替换的文本
int found = para.Range.Text.IndexOf(searchText);
while (found >= 0)
{
// 获取要替换文本的位置
Range range = para.Range;
range.Start = found + para.Range.Start;
range.End = range.Start + searchText.Length;
// 插入带有线条的文本
range.Text = lineText;
// 格式化新文本
range.Font.Size = para.Range.Font.Size;
range.Font.Color = para.Range.Font.Color;
range.Borders.InsideLineStyle = WdLineStyle.wdLineStyleSingle;
range.Borders.OutsideLineStyle = WdLineStyle.wdLineStyleSingle;
// 继续查找下一个要替换的文本
found = para.Range.Text.IndexOf(searchText, found + 1);
}
}
// 保存文档为新文件
doc.SaveAs2(outputFileName);
// 关闭文档和 Word 应用程序对象
doc.Close();
app.Quit();
}
}
}