表为折叠模式时,1、如果没有子行,直接导出(第一层);
2、如果第一层有子行,只导出其子行第二层,
3、如果第二层还有子行,只导出第二层其本身(也就是第三层不导出,只计算其作业金额),此时的第二层“作业金额”为合计的值(因为第二层如果有子行,则其本身和子行均有值,在第二层但显示的是合计)。
现在的代码导出没有子行第一层或第二层没有子行都没问题,在第二层有子行时,只导出了其本身的值,而不是合计值。
If dt.GridTreeVisible Then '如果处于折叠模式
For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
Dim rw As Row = dt.rows(r)
'==================选择性导出行==========================
If rw.Hierarchy=0 And rw.HasChild()=False Or rw.Hierarchy=1 Then '没有子行的第一层和第二层,直接导出
For c As Integer = 0 To nms.length -1
Sheet(idx,c).Value = rw(nms(c))
Next
idx += 1
Else
Continue For
End If
'========================================================
Next
End If
[此贴子已经被作者于2022/9/25 22:16:08编辑过]