我需要对 word 文档中的字符串进行简单的搜索和替换。我认为这很容易,但事实并非如此(至少对我而言)
查看这段代码(它需要一个流,打开文档的不同部分,搜索字符串,然后替换它)。
问题是只保存 MainDocumentPart 和 FooterPart 中的内容。HeaderPart 未保存。奇怪的...
public static void ProcessDocument(Dictionary<string, string> properties, Stream fs)
{
using (WordprocessingDocument doc = WordprocessingDocument.Open(fs, true))
{
string docText = null;
using (StreamReader sr = new StreamReader(doc.MainDocumentPart.GetStream()))
{
docText = sr.ReadToEnd();
}
docText = DoTheReplace(properties, docText);
using (StreamWriter sw = new StreamWriter(doc.MainDocumentPart.GetStream(FileMode.Create)))
{
sw.Write(docText);
}
foreach (FooterPart footer in doc.MainDocumentPart.FooterParts)
{
string footerText = null;
using (StreamReader sr = new StreamReader(footer.GetStream()))
{
footerText = sr.ReadToEnd();
}
footerText = DoTheReplace(properties, footerText);
using (StreamWriter sw = new StreamWriter(footer.GetStream(FileMode.Create)))
{
sw.Write(footerText);
}
}
foreach (HeaderPart header in doc.MainDocumentPart.HeaderParts)
{
string headerText = null;
using (StreamReader sr = new StreamReader(header.GetStream()))
{
headerText = sr.ReadToEnd();
}
headerText = DoTheReplace(properties, headerText);
using (StreamWriter sw = new StreamWriter(header.GetStream(FileMode.Create)))
{
sw.Write(headerText);
}
}
}
}
是的,如果有更简单的方法来替换 word 文档中的字符串,请告诉我。
谢谢你的帮助
拉尔西