【发布时间】:2016-12-11 20:18:47
【问题描述】:
我有一个用户放入 XML 文档的投递箱文件。我想为以下流程编写代码:
第 1 部分:获取文件数
我想要一个 Excel 表格,显示每行中按日期排序的文件数
第 2 部分:检查 XML
检查特定代码行的 1 或 0 的内部 xml 部分
第 3 部分:动态更新 excel 文档
每次打开 excel 文档并检查子文件夹时,如果找到上次修改的新日期,则会在 1 和 2 中添加新行。
我在 excel 文档中有 5 列,第一行是工作表上的标签,如下所示:
A列有日期
列 B 包含文件夹 1 中的第 1 部分
列 C 有 1+2 部分,xml 代码为 0
列 D 有部分 1+2,其中 xml 代码是文件夹 2 中的 1
列 E 包含文件夹 3 中的第 1 部分
我非常了解 javascript,但我从未在 Quickbase 之外使用过它。我什至如何开始进行此设置?
编辑 1:
为了澄清,文件夹树看起来像这样
../Dropbox/SharedWorkFolder/APIReports/auditreports.xlsm
../Dropbox/SharedWorkFolder/APIReports/OrderLog/(xmls for column A+C+D)(roughly 2k files)
../Dropbox/SharedWorkFolder/APIReports/PandA/(xmls for column A+B)(11k files)
../Dropbox/SharedWorkFolder/APIReports/SpecificLookup/(xmls for column A+E)(130 files)
到目前为止,我一直在阅读 excel 的文档,但我发现我对它的多样性缺乏了解。
到目前为止,我已经设法自己导入文件内容,但是由于它们的长度和 xml 内容非常长,我需要特定的 xml 标签,遗憾的是,除了文件名之外,它们没有日期,并且在导入时它们似乎已经单独分组每个文件也是如此。
文件名看起来像这样1452521833783-110120160917SS110313 表示第一个字符串是交易号,然后是日期+时间“SS”和一些 6 个数字字符串。
我将继续阅读有关 excel VBA 的文档并测试一些东西
编辑 2:
我找到了这个代码“Excel VBA using FileSystemObject to list file last date modified”,但它一直给我一个错误,用户定义类型未定义。
编辑 3:到目前为止,我可以使用此代码
Dim iRow
Sub ListFiles()
iRow = 11
Call ListMyFiles(Range("C7"), Range("C8"))
End Sub
Sub ListMyFiles(mySourcePath, IncludeSubfolders)
Set MyObject = New Scripting.FileSystemObject
Set mySource = MyObject.GetFolder(mySourcePath)
On Error Resume Next
For Each myFile In mySource.Files
iCol = 2
Cells(iRow, iCol).Value = myFile.Path
iCol = iCol + 1
Cells(iRow, iCol).Value = myFile.Name
iCol = iCol + 1
Cells(iRow, iCol).Value = myFile.Size
iCol = iCol + 1
Cells(iRow, iCol).Value = myFile.DateLastModified
iRow = iRow + 1
Next
If IncludeSubfolders Then
For Each mySubFolder In mySource.SubFolders
Call ListMyFiles(mySubFolder.Path, True)
Next
End If
End Sub
我仍然需要遍历所有 XML 并获取特定节点,哦,地图有问题,因为 XML 没有分配给它们的地图,而且它们都有不同数量的节点(但我需要 1 系列重复出现)。
【问题讨论】: