是否可以基于文件夹树创建Excel电子表格,包括其子目录和文件名?他们是用excel本身做的一种方式,还是有一个程序可以实现这一点?
答案 0 :(得分:4)
如果你只需要做一次而不是更新它,那么这样的事情应该有效:
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
是Tab字符,包括表达式和替换\1
表示与表达式()
匹配的任何内容
^
匹配行的开头[^
... ]
表示匹配 列出的任何字符{4}
表示,恰好匹配之前发生过的4次事件(在这种情况下为[^
... ]
)。简而言之,这个匹配和()
- 捕获行开头的任何标签,然后匹配下一个非标签/字母/数字/下划线字符。然后,首先将所有选项卡替换为已捕获的选项卡,然后再添加一个选项卡。因此,每次完成此正则表达式时,另外一个包含4个非目录名字符的序列将替换为制表符。
答案 1 :(得分:0)
一种解决方案方法是将Java与Apache POI结合使用,请参阅http://poi.apache.org/。您可以在Java中读取目录结构。根据哪个元素,您可以创建excel spredsheet。有关详细说明,请参阅http://poi.apache.org/spreadsheet/index.html。
答案 2 :(得分:0)
这应该可以在VBA中使用一个或两个自引用Sub轻松完成,其中你使用带有循环的Dir命令,使用此Sub你可以根据传输的两个参数来上下树:
答案 3 :(得分:0)
好的,我知道有很多方法可以做到这一点,但对我来说最简单的方法就是这样,不完全自动生成excel文件,但它完成了我需要的工作:
http://answers.google.com/answers/threadview/id/443101.html
感谢其他答案。
答案 4 :(得分:0)
您也可以尝试使用此Excel文件:
http://www.formedia.ca/files/arborescence_(v0097).xlsm
(arborescence意为法语树视图)
只需将其放在要捕获的树的根中,然后单击“读取树”按钮。
有很多未记录的功能,比如创建一个新的日期文件和最大级别数,排除列表,...检查用户表单中的不同选项卡,如果您有任何疑问,请跳回此处(如阅读法语: )。
您始终可以修改VBA代码以满足您的特定要求。
希望这会有所帮助......