bubifengyun 2016-06-21 16:49:14 4551次浏览 0条评论 1 0 0

Excel to MySQL 导入 Excel 数据到 MySQL

参考网页

功能设想

由于安全等原因,Excel 并不能很好的直接转化为 MySQL,幻想用 Python ,发现并不是很好解决问题。于是采用 PHP 直接读取的办法,自写 SQL 语句。
大致思路如下,

  • Excel 变成 CSV,
  • CSV 经过 PHP 变成 MySQL 语句,
  • 调整 MySQL 语句,导入数据

实现方法

  • 第一。使用 Excel 打开文件,直接复制所有内容到 VSCode ,由于某些不知道的原因,直接从 Excel 另存为 CSV 文件失败,如果你能直接导出成功,也可以直接导出 CSV 文件。在 VSCode 中,可以使用替换命令,把复制来的 Excel 内容中的 \t 全部替换为 。也可以不替换。不影响接下来的操作。然后保存这个数据为 xxx.csv 文件。一般 VSCode 默认的是 UTF-8 编码。你可以查看右下角的编码,如果有 UTF-8 字眼,则可以成功保存。

  • 第二。使用 PHP 把 CSV 变成 MySQL 脚本语句。
    这里有点取巧,使用 phpMyAdmin 插入两行,得出了如下的 SQL 脚本语句。

INSERT INTO `tbl_holiday` (`h_id`, `id`, `date_leave`, `which_year`, `date_come`, `date_latest`, `date_cancel`, `boss_id`, `where_leave`, `tel`, `kind`, `paper`, `report_month`, `ps`) VALUES ('1234', 'caocao.6@winter.com', '2016-06-21', NULL, NULL, NULL, NULL, NULL, 'sdf', 'sdf', '1', NULL, '0', NULL), ('12345', 'sunwukong14.14@winter.com', '2016-06-24', NULL, NULL, NULL, NULL, NULL, '123123', '123123', '123123', NULL, '0', NULL);

遂把参考网页的内容改为

<!DOCTYPE HTML><html lang='zh' dir='ltr' class='firefox firefox46'><head><meta charset="utf-8" />
<?php
$filename = "D://xxx.csv";
$file = fopen($filename, "r");
//$sql_data = "SELECT * FROM prod_list_1 ";

$count = 0;
$sql = "INSERT INTO `tbl_holiday` (`h_id`, `id`, `date_leave`, `which_year`, `date_come`, `date_latest`, `date_cancel`, `boss_id`, `where_leave`, `tel`, `kind`, `paper`, `report_month`, `ps`) VALUES <br>";
while (($data = fgetcsv($file, 10000, ",")) !== FALSE)
{
    $count++;    
    if($count>1){ 
      $sql .= "('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','$data[11]','$data[12]','$data[13]'),<br>";
    }
}

echo $sql;
  • 第三。语句调整。在输出的时候,把最后一个 改为 即可。

把导入的数据再处理

    没有找到数据。
您需要登录后才可以评论。登录 | 立即注册