写一个批处理,将txttxt如何转换成excell,急求

查看: 4042|回复: 9
如何批量将txt文件批量转换成xls文件
阅读权限20
在线时间 小时
如何将相同格式的txt文件批量导入到一个xls文件中?要求是导入的文件名是相应的工作表的名称
我看了论坛上的好多贴子,不过还是没有办法将相应的工作表名称和内容对应起来。
09:57 上传
点击文件名下载附件
6.74 KB, 下载次数: 82
阅读权限95
在线时间 小时
Sub getData()
& & Dim Fl, i%, Arr, Ary, k%
& & Dim oJs As Object
& &
& & Set oJs = CreateObject(&ScriptControl&): oJs.Language = &JScript&
& & Fl = Application.GetOpenFilename(&文本文件,*.txt&, , &请选择&, , True)
& & For i = 1 To UBound(Fl)
& && &&&Open Fl(i) For Input As #1
& && &&&Arr = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf): Reset
& && &&&If Sheets.Count & i Then Sheets.Add After:=Sheets(i - 1)
& && &&&With Sheets(i)
& && && && &.Name = oJs.eval(&'& & Fl(i) & &'.replace(/.+([^\\]+)\.txt/,'$1');&)
& && && && &For k = 0 To UBound(Arr) - 1
& && && && && & Ary = Split(oJs.eval(&'& & Arr(k) & & '.replace(/\s+/g,' ');&), & &)
& && && && && & .Range(&A& & k + 1).Resize(1, UBound(Ary) + 1) = Ary
& && && && &Next
& && &&&End With
& & Next:& & Set oJs = Nothing
End Sub复制代码
阅读权限95
在线时间 小时
(10.34 KB, 下载次数: 138)
10:51 上传
点击文件名下载附件
阅读权限20
在线时间 小时
alzeng 发表于
非常感谢!!!,这个问题困扰我有段时间了,不过还想请问一下,就是那个数据能不能直接转换成数据格式?我看里面的是文本格式的
阅读权限95
在线时间 小时
qixl 发表于
非常感谢!!!,这个问题困扰我有段时间了,不过还想请问一下,就是那个数据能不能直接转换成数据格式? ...Sub getData()
& & Dim Fl, i%, Arr, Ary, k%
& & Dim oJs As Object
& &
& & Set oJs = CreateObject(&ScriptControl&): oJs.Language = &JScript&
& & Fl = Application.GetOpenFilename(&文本文件,*.txt&, , &请选择&, , True)
& & For i = 1 To UBound(Fl)
& && &&&Open Fl(i) For Input As #1
& && &&&Arr = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf): Reset
& && &&&If Sheets.Count & i Then Sheets.Add After:=Sheets(i - 1)
& && &&&With Sheets(i)
& && && && &.Name = oJs.eval(&'& & Fl(i) & &'.replace(/.+([^\\]+)\.txt/,'$1');&)
& && && && &For k = 0 To UBound(Arr) - 1
& && && && && & Ary = Split(oJs.eval(&'& & Arr(k) & & '.replace(/\s+/g,' ');&), & &)
& && && && && & .Range(&A& & k + 1).Resize(1, UBound(Ary) + 1) = Ary
& && && && &Next
& && && && &.UsedRange = .UsedRange.Value
& && &&&End With
& & Next:& & Set oJs = Nothing
End Sub复制代码
阅读权限95
在线时间 小时
alzeng 发表于
/.+([^\\]+)\.txt/对这个正则我有点疑惑, .+匹配1个以上的任意字符,([^\\]+)匹配1个以上的非\的字符.
replace(/.+([^\\]+)\.txt/,'$1')& &n0003春.txt匹配的结果是0003春,那么这里的.+只匹配了一个字符n,.+为什么没有匹配n0或者n00...呢?
阅读权限95
在线时间 小时
& & & & & & & &
bluexuemei 发表于
/.+([^\\]+)\.txt/对这个正则我有点疑惑, .+匹配1个以上的任意字符,([^\\]+)匹配1个以上的非\的字符.
问题出在‘\n’可能被识别成了换行标识。
阅读权限20
在线时间 小时
alzeng 发表于
谢谢您的帮助,问题已解决,我以前多数处理的是数据运算方面,在数据导入方面没怎么接触,学习啦!
阅读权限20
在线时间 小时
本帖最后由 qixl 于
09:12 编辑
alzeng 发表于
EH大侠,您好,还要麻烦问一下,就是我的文件名开头一个字母是一个测站的简写,还有好几个站,有别的以d或a开头的,用这个程序的时候会提示文件名已经存在,程序中断,请问是怎么回事?应该是改文件名的时候,不过我不知道在什么地方修改,请您能给讲一下么?我用到这种转换的机会非常多,可就是不会修改工作表名称,是不是主要是& && && && &.Name = oJs.eval(&'& & Fl(i) & &'.replace(/.+([^\\]+)\.txt/,'$1');&) 的问题?如果是纯文字或纯数字该怎么写?如果麻烦的话能告诉我在什么资料里能查到这些吗?
阅读权限95
在线时间 小时
qixl 发表于
EH大侠,您好,还要麻烦问一下,就是我的文件名开头一个字母是一个测站的简写,还有好几个站,有别的以d或 ...
因为\n\d等在此识别为其它特定符号,此句代码修改为:
.Name = oJs.eval(&'& & Replace(Fl(i), &\&, & &) & &'.replace(/.+\s(\S+)\.txt/,'$1');&)
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师写一个批处理,将txt转换成excel,急求_百度知道【已解决】如何用批处理将特定文字内容分两列写入excel文件? - BAT求助&讨论 -
批处理之家 批处理_BAT_CMD_DOS_VBS_Perl_Python_PowerShell - Powered by Discuz!
帖子473&积分3364&技术6 &捐助0 &注册时间&
【已解决】如何用批处理将特定文字内容分两列写入excel文件?
本帖最后由 Lumiere 于
23:24 编辑
我有一个文本,内容很有规律,写在一个名为1.txt的文本文件中,内容如下:
……………………………………
……………………………………
耔晶取向 seed orientation
籽晶生长 seeded growth
均质核化 homogeneous nucleation
异质核化 heterogeneous nucleation
均匀化热处理 homogenization heat treatment
……………………………………
……………………………………
……………………………………
基本都是这样的专业术语,如果我想用批处理把他们分成两列对应写入一个名为1.xlsx的excel文件的话,纯批处理能做到吗?不能的话应该借助什么其他脚本呢?如果可能,请在其他脚本的代码处给出相应的注释,谢谢!
感谢给帖子标题标注[已解决]字样PB + 2
Still with wax
帖子8239&积分36977&技术180 &捐助510 &注册时间&
@echo off
(for /f &tokens=1*& %%i in (1.txt) do (
& & echo %%i,%%j
))&1.csv复制代码
感谢你,能完美实现。技术 + 1
【论坛捐助】
【批处理在线视频分享】
【微信公众号、微信群、QQ群】
帖子473&积分3364&技术6 &捐助0 &注册时间&
& & 我想再问下,如果两列之间没有空格,就是英文和中文直接链接在一起的,比如从“中文english”这样的格式,怎么能方便的用代码实现分离,并且做成那样的excel文件?有没有简单的命令能区分中文和英文字符然后把字符串截断的命令?
Still with wax
帖子1005&积分3065&技术218 &捐助160 &注册时间&
本帖最后由 tmplinshi 于
15:02 编辑
Lumiere @echo off
call :txt2csv &1.txt& &1.csv
exit /b
:txt2csv &InputFile&
	SetLocal EnableDelayedExpansion
	
	for /f &usebackq tokens=*& %%i in (&%~1&) do (
		set str_full=%%i
		for /f &delims=abcdefghijklmnopqrstuvwxyz& %%a in (&%%i&) do (
			echo %%~nxa,!str_full:*%%a=!
		)
	)
	
	EndLocal
goto :eof复制代码
乐于助人技术 + 1
帖子473&积分3364&技术6 &捐助0 &注册时间&
经测试完美运行,非常感谢。代码基本都懂,但是还有三个点需要帮忙解疑:
1. csv文件是excel类型文件,为什么能用批处理写入内容形成这种文件却不能写成xlsx文件?
2. 为什么在两部分内容之间加入逗号“,”就可以实现将两部分写在同一行相邻的两个单元格?可以用其他的字符代替么?
3. for结构里最后一条为什么是%%~nxa,这个不是扩展成一个文件名和扩展名的意思吗?不是直接用%%a就可以了吗?
Still with wax
帖子1005&积分3065&技术218 &捐助160 &注册时间&
1. csv文件是excel类型文件,为什么能用批处理写入内容形成这种文件却不能写成xlsx文件?
因为批处理只能输出纯文本,而 xlsx 其实是 zip 压缩文件。
2. 为什么在两部分内容之间加入逗号“,”就可以实现将两部分写在同一行相邻的两个单元格?可以用其他的字符代替么?
因为 csv 的格式就是这样——用逗号分隔。可以用 Tab 符号代替,但是文件格式要保存为 UTF-16 LE。
3. for结构里最后一条为什么是%%~nxa,这个不是扩展成一个文件名和扩展名的意思吗?不是直接用%%a就可以了吗?
%%~nxa 可以去掉末尾的空格
乐于助人技术 + 1
帖子473&积分3364&技术6 &捐助0 &注册时间&
& & 谢谢耐心的回复,这个%%~nxa既然说扩展为文件名和扩展名,这个不是跟文件相关的概念么,怎么用在字符串上了,是巧用吗?还有其他的用途么?我先把帖子结了。
Still with wax
帖子1005&积分3065&技术218 &捐助160 &注册时间&
是的,巧用。
帖子473&积分3364&技术6 &捐助0 &注册时间&
谢谢,无疑问了,多谢解答,结贴了。
Still with wax
[通过 QQ、MSN 分享给朋友]批处理怎样把txt批量转换为excel? - BAT求助&讨论 -
批处理之家 批处理_BAT_CMD_DOS_VBS_Perl_Python_PowerShell - Powered by Discuz!
帖子35&积分55&技术0 &捐助0 &注册时间&
批处理怎样把txt批量转换为excel?
txt批量转换为excel,txt内容是用空格分开的。
帖子66&积分88&技术3 &捐助0 &注册时间&
excel直接导入就好了....
帖子2886&积分6998&技术330 &捐助0 &注册时间&
<td class="t_msgfont" id="postmessage_楼正解,Excel导入的时候可以选择列分隔符。
帖子35&积分55&技术0 &捐助0 &注册时间&
& & 文件太多了,上千个,太费时了。有没有什么好点方法?网上的转换工具不好使,而且名称还得手动修改。
帖子8239&积分36977&技术180 &捐助510 &注册时间&
@echo off
for /f &delims=& %%a in ('dir /b *.txt') do (
&#9;(for /f &usebackq tokens=1-3& %%i in (&%%a&) do (
& && &&&echo %%k,%%j,%%i
& & ))&&%%~na.csv&
)复制代码
【论坛捐助】
【批处理在线视频分享】
【微信公众号、微信群、QQ群】
[通过 QQ、MSN 分享给朋友]}

我要回帖

更多关于 txt如何转换成excel 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信