kunyu
October 10, 2024, 1:23am
1
比如我想删除下文中的第四段的第四小节,每次返回的都是一行的内容,我需要的是返回标题和下面的正文及图表等
四、健康管理情况
(1)高血压健康管理情况
2024年高血压人数100人。
(2)糖尿病健康管理情况
2024年糖尿病人数100人。
(3)新冠人群健康管理情况
2024年新冠人数100人。
(4)三高人数健康管理情况
2024年三高人数100人。
foreach (Paragraph para in _doc.GetChildNodes(NodeType.Paragraph,true))
{
Debug.WriteLine(para.GetText());
if (para.GetText().Contains("三高共管"))
{
para.Remove();
}
}
@kunyu
要删除文档中的特定段落,您可以使用 Aspose.Words 提供的 API。根据您的需求,您想要删除第四段的第四小节,并且希望能够返回该段落的标题及其下方的正文和图表等内容。
以下是一个示例代码,展示如何实现这一点:
using System;
using Aspose.Words;
class Program
{
static void Main()
{
// 加载文档
Document doc = new Document("您的文档路径.docx");
// 获取所有段落
NodeCollection paragraphs = doc.GetChildNodes(NodeType.Paragraph, true);
// 假设您知道要删除的段落的索引
int targetParagraphIndex = 3; // 第四段的索引是3(从0开始计数)
// 检查目标段落是否存在
if (targetParagraphIndex < paragraphs.Count)
{
Paragraph targetParagraph = (Paragraph)paragraphs[targetParagraphIndex];
// 输出目标段落的文本
Console.WriteLine("要删除的段落内容: " + targetParagraph.GetText());
// 删除目标段落
targetParagraph.Remove();
}
// 保存修改后的文档
doc.Save("修改后的文档路径.docx");
}
}
在这个示例中,我们首先加载文档并获取所有段落。然后,我们通过索引找到目标段落,并在删除之前输出其内容。最后,保存修改后的文档。
请根据您的具体需求调整代码,例如处理标题和图表的逻辑。如果您需要进一步的帮助,请随时询问!
kunyu
October 10, 2024, 1:41am
3
如果不知道段落所在的索引呢,文档内容并不是固定的,标题是固定的,能否通过标题删除正文内容
@kunyu 要删除内容,您需要知道开始和结束节点。例如,可以是标题样式的下一个段落。您可以使用以下代码作为示例:
Document doc = new Document("input.docx");
Node startPara = doc.GetChildNodes(NodeType.Paragraph, true)
.OfType<Paragraph>()
.FirstOrDefault(p => p.GetText().Contains("三高共管") && p.ParagraphFormat.IsHeading);
Node endPara = startPara.NextSibling;
while (endPara != null)
{
if (endPara is Paragraph paragraph && paragraph.ParagraphFormat.IsHeading)
break;
endPara = endPara.NextSibling;
}
Section parentSection = (Section)startPara.GetAncestor(NodeType.Section);
// 获取区域中的所有节点。
NodeCollection nodes = parentSection.Body.GetChildNodes(NodeType.Any, true);
// 查找段首和段尾的索引。
int startIndex = nodes.IndexOf(startPara);
int endIndex = nodes.IndexOf(endPara);
// 删除开始段落和结束段落之间的所有节点。
for (int i = endIndex - 1; i > startIndex; i--)
{
nodes.RemoveAt(i);
}
doc.Save("output.docx");
kunyu
October 11, 2024, 8:28am
5
好的,谢谢 ,还有个问题
获取到文档里面的图表后再往图表里赋值后,在打开文件去选择图表区编辑数据会提示链接文件不可用。我也尝试了在代码里去添加图标,生成的文件去编辑图表的的时候依然会提示这个问题,这个问题有解决方案吗?我想在生成后的文档里去编辑修改数据
@kunyu 遗憾的是,目前还不支持编辑数据。该功能请求已记录在我们的缺陷跟踪系统中,编号为 WORDSNET-12092 。我们将随时更新,一旦实现或有更多信息,我们将通知您。