![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-13 01:06 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求助:vbs把xls文件转换为txt文件 |
| 可打印版本 1,358 / 9 |
| 第1楼 26933062 | 发表于 2010-01-05 12:59 |
| 银牌会员 发帖 879 积分 2,268 | |
|
求助:vbs把xls文件转换为txt文件 求助:vbs把xls文件转换为txt文件
要求: xzt.vbs 运行方式是从bat中调用 如: call xzt.vbs "a.xls" "hhh.txt" vbs功能 1、首先把xls文件中的所有空值改为# 2、再把xls文件另存为hhh.txt 注:要求1中把所有空值改为#并不是要改xls文件内容,目的是要txt中的空值等于# 如果要求1有难度,可以忽略,直接解决第2个要求也可以。 表中有些单元格的数据是通过公式计算出来的结果,要求在txt中直接显示结果 补充说明: 不确定有几张表 是从 A1到有值的最大区域 但头三行有合并的单元格,如果不确定头几行含合并单元格有影响吗? 如果有影响都定死为头三行含合并单元格. 有劳大家! [ Last edited by 26933062 on 2010-1-5 at 17:24 ] |
|
| 第2楼 qinchun36 | 发表于 2010-01-05 15:45 |
| 高级用户 发帖 400 积分 609 | |
|
哈,我正在弄一个为命令行界面服务的VBS,嘿嘿。。。
你给出的条件不完善: 1. 是否这个xls只有一张表,即只有 Sheet1 ? 2. 需要导出的范围多大? 是从 A1到有值的最大区域,还是只是能包含所有数据的最小区域,因为不排除有人前面空上很多行再写。 |
|
| 第3楼 26933062 | 发表于 2010-01-05 17:20 |
| 银牌会员 发帖 879 积分 2,268 | |
|
回复2楼 不确定有几张表
是从 A1到有值的最大区域 但头三行有合并的单元格,如果不确定头几行含合并单元格有影响吗? 谢谢! [ Last edited by 26933062 on 2010-1-5 at 17:22 ] |
|
| 第4楼 qinchun36 | 发表于 2010-01-06 10:24 |
| 高级用户 发帖 400 积分 609 | |
|
不能解决的问题:
1. 不能按照你给的方案命名导出的文件,因为不确定有几张表,你在命令行无法给出参数; 我把你的第二个参数改成指定导出路径,文本文件的命名是 "输出路径\EXCEL文件名.表名.txt" 2. 经试验发现,合并的单元格被识别成 最左上的单元格包含所有数据,其他单元格数据为空。 另: 不给输出路径则默认当前工作路径; 默认不导出空的表,如果有特殊需求可以修改 VBS 源代码里面的那个参数,有说明。 |
|
| 第5楼 26933062 | 发表于 2010-01-06 19:43 |
| 银牌会员 发帖 879 积分 2,268 | |
|
谢谢你的帮助,已在批处理之家找到答案,http://bathome.l3.wuyou.com/thread-6921-1-1.html
再次感谢,我会测试你的代码的。 |
|
| 第6楼 mountvol | 发表于 2010-01-06 21:03 |
| 初级用户 发帖 117 积分 186 | |
|
用ado来操作excel最适合,直接可以getstring然后保存为文本就可以了。
而且还可以遍历表名. |
|
| 第7楼 moniuming | 发表于 2010-01-06 22:37 |
| 银牌会员 发帖 574 积分 1,335 来自 广西 | |
|
其实在excel中通过vba来操作会更容易些...
|
|
| 第8楼 qinchun36 | 发表于 2010-01-07 09:38 |
| 高级用户 发帖 400 积分 609 | |
|
Re: 5 哇,原来是马甲!
Re: 6 个人认为还是微软自己提供的专门操作EXCEL的对象好用,你说的变量表名之类都只是它方法的一小部分,你可以尝试运行一下这个代码,最后提示就可以看出是经过遍历所有表名出来的结果。 Re: 7 我没有试过,但是觉得VBA看起来语法太严格,不喜欢 其实要读出数据很简单,几个循环就行了,可是我对输出的样子好不好看比较在意,所有多加了些代码,可能看起来很繁琐把,个人爱好不同。 |
|
| 第9楼 mountvol | 发表于 2010-01-07 20:17 |
| 初级用户 发帖 117 积分 186 | |
|
很明显,并不是所有的windows上都装有excel,所以Excel.Application其实很多时候并不能被创建。
另外,vba比vbs强大(因为它可以用API),在vbs中可以通过操作OFFICE来使用vba,从而实现调用API. |
|
| 第10楼 bat-zw | 发表于 2010-01-07 20:57 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
我来跟一贴 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |