我在Visual Basic for Excel 2010中实现了使用QueryTables通过REST从MySQL数据库中检索数据,如下所示:
Sub RESTRequest()
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;https://xxxx.xxxx.xxxx.xx/rest/projects/all", _
Destination:=Range("A10"))
.BackgroundQuery = False
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SaveData = True
End With
End Sub
数据库日志文件显示发出132个数据集,其中的项目以0到131的数字顺序排列。
Excel工作表显示以下示例输出:
/xml
/item0/@f_1 /item0/@f_2 /item0/@f_3 ... and so on
R4010MP014 n. z. 4016
但是,它仅包含按字母顺序重新排序的101个数据集。剩下的数据集69到99都缺失了。
我彻底搜索了缺失数据的原因,如何解决问题,尝试了不同的想法,但既没有找到关于这样的问题的报告也没有找到解决方案。
我发现的一个可能性是问题可能在于Excel的XML flattener添加#agg列(?)。但是,对同一数据库使用相同代码的另一个REST查询,更少但更大的数据集(因此填充更多列)可正常工作。
如果您可以向我提供任何问题,我会非常感谢您可以检查或解决问题。
亲切的问候
拉斯