我有一个相当大的XLS文件,一个客户总共提供了830个选项卡/工作表。
我已经用PHPMyAdmin (显然是MySQL)设计了一个多表数据库来存放其中的信息,并手动填充了其中的大约5张表,以确保数据适合所设计的数据库。
有没有什么软件或工具可以帮助我格式化这个XLS文档并将其映射到数据库中的正确位置?
发布于 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
发布于 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。
https://stackoverflow.com/questions/9840723
复制相似问题