我正在从任何视图编写excel导出。有许多样本可用于“普通视图”。只要我有一个带有静态值的列的视图就会被跳过。
我有一个包含4列的视图,1,3和4链接到文档上的字段,第2列只是数字2.(我尝试过“2”和2)(这是测试视图)< / p>
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”
我无法发布截图,这是我的第一个帖子,但它显示entry.columnvalues包含3个值,但条目的parent.columns(Notesviewcolumn())显示4个列名...
如何读取视图中显示的所有值,包括基础文档中不存在的值?
谢谢。
答案 0 :(得分:1)
文档告诉entry.ColumnValues
如果由以下内容确定,则不会返回列值:
- 包含仅限UI功能的公式,例如@IsExpandable或@DocNumber。
- 一个常数。
根据Dmytro Pastovenskyi的blog,您可以使用ColumnValuesIndex
来识别列是常量还是包含仅UI功能的公式。
仅导出ColumnValuesIndex
&gt; = 0:
ForAll n In view.Columns
If n.ColumnValuesIndex >= 0 Then
cNames(columnTotal) = n.title
columnTotal = columnTotal + 1
End If
End ForAll