是mysql么,如果是一次性的功能,就建一个表在navicat里面手动导入每个excel即可。。
不是一次性的,需要后续使用的呀。有点像是把20个表变成1个表,但是数据量大,Excel解决不了。所以寻求各位帮助
@我的小白: 以后经常有这样的文件,如果频次不大,就在nivacat中手动导入了。。
如果经每天每周都有这个文件要导入,就要写程序 ,但是你这ExceL太大20W程序 也会很慢,你应该从源头看能否解决。不要正在Excel,或者每个Excel少于1W条,再用程序读取导入
@为乐而来: 那用navicat如何实现把20个表联结成一个表,或者尽量减少表呢?
你下一个navicat用一下就知道了,
1.先建表结构,导入都是追加到这个表的记录后面。。
mysql 就可以处理了吧?千万级的,不大吧。
更进一步就是 分表 咯。
你说的 数据整合 是指 什么更复杂的计算吗?
整合就是把每个单独的Excel都建立在一起,后期便于查询和查看。如果是在MySQL中,如何把独立的20表都建立在同一个表格里呢?
@我的小白:
1、自己写程序
读取Excel数据,再存入 MySQL
2、看楼下 园友的
使用Navicat 导入每个excel到 一张表
@我的小白:
不想用MySQL的话(要建立表结构啥的),
也可以用 MongoDB——查询速度挺快的,
甚至 ElasticSearch——应该也有导入Excel的功能
@快乐的凡人721: 由于我没这块经验。写的是python读取Excel文件,然后再合并Excel表。最后导出的是EXcel文件。发现数据量太大,不行。我去试试navicat,也不是写入频繁。
python 你试试 pandas , 它应该能做到将 20 张excel读取加合并,至于写入 mysql 应该没问题,但是我没搞过这么大的数据量
思路如下,具体参数你可以百度
import pandas as pd
from sqlalchemy import create_engine
# 读取
df = pd.read_excel('1.xlsx')
df_2 = pd.read_excel('2.xlsx')
# 合并
df_all = pd.concat([df, df_2], axis=1)
# 写入db
engine = create_engine('mysql+pymysql://ledao:ledao123@localhost/pandas_learn')
df_all.to_sql(name='all_excel_table', con=engine, chunksize=1000, if_exists='replace', index=None)
估计写不了吧~~,excel 好像最多就是写1w数据行
@Cgrain: 你可以看下上面几层的评论, 他的需求是将 20 个excel 整合写入 MySQL,而不是生成一张新的 excel;
另外 pandas excel 底层也是有依赖的, 类似 xlrd openpyxl, 记得是可选的
至于行数限制,网上看到 xlrd (百万) openpyxl (65535\1048575), 数据波动和很多因素有关
@韆: 嗯 ,只是好奇下,我没有实际弄过,所以问问,没别的意思
@Cgrain: 没啥,遇到能解决的疑问,尽量顺手解决(个人习惯)