gpt4 book ai didi

c# - 使用 OpenXML SDK 将 docx 文件中的文本替换为换行符(换行符)

转载 作者:行者123 更新时间:2023-11-30 16:10:11 25 4
gpt4 key购买 nike

我正在尝试使用 C# 将整个 DOCX 文件中的特定文本字符串替换为换行符(换行符)。

我正在搜索的文本字符串可能在文件中的段落或表格中。

我目前正在使用下面的代码来替换文本。

using (WordprocessingDocument doc = WordprocessingDocument.Open("yourdoc.docx", true))
{
var body = doc.MainDocumentPart.Document.Body;

foreach (var text in body.Descendants<Text>())
{
if (text.Text.Contains("##Text1##"))
{
text.Text = text.Text.Replace("##Text1##", Environment.NewLine);
}
}
}

问题:当我运行此代码时,输​​出的 DOCX 文件将文本替换为空格(即“”)而不是换行符。

如何更改此代码以使其正常工作?

最佳答案

尝试使用 break .检查此链接上的示例。你只需要附加一个 Break

段落、智能标签、超链接都在里面Run .所以也许你可以试试这个 approach .要更改表格内的文本,您必须使用此 approach .同样,文本始终位于 Run 中。

如果你说替换只是替换一个空字符串,我会试试这个:

using (WordprocessingDocument doc =
WordprocessingDocument.Open(@"yourpath\testdocument.docx", true))
{
var body = doc.MainDocumentPart.Document.Body;
var paras = body.Elements<Paragraph>();

foreach (var para in paras)
{
foreach (var run in para.Elements<Run>())
{
foreach (var text in run.Elements<Text>())
{
if (text.Text.Contains("text-to-replace"))
{
text.Text = text.Text.Replace("text-to-replace", "");
run.AppendChild(new Break());
}
}
}
}
}

关于c# - 使用 OpenXML SDK 将 docx 文件中的文本替换为换行符(换行符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26307691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com