Board logo

标题: [文件操作] 【已解决】批处理怎样把多个txt导入Excel? [打印本页]

作者: wenlishasha    时间: 2014-6-10 21:00     标题: 【已解决】批处理怎样把多个txt导入Excel?

本帖最后由 wenlishasha 于 2014-6-11 19:50 编辑

求助论坛高手,有没有办法批量把多个txt导入到excel中,要求:
1个txt做一行(每个txt可能有多行,每行做excel的一个单元格)
作者: 522235677    时间: 2014-6-10 21:54

  1. for /f "delims=" %%a in (1.txt) do >>1.csv echo %%a
复制代码

作者: wenlishasha    时间: 2014-6-10 22:15

回复 2# 522235677


    谢谢!
但一次只能导入一个txt
而且一个txt导进去了成为了多行
作者: 522235677    时间: 2014-6-11 09:27

回复 3# wenlishasha
你是要一个txt缩成一行然后放在一个单元格里?
  1. @echo off
  2. for /f "delims=" %%a in ('dir /b *.txt') do (
  3. (for /f "delims=" %%b in (%%a) do <nul set /p=%%b)>>1.csv
  4. echo.>>1.csv
  5. )
  6. pause
复制代码

作者: DAIC    时间: 2014-6-11 10:36

回复 4# 522235677


    文本内容有逗号就会出问题吧
作者: 522235677    时间: 2014-6-11 10:50

回复 5# DAIC


    恩,你有啥办法没有
作者: apang    时间: 2014-6-11 11:42

  1. @set @n=0; /* & echo off
  2. dir /b *.txt | cscript -nologo -e:jscript "%~0" "%~dp0"
  3. pause & exit/b & rem */
  4. var fso = new ActiveXObject("Scripting.FileSystemObject");
  5. var oExcel = new ActiveXObject("Excel.Application");
  6. oExcel.Visible = false
  7. var oBook = oExcel.WorkBooks.Add(); i=1;
  8. while (!WScript.StdIn.AtEndOfStream) {
  9.     var f = WScript.StdIn.ReadLine();
  10.     var txt = fso.OpenTextFile(f).ReadAll();
  11.     var ar = txt.replace(/\r?\n/g,"\n").split("\n");
  12.     for (var j=0; j<ar.length; j++) {
  13.         oExcel.Cells(i,j+1) = ar[j];
  14.     }
  15.     i+=1;
  16. }
  17. oBook.SaveAs(WScript.Arguments(0) + "Result.xls");
  18. oExcel.WorkBooks.Close();
  19. oExcel.Quit();
  20. fso = null; oExcel = null; oBook = null
复制代码

作者: 522235677    时间: 2014-6-11 20:02

  1. @echo off
  2. for /f "delims=" %%a in ('dir /b *.txt') do (
  3.         (for /f "delims=" %%b in (%%~sa) do <nul set /p=%%b,)>>1.csv
  4.         echo.>>1.csv
  5. )
  6. pause
复制代码
看了三遍才把你的意思看明白了




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