Board logo

标题: [请教]让BAT去读取Excel的某行或某列 [打印本页]

作者: Billunique     时间: 2007-9-18 16:13    标题: [请教]让BAT去读取Excel的某行或某列
  真诚地向大家请教,是否有办法让BAT脚本去读取Excel(.xls或.csv格式)的某列或某行的数据?比如现在要读取B列,输出到1.txt,请问该如何操作?太感谢了!

作者: zh159     时间: 2007-9-18 16:29
只能考虑让VBS来处理(俺还不会)

作者: jmz573515     时间: 2007-9-18 17:55

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

作者: Billunique     时间: 2007-9-18 19:28
jmz573515兄:

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

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

  1.如何将内容输出到一个文本?(不好意思我基本是VBS盲)
  2.可以用Bat来实现同样的效果吗?

作者: dikex     时间: 2007-9-18 22:21
csv的可以,for加上tokens= 以及delims=,等参数就可以读取了,具体的看for /?

作者: jmz573515     时间: 2007-9-18 22:45
弹出内容上如果想全部显示你可以用wscript.echo来显示。
如何将内容输出到一个文本, 你可以参考VBS里的FileSystemObject对象。

作者: HAT     时间: 2007-9-19 03:18
jmz573515兄的代码果然高明
学习