如何使用Qt删除单词中的表行

How to delete table rows in word using Qt

本文关键字:单词中 删除 何使用 Qt      更新时间:2023-10-16

我想使用 QAxobject 删除文档文件中的一些表行,如下所示:

QAxObject* range_delete = table->querySubObject("Rows(int)", 6);
if (range_delete) {
range_delete->dynamicCall("Delete()");
}

但它不起作用,range_delete总是得到 Null。 那么,我怎样才能以正确的方式做到这一点呢? 然后如果行数大于 1 怎么办?

我找到了解决这个问题的方法。 我发现当表中有垂直合并的单元格时,无法选择单个行,因此range_delete总是得到null。然后,我选择其他方式来选择要删除的行。 代码:

//step one ,select the cell that the row contains
QAxObject* cells = table_object->querySubObject("Cell(int,int)", i, 1);
//step two, get the row
QAxObject* range = cells->querySubObject("Range");
QAxObject* row = range_a->querySubObject("Rows"); 
//step three, delete it
row->dynamiCall("Delete()");

终于,它奏效了。 PS:所有这些都是关于Doc文件中的表格。