中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-03 13:57
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何用批处理将TXT文件直接转换成XLS文件
可打印版本  4,920 / 16
第1楼 xycoordinate 发表于 2007-02-24 00:29
中级用户 发帖 228 积分 493 来自 安徽
如何用批处理将TXT文件直接转换成XLS文件
如何用批处理将TXT文件直接转换成XLS文件

report.txt

1 13 45 0 4500 15615
2 13 45 0 4500 15600
3 26 255 0 25500 15601
4 18 81 0 8100 15602
5 29 188 0 18800 15605
6 25 150 0 15000 15606
7 84 333 12 33900 15609
8 20 105 1 10550 15610
9 26 128 0 12800 15611
10 14 149 0 14900 15612
11 5 33 0 3300 15613
12 0 0 0 0 15616
13 48 190 16 19800 15617
14 321 1702 29 171650


[ Last edited by xycoordinate on 2007-2-23 at 11:34 AM ]
第2楼 slore 发表于 2007-02-24 00:47
铂金会员 发帖 2,478 积分 5,212
xls
你用记事本打开是什么格式?
第3楼 anqing 发表于 2007-02-24 01:32
高级用户 发帖 413 积分 859
txt中的数字,能准确给xls文件吗?
第4楼 slore 发表于 2007-02-24 01:34
铂金会员 发帖 2,478 积分 5,212
格式有规律当然可以。
第5楼 zh159 发表于 2007-02-24 01:34
金牌会员 发帖 1,467 积分 3,687
现在没时间写代码,给你一个思路:

先将双空格替换为单空格,再将单空格替换为{TAB}+单空格({TAB}:制表符)

然后直接用 Excel 打开该 TXT 文件
第6楼 slore 发表于 2007-02-24 01:53
铂金会员 发帖 2,478 积分 5,212
看了本来有的xls文档,貌似不是纯文本样子……

那就5楼的模拟输入咯。。。
第7楼 slore 发表于 2007-02-24 02:40
铂金会员 发帖 2,478 积分 5,212
脚本可以引用这个对象Excel.Application
第8楼 vkill 发表于 2007-02-24 02:50
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
这个不可以吧?xls文件用记事本打开是乱码的
第9楼 amao 发表于 2007-02-24 03:20
中级用户 发帖 152 积分 316
sed "s/^*//;s/\+/\t/g" report.txt> result.xls

sed的下载和使用请用"sed"搜索本论坛

[ Last edited by amao on 2007-2-24 at 03:22 AM ]
第10楼 NaturalJ0 发表于 2007-02-24 03:27
银牌会员 发帖 533 积分 1,181
如果隔着空格或TAB或逗号,倒是可以直接用EXCEL打开TXT文件,EXCEL会问你如何分隔。
PS:按TAB键分隔好,复制到剪贴板,再打开EXCEL粘贴,倒也可行,如果这样的话要用VBS了。
第11楼 zh159 发表于 2007-02-24 03:56
金牌会员 发帖 1,467 积分 3,687
生成的“test.xls”可以直接用 Excel 打开



{TAB}:键盘TAB制表符

PS:你的数据最后一行“14 321 1702 29 171650 ”是不是有问题,少了第三个数据?

[ Last edited by zh159 on 2007-2-23 at 06:16 PM ]
第12楼 xycoordinate 发表于 2007-02-24 09:38
中级用户 发帖 228 积分 493 来自 安徽
Originally posted by zh159 at 2007-2-23 02:56 PM:
生成的“test.xls”可以直接用 Excel 打开

@echo off
setlocal EnableDelayedExpansion
cd.>test.xls
for /f "delims=" %%n in (test.txt) do (
set "str=%%n"
set "str=!str: = !"
set "str=!str: ={TAB} !"

echo !str!
>>test.xls echo !str!
)
pause

先将双空格替换为单空格,再将单空格替换为{TAB}+单空格({TAB}:制表符)


谢谢!!!
NNNNNN!!!!!!!!!!!!!

还有:

cd.>test.xls

set "str=!str: = !"
set "str=!str: ={TAB} !"


意思不太明白???
是这个吗?
set /?
环境变量替换已如下增强:

%PATH:str1=str2%

会扩展 PATH 环境变量,用 "str2" 代替扩展结果中的每个 "str1"。
要有效地从扩展结果中删除所有的 "str1","str2" 可以是空的。
"str1" 可以以星号打头;在这种情况下,"str1" 会从扩展结果的
开始到 str1 剩余部分第一次出现的地方,都一直保持相配。



我直接用tab分割列就OK了!!!!


20070131.txt如下格式,直接更改扩展名为xls,就能如我愿了!!!
1 13 45 0 4500 15615
2 13 45 0 4500 15600
3 26 255 0 25500 15601
4 18 81 0 8100 15602
5 29 188 0 18800 15605
6 25 150 0 15000 15606
7 84 333 12 33900 15609
8 20 105 1 10550 15610
9 26 128 0 12800 15611
10 14 149 0 14900 15612
11 5 33 0 3300 15613
12 0 0 0 0 15616
13 48 190 16 19800 15617
14 321 1702 29 171650

[ Last edited by xycoordinate on 2007-2-23 at 10:53 PM ]
第13楼 vkill 发表于 2007-02-24 09:39
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
反过来那?
第14楼 chainliq 发表于 2007-02-24 10:46
高级用户 发帖 244 积分 635 来自 广西贵港
呵呵,这样也简单哈`````

@echo off
type report.txt echo >>report.xls
第15楼 xycoordinate 发表于 2007-02-24 11:43
中级用户 发帖 228 积分 493 来自 安徽
Originally posted by chainliq at 2007-2-23 09:46 PM:
呵呵,这样也简单哈`````

@echo off
type report.txt echo >>report.xls





F:\>type report.txt echo >>report.xls

report.txt


系统找不到指定的文件。
处理: echo 时出错。


为何会报错?????

report.xls倒是生成了,但是格式不对!!!
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023