是否可以基于文件夹树创建 Excel 电子表格,包括其子目录和文件名?他们是用 excel 本身来做到这一点的方法,还是有一个程序可以做到这一点?
5 回答
如果您只需要这样做一次而不更新它,那么这样的事情应该可以工作:
cd directory
tree > tree.txt
现在执行以下操作:
在可以执行正则表达式的文本编辑器中打开
tree.txt
,例如Notepad++。下面的正则表达式适用于 Notepad++,因此您可能需要针对另一个具有不同正则表达式方言的编辑器对它们进行一些调整。请注意每个目录树级别是 4 个前缀字符。删除您不关心的任何行。
替换,选中正则表达式和环绕复选框:
- 寻找:
^(\t*)[^\tA-Za-z0-9_]{4}
- 代替:
\1\t
- 寻找:
继续重复上述步骤,直到 0 个出现被替换。看看文件是如何变化的。
复制文本 ( ctrl-a ctrl-c ) 并粘贴到 Excel。制表符应将目录层次结构整齐地放在 Excel 列中
关于正则表达式的一些说明:
\t
是制表符,在表达式和替换中都是\1
()
in replacement 表示表达式中与 first 匹配的任何内容- 表达式中的初始
^
匹配行首 [^
...]
在表达式中,匹配任何未列出的字符{4}
在表达式中,精确匹配之前出现的 4 次(在本例中为[^
...]
)。
简而言之,这匹配并()
捕获行首的任何制表符,然后还匹配下一个 4 个非制表符/字母/数字/下划线字符。然后它首先被捕获的任何选项卡替换,然后是一个额外的选项卡。因此,每次执行此正则表达式时,都会再用 4 个非目录名称字符序列替换为制表符。
一种解决方案是将 Java 与 Apache POI 结合使用,请参阅http://poi.apache.org/。您可以阅读 Java 中的目录结构。根据哪个元素,您可以创建一个 Excel 电子表格。有关更多文档,请参阅http://poi.apache.org/spreadsheet/index.html。
这应该在 VBA 中使用一个或两个自引用 Sub 轻松完成,您可以在其中使用带有循环的 Dir 命令,使用此 Sub,您可以根据传输的两个参数向上和向下树:
- 目录路径
- 方向(向上或向下)
好的,我知道有很多方法可以做到这一点,但对我有用的最简单的方法是这个,不完全自动生成到一个 excel 文件,但它完成了我需要的:
http://answers.google.com/answers/threadview/id/443101.html
感谢其他答案。
你也可以试试这个 Excel 文件:
http://www.formedia.ca/files/arborescence_(v0097).xlsm
(arborescence 在法语中是 treeview 的意思)
只需将它放在您要捕获的树的根部,然后单击“读取树”按钮。
有许多未记录的功能,例如创建新的日期文件和最大级别数、排除列表……检查用户表单中的不同选项卡,如果您有任何问题(例如阅读法语:),请跳回此处。
您可以随时修改 VBA 代码以满足您的特定要求。
希望这可以帮助...