我要实现的功能:删除word含有合并项表格中的空白单元格。
for (int tablePos = 1; tablePos <= oDoc.Tables.Count; tablePos++)
{
Microsoft.Office.Interop.Word.Table nowTable = oDoc.Tables[tablePos];
tableMessage+= string.Format("第{0}/{1}个表:<br/>", tablePos, oDoc.Tables.Count);
//Response.Write(nowTable.Rows.Count + "<br/>");
//Response.Write(nowTable.Columns.Count);
for (int rowPos = 1; rowPos <= nowTable.Rows.Count; rowPos++)
{
for (int columPos = 1; columPos <=nowTable.Columns.Count; columPos++)
{
context = nowTable.Cell(rowPos, columPos).Range.Text.Trim();
if (context != "\a")
{
context = context.Remove(context.Length - 2, 2);
if (context == "\a")
{
nowTable.Rows[rowPos].Delete();
columPos = nowTable.Columns.Count;
}
}
}
但是这个每次只能删除一行,并且还是规则的,请各位大神帮忙啊。
2 个解决方案
#1
前面你说是删除整一行,后面又要删除空白的单元格,搞不清你到底想删哪个。
假设你要删除行,如果空白的是合并的单元格,删除的是最上面,那遍历再判断是否为空操作就好了。
假设你要删除行,如果空白的是合并的单元格,删除的是最上面,那遍历再判断是否为空操作就好了。
#2
不明白你到底想实现的是什么功能,贴点数据出来呗
比如如果有一个单元格是空白的,这一行其他单元格有数据,整行都删除吗
还是整行都是空白才删除?
如果合并单元格是空的,那么所有涉及到的行都删除吗,还是只删除空白的那一行,其他行重新合并?
比如如果有一个单元格是空白的,这一行其他单元格有数据,整行都删除吗
还是整行都是空白才删除?
如果合并单元格是空的,那么所有涉及到的行都删除吗,还是只删除空白的那一行,其他行重新合并?
#1
前面你说是删除整一行,后面又要删除空白的单元格,搞不清你到底想删哪个。
假设你要删除行,如果空白的是合并的单元格,删除的是最上面,那遍历再判断是否为空操作就好了。
假设你要删除行,如果空白的是合并的单元格,删除的是最上面,那遍历再判断是否为空操作就好了。
#2
不明白你到底想实现的是什么功能,贴点数据出来呗
比如如果有一个单元格是空白的,这一行其他单元格有数据,整行都删除吗
还是整行都是空白才删除?
如果合并单元格是空的,那么所有涉及到的行都删除吗,还是只删除空白的那一行,其他行重新合并?
比如如果有一个单元格是空白的,这一行其他单元格有数据,整行都删除吗
还是整行都是空白才删除?
如果合并单元格是空的,那么所有涉及到的行都删除吗,还是只删除空白的那一行,其他行重新合并?