首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将CSV或制表符分隔的文件映射到MySQL多表数据库

如何将CSV或制表符分隔的文件映射到MySQL多表数据库
EN

Stack Overflow用户
提问于 2012-03-23 22:06:59
回答 2查看 2K关注 0票数 2

我有一个相当大的XLS文件,一个客户总共提供了830个选项卡/工作表。

我已经用PHPMyAdmin (显然是MySQL)设计了一个多表数据库来存放其中的信息,并手动填充了其中的大约5张表,以确保数据适合所设计的数据库。

有没有什么软件或工具可以帮助我格式化这个XLS文档并将其映射到数据库中的正确位置?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-23 22:13:17

根据to this thread you can import a csv file exported from excel和php。

引用@noelthefish

就像您在这里使用的

一样,这是一个内置到PHP中的函数

数组fgetcsv ( $handle [,int $length [,string $delimiter [,string $enclosure,string $escape ])

这是你所需要的最基本的东西。当然,您可以将数据库更新部分放入while循环中。也去掉ECHO语句,除非您正在调试,但基本上只需稍作修改,这一小段代码就可以满足您的需求。如果您需要更多信息,请查看uk.php.net

票数 3
EN

Stack Overflow用户

发布于 2012-03-23 23:16:58

可以将电子表格中的数据导入Access,并将字段映射到所需的任何表/列。还可以使用ODBC连接器将Access连接到ODBC DB,本质上是using Access as a front-end to MySQL

或者,您也可以按照任意as的建议执行,只需编写PHP代码将CSV数据转换为MySQL DB所需的格式即可。这就是我过去所做的,当时我们需要将来自不同来源的销售数据导入到内部销售/版税跟踪系统中。如果你需要频繁的导入,我建议你自动化一个系统(例如,通过Excel宏),将单个表导出到一个目录中的CSV中,或者,如果更方便的话,你可以将它们压缩在一起,然后上传到PHP应用程序中。

如果您正在向MySQL中进行大容量导入,则可能需要考虑使用LOAD DATA INFILE,它通常是the fastest way to import data into MySQL-to,即在修改数据之后将新的CSV文件写入磁盘的速度更快,然后使用LOAD DATA INFILE而不是直接执行大容量INSERT。在我的intranet上这样做实际上将插入时间从3秒以上(已经比~3分钟提高了一倍)。它花了数以千计的单个INSERT)减少到240ms。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9840723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档