在excel中,如何将每行数据输出为一个独立的txt文本文件?

已知可以使用VBA代码实现,我在网上找到了一些,测试后效果不理想。求推荐一款可以实现此功能的工具。

印象里txt分割工具挺多的,把excel复制到txt里然后分割txt会不会更简单点

我以前分割过word文件,记得那个工具只提供按(分割后的)文件数或单文件大小分割这两项操作,不确定能否实现按行分割。不过这倒是个好方法,我等下找找看。

额…试了几个工具,貌似不太行

先另存为csv,再用任何一个编程语言分割?

链接: 百度网盘 请输入提取码 提取码: ctuq

1、将excel导出为csv文件。
2、检查该csv文件编码,如果不是ansi编码,则将该csv文件另存为ansi编码的csv文件。(←这一步不一定是必须的,您可以自己尝试一下不转换编码有没有问题)
3、将程序放到该csv文件同一文件夹。
4、在控制台(命令提示符下)执行命令:

split 你的csv文件.csv
3 Likes

先把 excel 另存为 txt,然后用脚本/软件逐行分割。
下面是搜到的一个大神写的批处理脚本(简洁到我眼花 :joy:): 原帖传送门

set n=3
powershell -c "$n=1;$m=1;gc '文本.txt'|%%{$f=''+$m+'.txt';$_>>$f;if($n%%%n% -eq 0){$m++};$n++}" 
pause

使用说明:
1、将脚本内容复制到记事本,并按需修改:第一行的 n=3 是设定每n行分割成一个文件;第二行的 文本.txt 是待分割的文件名;
2、 保存脚本,将后缀名修改为 .cmd.bat
3、把待分割的文件和脚本放在同一个文件夹,双击运行脚本;
4、等脚本处理完,任意键退出。

程序运行后报错

少量数据还行叭,我一个表格有几万行数据,导出为txt后直接打不开了。

不是让你直接运行,按照我说的做。
程序默认后面至少要有一个参数作为文件名传入的

我自己测试,1万行的excel,导出为csv文件,分割成1万个文件,需要2秒不到的样子。

1 Like

提供一个不需要编程的办法:

excel另存为 csv文件. 用emeditor直接分割就行了.

要善用自己手头的软件. 不一定需要emeditor, 这是我自己常用的编辑器,可以打开超大文件.

如果没有emeditor, 可以使用word.打开csv文件.

调整为大纲视图, 然后全部设为一级标题, 创建即可.

你就会得到无数个txt文档.

image

3 Likes

导出CSV获得纯文本,再用文本分割工具分割CSV就可以了

具体是什么需求呢? Excel里面数据时什么样?输出文件文件名是什么?内容是怎么根据excel单元格拼接的?如果可能最好说一下为什么要分这么多文件,如果要实现某个目的,可能网友们有更好的方法而不是创建很多文本文件。

大成功!傻瓜操作适合我,多谢多谢hh

有一处bug,符号【"】转换后变成了【""""】

我的程序没有任何添加字符的代码,仅是读入csv文件,以换行符为标志进行分割文本并写出。
您那里的符号转变,可能跟excel导出csv过程相关吧。

我将【"】这个字符单独放在一个csv里,运行程序,然后打开txt就变成【""""】,无大语了就是说

我自行测试,无法复现你的问题。
我复制你文中的那个【"】,放到一个单独的csv中,运行程序,结果文件中还是这个【"】
GIF 2022-1-3 20-10-17

破案了,不是程序问题,是我csv的问题。刚才试了下,双击打开是【"】,用记事本打开就变成【""""】了,不知道为啥。

为什么要打开导出后的txt,分割过程的前、中、后都不需要打开待分割的文件。