Заполнить электронную таблицу файлами из папки

Заполнить электронную таблицу файлами из папки

Мне нужно управлять большим количеством файлов в папке, связанной с проектом, в данный момент эти файлы находятся в Dropbox. Поэтому я хотел бы найти способ, с помощью которого я могу заполнить электронную таблицу именами файлов в папке, таким образом я могу добавлять столбцы с комментариями, датами, статусом и т. д., связанными с этими файлами, и могу легко управлять, которые имеют определенные условия, которые подготавливают их к следующим шагам.

Может случиться так, что файлы также будут добавлены или удалены из папки.

Есть ли способ сделать это через Excel или, может быть, Google Spreadsheet? Это не проблема, если хранилище файлов — Dropbox, OneDrive, Google Drive и т. д., если у него есть возможность поделиться.

Спасибо,

решение1

Два быстрых способа начать работу (вероятно, вы захотите расширить их, чтобы упростить обновление).

Используя CMD и команду DIR, вы можете быстро получить себе базовый список файлов, с которыми вы можете начать работать. Используйте следующую команду:

dir /b > output.csv

введите описание изображения здесь

введите описание изображения здесь

В качестве альтернативы (поскольку вы хотите иметь возможность обновлять список и работать с ним) я составил быстрый пример VBA. Конечно, могут быть поправки, которые вам нужно будет сделать, но вот основа:

Sub PopulateRows()
    Dim objFSO, objFolder, colFiles, objFile, FindValue
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    Set objFolder = objFSO.GetFolder("C:\Users\Jonno\Dropbox\Public")
    Set colFiles = objFolder.Files

    Dim curRow

    curRow = FindFirstEmptyRow

    For Each objFile In colFiles
        Set FindValue = Range("A:A").Find(objFile.Name)
        If FindValue Is Nothing Then
            Range("A" & curRow).Value = objFile.Name
            Range("B" & curRow).Value = objFile.Size
            Range("C" & curRow).Value = objFile.DateCreated
            Range("D" & curRow).Value = objFile.DateLastModified
            curRow = curRow + 1
        End If
    Next
End Sub

Function FindFirstEmptyRow()
    Dim curRow
    curRow = 1
    Do
        If IsEmpty(Range("A" & curRow).Value) Then
            FindFirstEmptyRow = curRow
            Exit Function
        End If
        curRow = curRow + 1
    Loop
End Function

введите описание изображения здесь

введите описание изображения здесь

Это имя файла, размер, дата создания и дата изменения.

Обратите внимание, что VBA добавит новые файлы, но в настоящее время не имеет логики для удаления элементов, поэтому вам может потребоваться внести изменения, если вы его используете.

Не уверен, что это будет вам полезно, но надеюсь, что это даст вам несколько идей.

Связанный контент