如何把csv的数据分割成多个excel数据?

如何把csv的数据分割成多个excel数据?,第1张

1、首先Excel2007版一下最大支持65000多条数据,你必须安装Office2007版以上。

2、使用Access2007(Office组件之一),新建一个数据库。

3、使用导入外部数据中的“从文本导入”功能,选择CSV文件,注意一下导入向导中的“数据类型”及选择第一行做标题,直至完成。

4、导出为Excel文件即可。

目的就是避免几十万数据量造成电脑假死机。

当然你的电脑够BT的话,直接用Excel打开CSV文件,另存为Excel格式即可。

可以用 access,但是没有必要。CSV 是文本文件,网上找一个支持按行拆分的文件分割的小软件处理就可以了。

如果你不排斥自己写个脚本来处理,那么 bat 、power shell、VBS 都是可选的,会 python、perl 就更好了。比导入 access 之后再自己写输出可以省一步功夫。

数据太大,用数据库客户端软件直接导入非常卡,还是直接执行SQL吧。

1、指定文件路径。

2、字段之间以逗号分隔,数据行之间以\r\n分隔(我这里文件是以\n分隔的)。

3、字符串以半角双引号包围,字符串本身的双引号用两个双引号表示。

Sql代码

复制代码 代码如下:

load data infile 'D:\\top-1m.csv'

into table `site`

fields terminated by ',' optionally enclosed by '"' escaped by '"'

lines terminated by '\n'

顺带也备份个导出吧。

Sql代码

复制代码 代码如下:

select * from `site`

into outfile 'D:\\top-1m.csv'

fields terminated by ',' optionally enclosed by '"' escaped by '"'

lines terminated by '\n'

通过命令行导入(要求列与列之间以 英文逗号 分割,若字段中含有 , 则以 " 包裹)

load data infile 'D:/mysql-5.7.29-winx64/files/ratings_5.csv' into table ratings fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n'

踩坑一:文件路径用 \ 分割会报错,用 / 可(用 \\ 应该也可)

踩坑二:load data 命令报错

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

在 my.ini 中加入(空字符串代表允许从一切目录导入)

[mysqld]

secure-file-priv=''

然后再 Windows 的服务中重新启动 mysql

踩坑三:csv 文件中第一行是诸如 userId 这样的列名

如果你的 csv 文件不大,直接使用 notepad++ 打开后删除第一行即可

但在我们这里,千万级别的文件 notepad++ 无法打开,这时可以考虑两种方法

1. 将 csv 文件传入 Linux 服务器删去第一行

由于不知道如何在 Win 10 中做这个 *** 作,只能通过 Linux 中转执行

sed -i '1d' ratings.csv

检验是否成功,可以打印出第一行观察

cat ratings.csv | head -n 1

2. 通过工具把大的 csv 分成多个 notepad 能够打开的较小文件,对第一个文件删除第一行并依次导入

工具:splitcsv

亲测 5000000 条数据的 csv 文件可以在 notepad++ 中打开(只能同时打开 3 个)

这个工具还有个小坑:ratings_0.csv 的最后一行和 ratings_1.csv 的第一行是重复的,请手动删除


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10029754.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存