中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-05 21:08
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [请教]让BAT去读取Excel的某行或某列 查看 1,655 回复 6
楼 主 [请教]让BAT去读取Excel的某行或某列 发表于 2007-09-18 16:13 ·  中国 北京 雅虎中国
中级用户
★★
菜鸟总动员
积分 259
发帖 112
注册 2006-08-28 15:53
19年会员
UID 61454
状态 离线
  真诚地向大家请教,是否有办法让BAT脚本去读取Excel(.xls或.csv格式)的某列或某行的数据?比如现在要读取B列,输出到1.txt,请问该如何操作?太感谢了!
★①②③④⑤⑥⑦⑧⑨⑩㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ【●】→←↑↓▲
2 发表于 2007-09-18 16:29 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
只能考虑让VBS来处理(俺还不会)
3 发表于 2007-09-18 17:55 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线

set ws=createobject("wscript.shell")
path=ws.currentdirectory
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open(path & "\111.xls")
h=1
do until objExcel.Cells(h,2).Value="" '这里的2表示B列(遇到单元格为空值时就会退出...)
s=s & objExcel.Cells(h,2).Value & vbcrlf
h=h+1
loop
objExcel.Quit
msgbox s
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
Billunique +4 2007-09-18 19:19
4 发表于 2007-09-18 19:28 ·  中国 北京 雅虎中国
中级用户
★★
菜鸟总动员
积分 259
发帖 112
注册 2006-08-28 15:53
19年会员
UID 61454
状态 离线
jmz573515兄:

  非常感谢!用你的脚本,部分列可以完整读出(总共50行,全部读出)。但对于某些列,单元格内的内容较多,用脚本没有完全读完,只读到第12行的内容。因此想问下,对于Msgbox,弹出的内容在字数上是否有限制?

  另外还有两个问题请教:)

  1.如何将内容输出到一个文本?(不好意思我基本是VBS盲)
  2.可以用Bat来实现同样的效果吗?
★①②③④⑤⑥⑦⑧⑨⑩㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ【●】→←↑↓▲
5 发表于 2007-09-18 22:21 ·  中国 广东 广州 白云区 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
csv的可以,for加上tokens= 以及delims=,等参数就可以读取了,具体的看for /?
正在潜水修练的批处理小白
6 发表于 2007-09-18 22:45 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线
弹出内容上如果想全部显示你可以用wscript.echo来显示。
如何将内容输出到一个文本, 你可以参考VBS里的FileSystemObject对象。
7 发表于 2007-09-19 03:18 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
jmz573515兄的代码果然高明
学习
论坛跳转: