当前位置:编程学习 > VB >>

各位老师---小妹每天有至少300MB的很多个TXT文件要变成各个EXCEL表格文件,怎么办呢?

      每天各个部门报来很多个TXT文件,至少300MB的,

      要变成各个EXCEL表格文件再做报表,怎么办呢?

            怎么办呢?


             谢谢!

              
             我的可用分数太少,先给10分作为感谢,可以用的话,全部给你!谢谢! --------------------编程问答-------------------- 小妹啊,你的PP呢? --------------------编程问答-------------------- PP???????????? --------------------编程问答--------------------
                PP是? --------------------编程问答-------------------- 什么格式的text?
神马要无码的。 --------------------编程问答-------------------- VB或VBA做读文本文件,然后自动生成excel文件。
--------------------编程问答-------------------- 请举例说明 Text 文件的格式 --------------------编程问答--------------------

            谢谢楼上的学兄 学姐啊

              怎么发附件?
--------------------编程问答-------------------- 300MB的txt文档?
会不会太夸张了啊。。。
额额 --------------------编程问答--------------------
                  每个原始的TXT文本文件:包含日期,数字(每个TXT内容一样,但是大小不同)

                    都要换成EXCEL,分成7列就好了

                     然后再汇总。。。。。。


                    谢谢 --------------------编程问答-------------------- 每个TXT内容一样,但是大小不同?
你是说每行的格式一样?
那上两行就行。 --------------------编程问答-------------------- 这就是vb的优势,与vba的几近完美兼容,可做完美的办公助手…… --------------------编程问答-------------------- 另外:
1, 既然自称小妹,要叫师哥/师姐。
2, 你的头像已被使用。
http://hi.csdn.net/guyawansong --------------------编程问答--------------------
                 保存不了 --------------------编程问答--------------------
引用 12 楼 patrickkong 的回复:
另外:
1, 既然自称小妹,要叫师哥/师姐。
2, 你的头像已被使用。
http://hi.csdn.net/guyawansong
其实,企鹅是想说:“上本人高清无码PP……” --------------------编程问答--------------------

          哦?这里是? --------------------编程问答-------------------- 把你那txt复制几行贴上来,企鹅就会给你弄弄…… --------------------编程问答--------------------
倆LM

我看成是300RMB了 --------------------编程问答-------------------- 。。。。。。。。。。。。。。
2011/10/11 3253.806 3267.857 3129.883 3160.722 45029848.00 47409893376.00
2011/10/12 3141.405 3272.926 3122.284 3271.053 65945680.00 62822830080.00
2011/10/13 3261.519 3312.481 3252.977 3299.429 60426200.00 56631042048.00
2011/10/14 3290.218 3301.381 3257.057 3283.489 38336948.00 37326708736.00
2011/10/17 3290.982 3318.348 3274.786 3290.741 36158316.00 38101618688.00
。。。。。。。。。。。。。。

N个这样的.TXT文件,,形式一样,但每个的行数不一定一样的;
要变成EXCEL,分成ABCDEFG列显示,表格之间不要空格了,当然

谢谢
--------------------编程问答-------------------- 先来不用代码的2方案
1,空格替换为 逗号,另存为.csv 然后直接转为excel
2,直接导入
代码的,由lx接着上⋯⋯
--------------------编程问答-------------------- 试试用filesystemobject的textstream。把空格replace成‘,’,然后把后缀改成csv --------------------编程问答-------------------- 这也大简单了
EXCEL 直接做
打开TEXT
复制
粘贴
选择列
选择数据 菜单  分列
分列符 使用 空格
试试 --------------------编程问答--------------------


                 老板凶我,我就在线等。。。。

                    等好办法,可以不手工制作,熬夜加班,多好啊。。。幻想?

                  神马 小雨  企鹅?大家都先吃饭

                     吃完了  请楼上大家帮我啊 --------------------编程问答-------------------- "这也大简单了
EXCEL 直接做
打开TEXT
复制
粘贴
选择列
选择数据 菜单 分列
分列符 使用 空格
试试"-----现在就是这样做的,,但是有N个啊  3000多个--5600,至少300MB 的  谢谢

“试试用filesystemobject的textstream。把空格replace成‘,’,然后把后缀改成csv”
---太专业啦,F...是什么?工具吗?还是神马代码?我对这些一点不懂---惭愧  最好可以给我步骤;如果有可以用的工具哪里下载?谢谢 --------------------编程问答-------------------- 企鹅最喜欢给MM弄弄了…… --------------------编程问答--------------------
          企鹅?南极应该很环保吧

先来不用代码的2方案
1,空格替换为 逗号,另存为.csv 然后直接转为excel
2,直接导入
代码的,由lx接着上⋯⋯
----步骤怎么做? --------------------编程问答-------------------- 如果格式是对齐的直接改后缀名就可以了,用tab隔开
例如
1.txt内容
1tab2
3tab4
5
然后直接修改后缀用xls方式打开 --------------------编程问答-------------------- 如果格式是对齐的直接改后缀名就可以了,用tab隔开
例如
1.txt内容
1tab2
3tab4
5
然后直接修改后缀用xls方式打开-----每个TXT内容都是一样的,但是宽度和长度不一定一样;手工改后缀吗?----有3000--5000个.TXT,我????????????除非有改后缀的工具?
谢谢出主意 --------------------编程问答-------------------- 唉,我还是怀念当年的大学生活,宿舍的哥们经常光着膀子抠着脚丫网上摇身变成小妹求代码 --------------------编程问答-------------------- Private Sub CommandButton1_Click()
Dim fso As Object, f As Object, fn$, p$, s$, i&, ar(1 To 30000, 1 To 4)
Set fso = CreateObject("Scripting.FileSystemObject")
p = ThisWorkbook.Path & "\"
fn = Dir(p & "*.txt")
Do While fn <> ""
    i = i + 1
    Set f = fso.opentextfile(p & fn)
    s = f.readall
    ar(i, 1) = Split(Split(s, "号码是(")(1), ")")(0)
    ar(i, 2) = Split(Split(s, "姓名:")(1), Chr(10) & "单位:")(0)
    ar(i, 3) = Split(Split(s, "单位:")(1), Chr(10) & "地址:")(0)
    ar(i, 4) = Split(Split(s, "地址:")(1), Chr(10))(0)
    f.Close
    fn = Dir
Loop
Set fso = Nothing: Set f = Nothing
If i > 0 Then Cells(2, 1).Resize(i, 4) = ar
End Sub

这是百度来的,有用吗? --------------------编程问答-------------------- 直接用Excel打开TXT文件,然后然后根据提示按空格分列,完成。



你想方便,
把所有 txt 文件放在同一个目录,
然后就是写一个程序,读入所有txt,然后输出成 Excel,按一个按钮自动搞掂。

--------------------编程问答-------------------- 如果你还要做什么汇总、分析之类的,
程序也可以帮你做了,
直接输出你想要的结果。


当然,我想你应该是不会做这个程序的了。 --------------------编程问答--------------------

                    30楼: 非常正确:( --------------------编程问答-------------------- 这些都是基础内容 属于手工活  --------------------编程问答--------------------
                   老板的弟弟? --------------------编程问答-------------------- 我觉得吧,像楼主这样经常需要跟数据打交道的有必要找个程序员做老公,这样吧,楼上都是好人,你就随便挑个吧。 --------------------编程问答--------------------
引用 35 楼 sysdzw 的回复:
我觉得吧,像楼主这样经常需要跟数据打交道的有必要找个程序员做老公,这样吧,楼上都是好人,你就随便挑个吧。

嗯,sysdzw名字就叫你的老公http://hi.csdn.net/sysdzw --------------------编程问答--------------------
                   都午休啦? --------------------编程问答-------------------- 按我所说录制成宏
保存自动也可 --------------------编程问答--------------------
引用 28 楼 alifriend 的回复:
唉,我还是怀念当年的大学生活,宿舍的哥们经常光着膀子抠着脚丫网上摇身变成小妹求代码


--------------------编程问答--------------------
引用 36 楼 patrickkong 的回复:
引用 35 楼 sysdzw 的回复:
我觉得吧,像楼主这样经常需要跟数据打交道的有必要找个程序员做老公,这样吧,楼上都是好人,你就随便挑个吧。

嗯,sysdzw名字就叫你的老公http://hi.csdn.net/sysdzw
已售 --------------------编程问答--------------------
引用 40 楼 sysdzw 的回复:
引用 36 楼 patrickkong 的回复:

引用 35 楼 sysdzw 的回复:
我觉得吧,像楼主这样经常需要跟数据打交道的有必要找个程序员做老公,这样吧,楼上都是好人,你就随便挑个吧。

嗯,sysdzw名字就叫你的老公http://hi.csdn.net/sysdzw
已售

多到水源去挑逗mm,就会有被退货的可能,退了就又可以卖了。 --------------------编程问答-------------------- 说LZ是小白吧,竟然能到CSDN发帖,还发到了VB版。。
说不是小白吧,给你段代码你也不会用。。

直接给你做个可以双击运行的工具吧。。可惜现在没时间哇。。 --------------------编程问答-------------------- 对了,你可以去安装个按键精灵。。
肯定会有用 --------------------编程问答-------------------- 在你的程序目录下建一个子目录,将所有 .txt 文件放进去,运行下面的代码。

Private Sub Command1_Click()
Dim strFile As String, strLine As String

Open App.Path & "\files\1.csv" For Append As #1
strFile = Dir(App.Path & "\files\*.txt")
Do Until strFile = ""
    Open App.Path & "\files\" & strFile For Input As #2
    Do Until EOF(2)
        Line Input #2, strLine
        If strLine > "" Then
            strLine = Replace(strLine, Space(1), ",")
            
            Print #1, strLine
        End If
    Loop
    Close #2
    strFile = Dir()
Loop
Close #1
MsgBox "OK"
End Sub --------------------编程问答-------------------- 子目录名:files --------------------编程问答-------------------- 变身小妹,回复量暴涨1000%,苦工数量暴涨10000% --------------------编程问答--------------------   王    多想想两位老师

       我对电脑很白。。。。对不起

      请给我具体的步骤好吗   小学毕业。。。


           谢谢的

        在你的程序目录下建一个子目录,将所有 .txt 文件放进去,运行下面的代码。

            小声:神马是程序  什么程序。。。。这两个字很高深 --------------------编程问答-------------------- 写个程序,读文本,写进excel,或者从数据库绕一圈也行。这样的事情我以前还真做过。把网页文件(考试题)整理进数据库,然后随机调取一组,形成一套试题。先把网页文件转换成文本文件,然后写程序把文本文件的内容读进数据库,最后就按照题型(考过试的人都知道~)从数据库抽题组成试卷。经验证,该方法可行。虽然麻烦点,但是对于上百的文件,还是很值得的~
另,如果#47楼“小声:神马是程序 什么程序。。。。这两个字很高深”,为真的话,当我上面的一堆话没说。 --------------------编程问答-------------------- SHANGYY
      不好意思。。。高深

                    谢谢 --------------------编程问答-------------------- 读取txt文件后,然后生成格式的excel。
--------------------编程问答--------------------    下面这个回答  程序目录怎么建  建在哪里   步骤?谁可以告诉一下  谢谢

在你的程序目录下建一个子目录,将所有 .txt 文件放进去,运行下面的代码。

Private Sub Command1_Click()
Dim strFile As String, strLine As String

Open App.Path & "\files\1.csv" For Append As #1
strFile = Dir(App.Path & "\files\*.txt")
Do Until strFile = ""
  Open App.Path & "\files\" & strFile For Input As #2
  Do Until EOF(2)
  Line Input #2, strLine
  If strLine > "" Then
  strLine = Replace(strLine, Space(1), ",")
    
  Print #1, strLine
  End If
  Loop
  Close #2
  strFile = Dir()
Loop
Close #1
MsgBox "OK"
End Sub --------------------编程问答--------------------
引用 35 楼 sysdzw 的回复:
我觉得吧,像楼主这样经常需要跟数据打交道的有必要找个程序员做老公,这样吧,楼上都是好人,你就随便挑个吧。

+1 --------------------编程问答--------------------
                 
    哎。。。。。自己不会电脑的罪过 --------------------编程问答-------------------- 不会电脑都能找到这里来!... --------------------编程问答-------------------- 行了,别演了,你们直接把编译好能运行不出错结果完全正确的程序发到小妹邮箱里不就行了 --------------------编程问答--------------------

               波大导演

                  谢谢大家了  加班怕了 --------------------编程问答-------------------- 一说小妹,大家回帖踊跃很多啊。。。 --------------------编程问答-------------------- 连of123都被感染了。。。 --------------------编程问答--------------------

莫名惊诧⋯⋯
--------------------编程问答-------------------- OF123师姐的怎么用呢 --------------------编程问答-------------------- 写了个批处理,新建一个文本文件,把下面的代码拷贝下来,粘贴进去,然后另存为aaa.bat
把aaa.bat放到你要处理的目录下面,双击运行即可

@echo off

echo backup files...
set backupDir="backup%date%"
if exist %backupDir% (
  goto backupDirExist
)
mkdir %backupDir%
copy *.txt %backupDir%\

echo processing
for %%i in (*.txt) do for /F "tokens=1-7 " %%j in (%%i) do (
  echo %%j,%%k,%%l,%%m,%%n,%%o,%%p>>%%i.csv
)

echo delete old files
del *.txt

goto done

:backupDirExist
echo 文件夹%backupDir%已存在
goto end

:done
echo all done!
pause

:end


只是把文本文件保存成了csv文件,但不知道怎么另存为xls --------------------编程问答-------------------- Antineutrino----谢谢!辛苦啊

    EXCEL请帮帮忙 --------------------编程问答-------------------- 2011-3-18 8101.242 8131.562 8041.949 8075.212 6467973 11887480832
2011-3-21 8056.199 8061.684 7925.032 7953.25 6384082 11608785920
Antineutrino----谢谢你啊!

         我一点不懂这些,,谢谢你和大家了
             刚才按照你说的 试了   转换成EXCEL了,格式很对!!---只是显示出来的A日期  G列数字在表格里是#,格子拉来就好了(贴在这里也是正常的数字)

           是不是数字太大啦?可不可以加上格子宽度呢  谢谢 --------------------编程问答-------------------- 利用程序来做吧,建议C#,快 --------------------编程问答-------------------- 经过1个多小时的奋战,终于完美解决了小妹的问题,包括列宽度问题。和第一次一样,新建一个bat文件,将下面的代码复制粘贴过去,运行即可


@echo off

echo backup files...
set backupDir="backup%date%"
if exist %backupDir% (
  goto backupDirExist
)
mkdir %backupDir%
copy *.txt %backupDir%\
copy *.csv %backupDir%\
copy *.xls %backupDir%\
copy *.xlsx %backupDir%\
del *.csv
del *.xls
del *.xlsx

if exist csv2xls.vbs (
  copy csv2xls.vbs %backupDir%\
  del csv2xls.vbs
)

REM create vbs file
echo fileName = wscript.Arguments(0) >> csv2xls.vbs
echo path = left(wscript.scriptfullname, instrrev(wscript.scriptfullname, "\")) >> csv2xls.vbs
echo fileName = path + fileName >> csv2xls.vbs
echo Set fso = CreateObject("Scripting.FileSystemObject") >> csv2xls.vbs

echo If fso.FileExists(fileName) Then >> csv2xls.vbs
echo set objExcel = CreateObject("Excel.Application") >> csv2xls.vbs
echo set Csvbook = objExcel.Workbooks.open(fileName) >> csv2xls.vbs
echo set Csvsheet = Csvbook.Worksheets(1) >> csv2xls.vbs
echo set Excelbook = objExcel.Workbooks.Add >> csv2xls.vbs
echo set Excelsheet = Excelbook.Worksheets(1) >> csv2xls.vbs

echo totalCols = 7 >> csv2xls.vbs
echo rows = 1 >> csv2xls.vbs
echo cols = 1 >> csv2xls.vbs
echo do while not isempty(Csvsheet.cells(rows, 1).value) >> csv2xls.vbs
echo cols = 1 >> csv2xls.vbs
echo do while cols ^<= totalCols >> csv2xls.vbs
echo Excelsheet.cells(rows, cols).value = Csvsheet.cells(rows, cols).value >> csv2xls.vbs
echo cols = cols + 1 >> csv2xls.vbs
echo loop >> csv2xls.vbs
echo rows = rows + 1 >> csv2xls.vbs
echo loop >> csv2xls.vbs
echo Excelsheet.columns.autofit >> csv2xls.vbs
echo if objExcel.version ^>= 12 then >> csv2xls.vbs
echo Excelbook.SaveAs left(fileName, instr(fileName, ".txt.csv") - 1) + ".xlsx" >> csv2xls.vbs
echo else >> csv2xls.vbs
echo Excelbook.SaveAs left(fileName, instr(fileName, ".txt.csv") - 1) + ".xls" >> csv2xls.vbs
echo end if >> csv2xls.vbs
echo Excelbook.close >> csv2xls.vbs
echo Csvbook.close(false) >> csv2xls.vbs
echo objExcel.quit >> csv2xls.vbs
echo end if >> csv2xls.vbs
echo WScript.quit >> csv2xls.vbs

echo processing
for %%i in (*.txt) do (
  for /F "tokens=1-7 " %%j in (%%i) do (
    echo %%j,%%k,%%l,%%m,%%n,%%o,%%p>>%%i.csv
  )
  csv2xls.vbs %%i.csv
)

echo delete old files
del *.txt
del *.csv

goto done

:backupDirExist
echo 文件夹%backupDir%已存在
goto end

:done
echo all done!

:end
pause
--------------------编程问答-------------------- 路过,学习下. --------------------编程问答-------------------- Antineutrino-----!!!!!!!!!

                    谢谢!!!!!!!!!!!!!!! --------------------编程问答--------------------

              Antineutrino,新作的值转换了两个TXT,别的没有变?

               我还在试, --------------------编程问答--------------------    

       出来黑色框提示:另一个程序正在使用此文件,进程无法访问 --------------------编程问答-------------------- 学习。。。 --------------------编程问答-------------------- Antineutrino老师

    我用11个TXT试验了一下,但是只有4个转为了XLS,就停止了

    最后一行是:processing

   你的新程序和前面那个比较:最后   没有:END-----是不需要  还是不小心掉了?? --------------------编程问答--------------------

             Antineutrino老师

              

  我用11个TXT试验了一下,你的新程序和前面那个比较:最后 没有:END-----是不需要 还是不小心掉了??

     我加了:END  转化4个后就出现提示,最后一行是:processing;


     不加:END  显示提示:另一个程序这个在使用。。。。。

      辛苦啦

                --------------------编程问答-------------------- 潜水的都冒泡了。此乃CSDN收视率调查帖。 --------------------编程问答-------------------- 我正在看,之前进行测试没发现问题 --------------------编程问答--------------------

              真是不好意思啊----吃饭了吗 --------------------编程问答--------------------
         我又退回试验第一个程序了,你的程序统计出来  一共3602个TXT

              手工得半个月;前面刚加班完,下个月又得开始。。。。。

             你的第一个程序出现“已复制3602个文件   
                                   processing"  ;-光标闪烁

                这时要不要手工点回车?我点了---因为好像TXT没变化,


                 过了一会  开始出现CSV文件了-----也不知道和 点回车有没有关系?

                     程序---应该不要手工不停点回车吧?谢谢 --------------------编程问答--------------------

                  两个内容功能近似的程序  你的.BAT文件,如果同时开着

                        或者一个没有运行完,强制关掉  会不会还在运行?

                       和新打开的第二个打架呢?--使得第二个出错了?

                    --------------------编程问答-------------------- 奇怪,我这里没这个问题,我转换了10几个文件都正常
转换的过程中不要打开其中的任何文件
要不你再试试看?
如果还有问题,把你操作过程详细说一下 --------------------编程问答-------------------- 很有可能会冲突,因为两个程序实现的功能是类似的,中间都要访问txt文件和临时文件。所以不要同时打开
关闭掉的话,不要立即再打开,等上1分钟再重新运行
还有就是,一般中间是不需要人工操作的,会自动转换 --------------------编程问答-------------------- 要是给我做 就好了,我要用最快的方式完成 --------------------编程问答-------------------- 文件很多的话,就耐心点,只要没出错,就说明程序正在转换,中间最好不要去干涉它 --------------------编程问答--------------------


   我正在试第一个程序,CSV的这个

         1用记事本生成aaa.bat,放在需要处理的含有而且只有N个TXT的文件夹了

         2点击 aaa.bat,开始运行了   还出现一个 backup的文件夹(里面好像是你设定的原来的TXT的保留?)谢谢  很缜密

         3很快!!出现提示“已复制3602个文件   
  processing" ;-光标闪烁

             这时  以为程序运行完了,但TXT还有很多没变呢,就连续点了几次回车

          4  奇怪?---不知道和点回车有没有关系----CSV陆续出现了  现在还没完成---在等  大约有40---50%----并不是完全按照文件夹里TXT原来的顺序变的,后面的先做好了  又做前面位置的---不过这个顺序我不用管的  只是提供给你  也许有用

             辛苦 谢谢你 --------------------编程问答--------------------


                    现在最要问的:需要手工不停回车吗? --------------------编程问答-------------------- 我是来学习的

觉得lz自己探索的不够,跟会不会电脑没关系。前面有人说要批量修改文件名,百度搜索一下就出来很多这样的软件。然后说替换空格到逗号,也有这样的软件

搜搜就出来的事情.... --------------------编程问答--------------------

             刚才在打字,看到你的指教啦

               现在等ING --------------------编程问答--------------------

             你说的对的---搜  搜到了这里---高手老师多 --------------------编程问答-------------------- 一定是空格作分隔符吗
--------------------编程问答--------------------

           改成XLS的表格就好了,不要空格;分成7列,宽度最好能自动合适 ---原来的TXT的空格不需要的

                附加说明:转化成OFFICE2003版的EXCEL

                 谢谢! --------------------编程问答--------------------


               第一次来这里   真的很敬业很专业你们


                     学习  谢谢 --------------------编程问答-------------------- 不需要手工不停回车的,呵呵,是不是程序停着不动让你很没安全感呢?
那再给你个稍微改进点的,前两个都不要用了吧


@echo off

echo backup files...
set backupDir="backup%date%"
if exist %backupDir% (
  goto backupDirExist
)
mkdir %backupDir%
copy *.txt %backupDir%\
if exist *.csv (
copy *.csv %backupDir%\
del *.csv
)
if exist *.xls (
copy *.xls %backupDir%\
del *.xls
)
if exist *.xlsx (
copy *.xlsx %backupDir%\
del *.xlsx
)

if exist csv2xls.vbs (
  copy csv2xls.vbs %backupDir%\
  del csv2xls.vbs
)

REM create vbs file
echo fileName = wscript.Arguments(0) >> csv2xls.vbs
echo path = left(wscript.scriptfullname, instrrev(wscript.scriptfullname, 

"\")) >> csv2xls.vbs
echo fileName = path + fileName >> csv2xls.vbs
echo Set fso = CreateObject("Scripting.FileSystemObject") >> csv2xls.vbs

echo If fso.FileExists(fileName) Then >> csv2xls.vbs
echo set objExcel = CreateObject("Excel.Application") >> csv2xls.vbs
echo set Csvbook = objExcel.Workbooks.open(fileName) >> csv2xls.vbs
echo set Csvsheet = Csvbook.Worksheets(1) >> csv2xls.vbs
echo set Excelbook = objExcel.Workbooks.Add >> csv2xls.vbs
echo set Excelsheet = Excelbook.Worksheets(1) >> csv2xls.vbs

echo totalCols = 7 >> csv2xls.vbs
echo rows = 1 >> csv2xls.vbs
echo cols = 1 >> csv2xls.vbs
echo do while not isempty(Csvsheet.cells(rows, 1).value) >> csv2xls.vbs
echo cols = 1 >> csv2xls.vbs
echo do while cols ^<= totalCols >> csv2xls.vbs
echo Excelsheet.cells(rows, cols).value = Csvsheet.cells(rows, cols).value 

>> csv2xls.vbs
echo cols = cols + 1 >> csv2xls.vbs
echo loop >> csv2xls.vbs
echo rows = rows + 1 >> csv2xls.vbs
echo loop >> csv2xls.vbs
echo Excelsheet.columns.autofit >> csv2xls.vbs
echo if objExcel.version ^>= 12 then >> csv2xls.vbs
echo Excelbook.SaveAs left(fileName, instr(fileName, ".txt.csv") - 1) + 

".xlsx" >> csv2xls.vbs
echo else >> csv2xls.vbs
echo Excelbook.SaveAs left(fileName, instr(fileName, ".txt.csv") - 1) + 

".xls" >> csv2xls.vbs
echo end if >> csv2xls.vbs
echo Excelbook.close >> csv2xls.vbs
echo Csvbook.close(false) >> csv2xls.vbs
echo objExcel.quit >> csv2xls.vbs
echo end if >> csv2xls.vbs
echo WScript.quit >> csv2xls.vbs

echo.
echo.
echo processing...
for %%i in (*.txt) do (
  echo processing %%i
  for /F "tokens=1-7 " %%j in (%%i) do (
    echo %%j,%%k,%%l,%%m,%%n,%%o,%%p>>%%i.csv
  )
  REM ping 127.0.0.1>nul
  csv2xls.vbs %%i.csv
)

echo delete old files
del *.txt
del *.csv

goto done

:backupDirExist
echo 文件夹%backupDir%已存在
goto end

:done
echo all done!

:end
pause



如果还是出现错误的话,你试着把程序中的这一行
REM ping 127.0.0.1>nul
之前的REM去掉,不过这样会比较慢,因为每转换完一个文件就会停几秒钟
--------------------编程问答-------------------- 我了个去,上面的代码换行有问题


@echo off

echo backup files...
set backupDir="backup%date%"
if exist %backupDir% (
  goto backupDirExist
)
mkdir %backupDir%
copy *.txt %backupDir%\
if exist *.csv (
copy *.csv %backupDir%\
del *.csv
)
if exist *.xls (
copy *.xls %backupDir%\
del *.xls
)
if exist *.xlsx (
copy *.xlsx %backupDir%\
del *.xlsx
)

if exist csv2xls.vbs (
  copy csv2xls.vbs %backupDir%\
  del csv2xls.vbs
)

REM create vbs file
echo fileName = wscript.Arguments(0) >> csv2xls.vbs
echo path = left(wscript.scriptfullname, instrrev(wscript.scriptfullname, "\")) >> csv2xls.vbs
echo fileName = path + fileName >> csv2xls.vbs
echo Set fso = CreateObject("Scripting.FileSystemObject") >> csv2xls.vbs

echo If fso.FileExists(fileName) Then >> csv2xls.vbs
echo set objExcel = CreateObject("Excel.Application") >> csv2xls.vbs
echo set Csvbook = objExcel.Workbooks.open(fileName) >> csv2xls.vbs
echo set Csvsheet = Csvbook.Worksheets(1) >> csv2xls.vbs
echo set Excelbook = objExcel.Workbooks.Add >> csv2xls.vbs
echo set Excelsheet = Excelbook.Worksheets(1) >> csv2xls.vbs

echo totalCols = 7 >> csv2xls.vbs
echo rows = 1 >> csv2xls.vbs
echo cols = 1 >> csv2xls.vbs
echo do while not isempty(Csvsheet.cells(rows, 1).value) >> csv2xls.vbs
echo cols = 1 >> csv2xls.vbs
echo do while cols ^<= totalCols >> csv2xls.vbs
echo Excelsheet.cells(rows, cols).value = Csvsheet.cells(rows, cols).value >> csv2xls.vbs
echo cols = cols + 1 >> csv2xls.vbs
echo loop >> csv2xls.vbs
echo rows = rows + 1 >> csv2xls.vbs
echo loop >> csv2xls.vbs
echo Excelsheet.columns.autofit >> csv2xls.vbs
echo if objExcel.version ^>= 12 then >> csv2xls.vbs
echo Excelbook.SaveAs left(fileName, instr(fileName, ".txt.csv") - 1) + ".xlsx" >> csv2xls.vbs
echo else >> csv2xls.vbs
echo Excelbook.SaveAs left(fileName, instr(fileName, ".txt.csv") - 1) + ".xls" >> csv2xls.vbs
echo end if >> csv2xls.vbs
echo Excelbook.close >> csv2xls.vbs
echo Csvbook.close(false) >> csv2xls.vbs
echo objExcel.quit >> csv2xls.vbs
echo end if >> csv2xls.vbs
echo WScript.quit >> csv2xls.vbs

echo.
echo.
echo processing...
for %%i in (*.txt) do (
  echo processing %%i
  for /F "tokens=1-7 " %%j in (%%i) do (
    echo %%j,%%k,%%l,%%m,%%n,%%o,%%p>>%%i.csv
  )
  REM ping 127.0.0.1>nul
  csv2xls.vbs %%i.csv
)

echo delete old files
del *.txt
del *.csv

goto done

:backupDirExist
echo 文件夹%backupDir%已存在
goto end

:done
echo all done!

:end
pause
--------------------编程问答-------------------- 程序运行过程是这样的
先备份,备份完成了会提示已复制xxx文件
然后才是一个个处理,顺序可能和你在文件夹里看到的顺序不一样,不过最终每个文件都会被处理
处理的过程中不需要人工干涉的
处理完之后,会把文件夹下的.txt文件和.csv文件都删掉,只保留处理结果的.xls文件(office2007是.xlsx文件),原来的txt文件备份在backup文件夹里面,小心不要误删了,确认不需要了再删 --------------------编程问答--------------------

            虽然真的是很着急,但是   太不好意思啦----耽误你们休息时间

               
                       吓得我都没敢再动键盘啊  现在可以关掉吗?

                要不  再等一会?也好可以提供一点点实验品返给你  也许有用?

                    老师你如果  如果可以的话----请这个空隙   想想添加

                        除了  A列(因为是日期)以外!


                       后续的工作:1其余的B C D E F G列各列各自求列合计?


                                   2 A列之外,任意两列求  听说叫做  分类汇总?结果放在G列后面H列...

                                 
--------------------编程问答--------------------

                 忙中出错啊,别的账本。。。。

                    刚 --------------------编程问答--------------------

                Antineutrino老师

                   哪个最快?91楼吗?那就再试91楼的车子,只要速度最快  不用加班和完整修改成

                  OFFICE2003的XLS表格就可以 就很好!


                    已经很辛苦   --------------------编程问答-------------------- 个人建议:

把你接下来要做的汇总工作与现在想做的导入工作一起用程序做了.

不然你还是要面对巨量的数据.

除非你后面的汇总工作不需要再干什么了,不然你可能马上又要发个帖子"如何用程序自动汇总"云云 --------------------编程问答--------------------

                 老马真是老马----我想问啊  没有敢啊

                    会要算方差 标准差之类。。。输入一个日期,前N天(以及后面N天)的小结

                    所以每天加班。。。。。

                   一个程序可以做到吗?专业的你回答一下 给点意见

                  谢谢啦 --------------------编程问答--------------------

                 老师,提示不能连续3次回复帖子,所以现在才可以问:


                     谢谢你! 怎么发给你   高手分啊?点哪里?最重要先把分发给你! --------------------编程问答--------------------    
       报告Antineutrino老师:

                    22:58开始试  第一个程序

                  1。  24:18完成

                  2.生成的是TXT.CVS表

                  3.点击打开时,A列日期格式(如2011-10-09是#;F,G列有的数字太大,是数字+E+数字格式  科学计数,直接退出没有任何提示,还是TXT。CVS表;

                     如果点开,再手工调试到合适的可见的宽度,退出时就会提示:要不要保存  是  全是  否 取消4项目,选了是 全是后 又出来提示:TXT。CSV可能与CSV(逗号分隔)不兼容,是否替换?选了  是
         就可以退出了   发现出现了book1.XLS....这样的表,而不是原来TXT以及TXT.CSV的表名了。


                     是不是因为我的是OFFICE2003?

                   不管是TXT.CSV   还是XLS表,如果可以做到表和表之间合并  提取相同列的合计数到一张新表格,那么就可以的

                 因为我没有用过TXT.CSV,没能试,只好先做到这里了


                  早上还要早起,,白天再请教老师

                  怎么送分数呢?点哪里?自己可用的分数在哪里?不管多少,先送一半吧(我怕还要问别的问题,发问题提示必须要有分数才可以发言,不好意思)谢谢 --------------------编程问答-------------------- 小妹和小弟的区别,这回帖率,一直往上涨啊

想想自己的帖,躺了一个星期,顶了N次帖,还是无满意结帖。。。残忍。。。。
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,