将Excel数据导入MySQL数据库

5

我有一个包含大约5000行数据的Excel文件需要插入到我的MySQL数据库表中,是否有人能够提供快速而简单的解决方案?谢谢。


这似乎与36217988031193非常相似。 - arober11
6个回答

6

快速且简单的方法:

在Excel中创建一个计算列来生成“插入”语句,然后将所有语句复制并粘贴到MySQL命令解释器中。

您的单元格应该有以下公式:

=CONCATENATE("insert into your table (col1, col2) values (", A1, ", ", B1, ");")

然后将公式复制到所有行,您就可以得到脚本。

其他快速且简单的方法:

使用ACCESS打开您的Excel文件,然后使用“导出到ODBC”功能将数据放入MySQL。这会稍微复杂一些,因为您需要设置ODBC驱动程序和连接,但如果您打算经常这样做,它可能是更好的选择。


2
使用这种方法,您可以拥有很好的控制权(包括处理自动字段)。 - Rudu
不错!有没有什么办法通过指定起始和结束列来自动生成列语句,而不需要太多麻烦? - Pekka
@Pekka 很好的问题。不幸的是,我不知道答案。我的猜测可能是肯定的。 - Pablo Santa Cruz
是的,这可能是可能的,但需要大量的代码才能实现。 - Pekka
我尝试过类似的解决方案,但无法导入长度超过255个字符的文本。 - Raul Luna

1

我过去曾通过将文件导出为CSV格式来完成这个任务。在MySQL中创建您的表格,在PHP中逐行读取CSV文件,并使用explode函数构建您的查询语句。

$file = fopen("myfile.csv", "r");
$sql = "INSERT INTO table(field1, field2, field3...";
while(!feof($file))
  {
      $fields = explode(',', fgets($file));
      $sql .= "VALUES("
      foreach($fields as $field)
      {
         $sql .= "$field, ";
      }
      $sql = substr($sql, 0, -2);
      $sql .= "), ";
  }
  $sql = substr($sql, 0, -2);
 fclose($file);
  mysql_query($sql);

1

保存为CSV格式;使用图形化MySQL客户端(例如HeidiSQL)的“导入文本文件”功能进行导入。


1

您可以将Excel文件导出为CSV文件,然后使用phpMyAdmin将其导入MySQL数据库。



0

除非你有其他工具可用,否则没有快速的方法。

您可以编写Excel宏并通过ODBC传输数据。

您可以将其导出为CSV,然后使用PHPMyAdmin导入它

您可以导出CSV,然后编写awk脚本将csv数据转换为一组插入语句

您可以使用(选择语言)

您是否有ODBC链接?您是否有任何编程语言? PHPMyAdmin?其他MySQL工具?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接