基于文件夹内容生成Excel文件

是否有可能创build一个基于文件夹树,包括其子目录和文件名的Excel电子表格? 他们是用excel自己做的一种方式,还是有一个scheme,使这成为可能?

如果你只需要做一次而不更新它,那么应该这样做:

cd directory tree > tree.txt 

现在做以下事情:

  1. 在可以执行正则expression式的文本编辑器(如Notepad ++)中打开tree.txt 。 下面的正则expression式适用于Notepad ++,所以您可能需要针对另一个具有不同正则expression式方言的编辑器稍微调整它们。 注意每个目录树级别是如何前缀4个字符。

  2. 删除任何你不关心的行。

  3. replace,正则expression式和环绕checkbox选中:

    • 查找: ^(\t*)[^\tA-Za-z0-9_]{4}
    • replace: \1\t
  4. 继续重复上述步骤,直到更换0个事件。 看看文件如何改变。

  5. 复制文本( ctrl-a ctrl-c )并粘贴到Excel。 制表符应该将目录层次整齐地放到Excel列中


有关正则expression式的一些说明:

  • \t是Tab字符,无论是在expression和replace
  • \1replace表示无论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你可以根据传输的两个参数来上下树:

  1. 目录path
  2. 方向(上或下)

你也可以试试这个Excel文件:

http://www.formedia.ca/files/arborescence_(v0097).xlsm

(树木意味着在法国树视图)

只需将其放置在您想要捕获的树的根目录下,然后单击“读取树”button即可。

有许多未公开的function,如创build一个新的date文件和最大数量的级别,排除列表,…检查用户表单中的不同标签,如果有任何问题(如阅读法语:),跳回到这里。

您可以随时修改VBA代码以适应您的特定要求。

希望这可以帮助…

好吧,我知道有很多方法可以做到这一点,但最简单的方法是我,这不是完全自动生成到Excel文件,但它完成了我所需要的:

http://answers.google.com/answers/threadview/id/443101.html

感谢其他答案。