稍微改了一下原来的代码,让它可以take参数
dim objArgs
Set objArgs = WScript.Arguments
dim strSrc
strSrc = objArgs(0)
dim strTgt
strTgt = objArgs(1)
dim objExcel
set objExcel = Createobject("Excel.Application")
objExcel.Workbooks.Open strSrc
objExcel.ActiveWorkbook.SaveAs strTgt, -4143, , , False, False
objExcel.Quit
使用方法:
set csv_name=in.xls
set excel_name=out.xls
cscript cvs2xls.vbs %cd%\%csv_name% %cd%\%excel_name%
刚才把excel 会锁文件的总是解决了,当然,它带来了一个新问题
start excel /e /r 16003_12_25_19.csv
这样就不会锁了.不过,这样是以只读打开,你也改不了了.
/e 是不显示启动画面
/r 是只读
因为如果转换大的文件的话,可能会花更长的时间,虽然spread32 启动比excel 快很多, 但还是得不偿失.所以,大文件,还是用excel 打开,而小文件,就转换后再由spread32 打开.
我用的批处理文件:
set csv_name=%~n1_%time:~0,8%.csv
set csv_name=%csv_name::=_%
set csv_name=%csv_name: =%
set excel_name=%~n1_%time:~0,8%.xls
set excel_name=%excel_name::=_%
set excel_name=%excel_name: =%
copy ..\%~n1.dat %csv_name%
f:\tools\Vim\vim72\gvim.exe -e -s -c "%%s/\V|/\t/g |:w" %csv_name%
start excel /e /r %csv_name%
::cscript cvs2xls.vbs %cd%\%csv_name% %cd%\%excel_name%
::start F:\gre\Spread32\Spread32.exe %excel_name%
我用的可不是真的csv 文件,我把逗号换成了tab, 因为excel 的默认分隔符是tab, 而不是逗号,如果用逗号的话,就会分不开了.
--
Feng
没有评论:
发表评论