gpt4 book ai didi

sharepoint - 有没有比迭代 Workbooks.Open() 更快的方法从工作簿中收集数据?

转载 作者:行者123 更新时间:2023-12-01 15:34:07 26 4
gpt4 key购买 nike

我正在开发一个项目,其中数据集存储在 Sharepoint 服务器上的一个文件夹中的数千个 Excel 工作簿(目前约为 14000 个)中,每个工作簿都会定期修改以反射(reflect)对该工作簿中数据子集的更改。我知道这不是存储和更新这些数据的好方法,但情况就是这样。

我必须执行各种查询,这些查询涉及从文件夹中的所有工作簿中提取一个或多个字段的内容。我一直在通过迭代一组工作簿来做到这一点,如下所示:

Function getData() As Workbook

Dim resultBk As Workbook
Dim fldr As Folder
Dim fso As New FileSystemObject
Dim fileObj As File
Dim filePath As String
Dim queryBk As Workbook

'create a workbook for storing the query results
Set resultBk = Workbooks.Add(resultBkTemplatePath)

'get the folder with all the workbooks to be queried
Set fldr = fso.GetFolder(sharepointFolderPath)

For Each fileObj In fldr.Files
'try opening each of the workbooks
Set queryBk = Workbooks.Open(fileObj.Path, ReadOnly:=True)

'get data from queryBk and add it to resultBk, or add a row with an error message if queryBk failed to open
addBkDataToResults resultBk, queryBk

queryBk.Close False
Set queryBk = Nothing
Next

getData = resultBk

End Function

通过 Sharepoint 连接打开和关闭这么多工作簿的过程非常缓慢;运行一个完整的查询通常需要 12-14 小时。有没有更快的方法从不需要打开/关闭的 Excel 书中读取数据?或者有没有办法可以处理打开/关闭过程以使其更快?

最佳答案

我将使用 ADO 并将 Excel 工作簿作为数据库连接,允许您针对它们发出 SQL 语句。我肯定会这样做以读取数据,但也用于写入(参见 here)。

将数据保存在 Access 中肯定会比保存在 Excel 中有所改进,您可以考虑每隔一段时间安排一次压缩以减小数据库大小。

关于sharepoint - 有没有比迭代 Workbooks.Open() 更快的方法从工作簿中收集数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14841194/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com