非常感谢大力支持!
现在有一个需求需要实现,在附件中表格中(黄色的区域),当单元格数字是0的时候,删除此行。
请问如何实现?
谢谢!testtravel-out.zip (27.9 KB)
请同时压缩并附上您预期的Word文档(DOCX文件),以显示正确的最终输出,以供我们参考。 请使用MS Word创建此预期文档。 然后,我们将研究您期望的文档的结构,以了解您希望如何生成最终输出,并通过使用Aspose.Words为您提供实现相同的代码。 谢谢你的合作。
请尝试使用以下代码:
Document doc = new Document("E:\\test\\in.docx");
ArrayList list = new ArrayList();
foreach (Cell cell in doc.GetChildNodes(NodeType.Cell, true))
{
if (cell.ToString(SaveFormat.Text).Trim() == "0" &&
((Cell)cell.PreviousSibling).ToString(SaveFormat.Text).Trim() == "" &&
((Cell)cell.PreviousSibling.PreviousSibling).ToString(SaveFormat.Text).Trim() == "")
{
list.Add(cell.ParentRow);
}
}
foreach (Row row in list)
row.Remove();
doc.Save("E:\\test\\19.4.docx");
您可以在要删除的行中插入书签,并使用以下代码确定这些行:
Bookmark bm = doc.Range.Bookmarks["bm"];
Row row = (Row) bm.BookmarkStart.GetAncestor(NodeType.BookmarkStart);
if (row != null)
{
// do something
}
希望这可以帮助。
@awais.hafeez 感谢你的回复!
对不起!可能我没表述清楚。
目前我的需求是: 内容为“其他费用”的单元格里(这个单元格是合并的单元格),放上一个书签, 然后用代码判断右边的每行的单元格是不是为0,如果是0,就删除这行,以此类推。
这个问题的难点是: 在一个合并的单元格里放一个书签后,如何用代码定位右边的行及单元格,请指点。谢谢!(请看上次已经上传的test.zip)