2

我正在从任何角度编写导出到 excel 的内容。有许多可用的示例,并且适用于“正常视图”。只要我有一个带有静态值的列的视图,它就会被跳过。

我有一个 4 列的视图,1,3 和 4 链接到文档上的字段,第 2 列只是数字 2。(我尝试过“2”和 2)(这是一个测试视图)

C1 | V2 | C3 | C4 柱

1 | 2 | 3 | 4 个值

'这将获得所有 4 个列名

ForAll n In view.Columns

        cNames(columnTotal) = n.title

        columnTotal = columnTotal + 1   

End ForAll

'结果

'cName(0) = "C1"

'cName(0) = "V2"

'cName(0) = "C3"

'cName(0) = "C4"

'这只会得到 3 列值

Set nav = view.createviewnav

Set entry = nav.Getfirst()

While Not entry Is Nothing

    ForAll c In view.Columns

        readvalue = entry.Columnvalues(columncounter-1)

    End ForAll

Wend    

'结果

'entry.columnvalues(0) = "1"

'entry.columnvalues(1) = "3"

'entry.columnvalues(2) = "4"

我无法发布屏幕截图,这是我的第 1 次发布,但它显示 entry.columnvalues 包含 3 个值,但条目的 parent.columns(Notesviewcolumn()) 显示 4 个列名...

如何读取视图中显示的所有值,包括基础文档中不存在的值?

谢谢你。

4

1 回答 1

1

文档告诉entry.ColumnValues

如果由以下条件确定,则不返回列值:

  • 包含仅 UI 函数的公式,例如 @IsExpandable 或 @DocNumber。
  • 一个常数。

根据 Dmytro Pastovenskyi 的博客,您可以使用ColumnValuesIndex它来识别列是常量还是包含仅 UI 函数的公式。

仅导出ColumnValuesIndex>= 0 的列:

ForAll n In view.Columns
    If n.ColumnValuesIndex >= 0 Then
        cNames(columnTotal) = n.title
        columnTotal = columnTotal + 1   
    End If    
End ForAll
于 2015-07-10T13:39:16.840 回答