使用phpMyAdmin帮助将Excel文件导入MySQL

时间:2011-08-11 21:30:11

标签: mysql excel phpmyadmin rounding

我使用phpMyAdmin的内置导入功能将包含数字值(如884.557和731.0547)的Excel文件(.xls)上传到MySQL数据库中。但是,我有可怕的舍入/截断问题。出于某种原因,某些值(如884.557和731.0547)更改为99.99999或9.99999。但是,正确导入其他值,如127.0947。有人可以帮忙吗?如果可能的话,我仍然想使用内置的phpMyAdmin Import函数,因为它很有用。

2 个答案:

答案 0 :(得分:2)

如果您熟悉html和php,可以使用此脚本simplex excel library创建自己的excel导入到mysql。创建可能需要几分钟,但是一旦创建,您可以终生使用它。

创建一个HTML表格上传EXCEL SHEET

然后创建一个PHP脚本

require 'simplexlsx.class.php';

if (isset($_FILES['Filedata'])) {

$file = $_FILES['Filedata']['tmp_name']; // UPLOADED EXCEL FILE

$xlsx = new SimpleXLSX($file);

list($cols, $rows) = $xlsx->dimension();

foreach( $xlsx->rows() as $k => $r) { // LOOP THROUGH EXCEL WORKSHEET

$q = "INSERT INTO TABLENAME(COL1, COL2) VALUE(";
      $q .=  "'".mysql_escape_string($r[0])."', "; // EXCEL DATA
      $q .=  "'".mysql_escape_string($r[1])."', "; // EXCEL DATA
      $q .= ")";

      $sql = mysql_query($q);

        } // IF ENDS HERE
        } // FOR EACH LOOP
}

答案 1 :(得分:0)

这就是我通常做的事情:

  1. 将Excel文件另存为CSV格式

  2. 我将通过指示我感兴趣的每一列的数据类型来手动创建数据库表。

  3. 我将csv文件上传到选定的表,方法是忽略我在第2步定义的“列名”。小数被截断,因为phpmyadmin有一些无法解释的算法来确定数据类型和分配的大小到一个专栏。为防止这种情况,请在步骤2中创建上述表格。

  4. 希望它有所帮助!