Board logo

标题: [文件操作] [已解决]如何读取EXCEL里的信息给文件夹添加上? [打印本页]

作者: liaoguinan    时间: 2024-8-5 18:35     标题: [已解决]如何读取EXCEL里的信息给文件夹添加上?

本帖最后由 liaoguinan 于 2024-8-5 23:45 编辑



如何读取表格里的数据,按表格顺序给文件夹添加添加后缀中文文字,表格里的文字不固定,且文字前面有个空格


作者: ppll2030    时间: 2024-8-5 21:09

回复 1# liaoguinan


   
作者: liaoguinan    时间: 2024-8-5 21:20

回复 2# ppll2030


    这个方法我知道,有没有办法直接读取表格信息直接就填上?
作者: aloha20200628    时间: 2024-8-5 21:20

本帖最后由 aloha20200628 于 2024-8-6 09:48 编辑

回复 1# liaoguinan

以下代码存为 test.bat 置于 1000-0001-1,1000-0001-2 文件夹所在目录(即 1000-0001 目录)下运行,假设目标文件 1.xls 与 test.bat 同目录
假设 1.xls 被读取的数据存储在 sheet1 表格中,其中各行数据排列顺序与对应的更名文件夹名排序(dir /b/ad 列表排序)一致...
  1. @set @v=1 /* &echo off &set "xF=%cd%\1.xls"
  2. dir /b/ad|cscript /nologo /e:jscript "%~f0" "%xF%"
  3. if exist "0.tmp" for /f "tokens=1-2 delims=/" %%a in (0.tmp) do ren "%%~fa" "%%b"
  4. 2>nul del/q "0.tmp"&pause&exit/b */
  5. v=WSH.arguments, ws=WSH.stdin, oExcel=WSH.CreateObject('excel.application');
  6. oxF=oExcel.workbooks.Open(v(0)), oSheet=oxF.sheets('sheet1'), lines='', n=0;
  7. while (!ws.atendofstream) {
  8. pF=ws.readline(), xv=oSheet.cells(++n,1).text;
  9. if (!!xv) lines+=pF+'/'+pF+xv+'\n';
  10. }
  11. if (lines=='') WSH.quit();
  12. oxF.close(), oExcel.quit(), fso=WSH.createObject('Scripting.FileSystemObject');
  13. fp=fso.OpenTextFile('0.tmp',2,true), fp.write(lines.slice(0,-1)), fp.close(), WSH.quit();
复制代码

作者: liaoguinan    时间: 2024-8-5 21:35

回复 4# aloha20200628


    代码可行,有一点问题就是如果表格里只有三行数据的话,实际有4个文件夹第四个文件夹会加1000-0001-4undefined这样的后缀,能否改成表格有多少行数据,就改多少的文件夹?
作者: aloha20200628    时间: 2024-8-5 22:36

回复 5# liaoguinan

4楼代码已订正,再试试吧...





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2