基于文件夹内容生成Excel文件
是否有可能创build一个基于文件夹树,包括其子目录和文件名的Excel电子表格? 他们是用excel自己做的一种方式,还是有一个scheme,使这成为可能?
如果你只需要做一次而不更新它,那么应该这样做:
cd directory tree > tree.txt
现在做以下事情:
-
在可以执行正则expression式的文本编辑器(如Notepad ++)中打开
tree.txt
。 下面的正则expression式适用于Notepad ++,所以您可能需要针对另一个具有不同正则expression式方言的编辑器稍微调整它们。 注意每个目录树级别是如何前缀4个字符。 -
删除任何你不关心的行。
-
replace,正则expression式和环绕checkbox选中:
- 查找:
^(\t*)[^\tA-Za-z0-9_]{4}
- replace:
\1\t
- 查找:
-
继续重复上述步骤,直到更换0个事件。 看看文件如何改变。
-
复制文本( ctrl-a ctrl-c )并粘贴到Excel。 制表符应该将目录层次整齐地放到Excel列中
有关正则expression式的一些说明:
-
\t
是Tab字符,无论是在expression和replace -
\1
replace表示无论expression式中的第一个()
匹配的whas - expression式中的最初
^
匹配行的开始 - expression式中的
[^
…]
表示匹配未列出的任何字符 - expression式中的
{4}
意味着,与以前的任何事情(在这种情况下是[^
…]
)恰好相匹配。
所以简而言之,这个匹配和()
捕捉行首的任何标签,然后匹配下4个非标签/字母/数字/下划线字符。 然后,首先由捕获的任何选项卡replace,然后再添加一个额外的选项卡。 所以每当这个正则expression式完成时,又有一个4个非目录名字符的序列被replace为tab。
一种解决scheme是使用Apache和Apache POI,请参阅http://poi.apache.org/ 。 您可以阅读Java中的目录结构。 根据哪个元素,你可以创build一个excel spredsheet。 请参阅http://poi.apache.org/spreadsheet/index.html获取更多文档。
这应该很容易在VBA中用一个或两个自引用Sub来完成,在这里你可以使用带有循环的Dir命令,通过这个Sub你可以根据传输的两个参数来上下树:
- 目录path
- 方向(上或下)
你也可以试试这个Excel文件:
http://www.formedia.ca/files/arborescence_(v0097).xlsm
(树木意味着在法国树视图)
只需将其放置在您想要捕获的树的根目录下,然后单击“读取树”button即可。
有许多未公开的function,如创build一个新的date文件和最大数量的级别,排除列表,…检查用户表单中的不同标签,如果有任何问题(如阅读法语:),跳回到这里。
您可以随时修改VBA代码以适应您的特定要求。
希望这可以帮助…
好吧,我知道有很多方法可以做到这一点,但最简单的方法是我,这不是完全自动生成到Excel文件,但它完成了我所需要的:
http://answers.google.com/answers/threadview/id/443101.html
感谢其他答案。