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

如何将CSV或制表符分隔的文件映射到MySQL多表数据库,mysql,database,phpmyadmin,import,Mysql,Database,Phpmyadmin,Import,我有一个相当大的XLS文件,一个客户提供了830个标签/工作表 我用PHPMyAdmin(MySQL)设计了一个多表数据库来存储其中的信息,并手动填充了其中的5个表,以确保数据能够放入设计的数据库中 是否有一个软件或某种工具可以帮助我格式化此XLS文档并将其映射到数据库中的正确位置?符合php 引用@noethefish 正如您似乎正在使用PHP一样,这里有一个内置于PHP中的函数 array fgetcsv ( resource $handle [, int $length [, string

我有一个相当大的XLS文件,一个客户提供了830个标签/工作表

我用PHPMyAdmin(MySQL)设计了一个多表数据库来存储其中的信息,并手动填充了其中的5个表,以确保数据能够放入设计的数据库中

是否有一个软件或某种工具可以帮助我格式化此XLS文档并将其映射到数据库中的正确位置?

符合php

引用@noethefish

正如您似乎正在使用PHP一样,这里有一个内置于PHP中的函数

array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure [, string $escape ]]]] )

<?php
$row = 1;
$handle = fopen("test.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $num = count($data);
    echo "<p> $num fields in line $row: </p>\n";
    $row++;
    for ($c=0; $c < $num; $c++) {
        echo $data[$c] . "\n";
    }
}
fclose($handle);
?>
array fgetcsv(资源$handle[,int$length[,字符串$delimiter[,字符串$enclosure[,字符串$escape]]))
这是你需要的最基本的东西。你当然会加入 while循环中的数据库更新部分。去掉回声 语句,除非您正在调试,但基本上使用 稍加修改,这段代码就能满足您的需要。如果 您需要更多信息,请访问uk.php.net


可以将数据从电子表格导入Access,并将字段映射到所需的任何表/列。实际上,也可以使用ODBC连接器将访问连接到MySQL数据库

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

如果您正在批量导入MySQL,您可能需要考虑使用<代码>加载数据INS/EXCOR>,这通常是,在您对数据进行了按摩之后,实际上更快地将新的CSV文件写入磁盘,然后使用<代码>加载数据INS/CODE >,而不是直接执行批量<代码>插入< /代码>。在我的内部网上执行此操作实际上将插入时间从3秒以上(已经比~3分钟有所改进。执行数千次

INSERT
s)缩短到240毫秒