标题: [文本处理] [已解决]将xls表格文件每一行内容输出到以首列/第一列的内容命名的txt文本里 [打印本页]
作者: 997666 时间: 2017-3-31 16:58 标题: [已解决]将xls表格文件每一行内容输出到以首列/第一列的内容命名的txt文本里
本帖最后由 pcl_test 于 2017-4-17 13:00 编辑
我有一个xls文件,需要把逐行内容批量导出txt文件,且每行第一列单元格内容作为txt文件名称,谢谢!
不用宏,仅用批处理bat文件,请教可否达成?
作者: 老刘1号 时间: 2017-3-31 18:46
哈哈,我见过的最大的笑话
你需要一个第三方转为纯文本
或者VBS直接处理
作者: pcl_test 时间: 2017-3-31 22:03
本帖最后由 pcl_test 于 2017-4-8 13:19 编辑
- Set fso = CreateObject("Scripting.FileSystemObject")
- Set objExcel= CreateObject("Excel.Application")
- file = fso.GetFolder(".").Path & "\测试.xls"
- Set objBook = objExcel.Workbooks.Open(file)
- objBook.WorkSheets(1).activate
- Set objSheet = objBook.activeSheet
- rows = objSheet.UsedRange.Rows.count
- columns = objSheet.UsedRange.Columns.Count
- Dim arr()
- For i=1 To rows
- For j=0 To columns-2
- ReDim Preserve arr(j)
- arr(j)=objSheet.Cells(i, j+2)
- Next
- line = Join(arr, " ")
- 'fso.CreateTextFile(objSheet.Cells(i, 1) & ".txt", 2).Write(line)
- s = s & line & " --> " & objSheet.Cells(i, 1) & ".txt" & vbCrLf
- Erase arr
- Next
- WSH.echo s
- objBook.Close
- objExcel.Quit
复制代码
作者: 997666 时间: 2017-4-1 09:15
回复 2# 老刘1号
新手,请见谅
那我自行将xls转换为txt,请问可以用批处理将txt文本每行批量导出,首行单元格内容作为单个txt命名吗?
作者: 997666 时间: 2017-4-1 09:18
回复 3# pcl_test
感谢版主无私的共享精神,请教下,我是新手,现在才知道xls文件无法达成,那如果转为txt文本,可以用批处理来执行吗?谢谢了。
作者: pcl_test 时间: 2017-4-1 09:35
回复 5# 997666
可以
作者: 997666 时间: 2017-4-1 10:27
本帖最后由 997666 于 2017-4-1 10:28 编辑
回复 6# pcl_test
感谢版主的辛苦努力,我这边用win7及win10平台的电脑均试了一下,你帮忙编写的代码可以完美的读取xls文件,且弹窗能够显示逐行导出的txt文件,但是当前目录下均没有txt文件,我搜索了全盘,也没有发现文件(会不会没有生成txt文件?),可否帮我检查一下,看是我什么地方需要更改一下?谢谢了。
作者: pcl_test 时间: 2017-4-1 10:36
本帖最后由 pcl_test 于 2017-4-1 10:37 编辑
回复 7# 997666
只是在代码中注释了,改动下即可
作者: 997666 时间: 2017-4-1 11:35
本帖最后由 997666 于 2017-4-5 17:21 编辑
感谢各位的帮助,因为我是新手,自己又研究了一下批处理写法,其实很简单,拿出来分享一下,在xls文件里,自行添加>文本名即可。对应内容列及文件名列,但此方法比较土,不知道各位还有没有更简洁、高效的批处理写法?
作者: 老刘1号 时间: 2017-4-1 12:15
本帖最后由 老刘1号 于 2017-4-6 19:53 编辑
- for /f "tokens=1,*" %%a in (a.txt) do Echo %%b>%%~a.txt
复制代码
作者: 997666 时间: 2017-4-1 16:01
本帖最后由 pcl_test 于 2017-4-1 16:15 编辑
回复 10# 老刘1号
朋友你好,谢谢你热心的指导,我试验了一下,未成功,是不是代码还需要更改一下?新手总是问些很简单问题,能得到你不厌其烦的回复,很感谢!
作者: 老刘1号 时间: 2017-4-1 18:55
回复 11# 997666
文本是什么样子的呢?
文本.txt更改为你的文本的名字
作者: 997666 时间: 2017-4-5 17:29
回复 12# 老刘1号
我的文本(a.txt)就是5行5列,分别是a b c d e(用excel转存的txt文本文件,中间分隔符应为空格),第二行是a2 b2 c2 d2 e2(以此类推)
使用你的代码后,无任何反应,也未生成新文本文件,是不是我这边还需要改下代码?
作者: 老刘1号 时间: 2017-4-5 21:22
回复 13# 997666
代码确实有点问题,试试修改过的~
作者: 997666 时间: 2017-4-6 16:34
回复 14# 老刘1号
谢谢你的指导,目前已经可以正常的输出每行了,并且以a列内容命名文件名,但是还是有点瑕疵,就是只能把b列的内容输出到文本,后面c、d、e列均无法输出,帮忙看下是什么问题,谢谢了。
作者: 老刘1号 时间: 2017-4-6 19:54
回复 15# 997666
已修改,再试试~
作者: 997666 时间: 2017-4-7 15:59
回复 16# 老刘1号
谢谢,已解决
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |