【问题标题】:Help Importing an Excel File into MySQL using phpMyAdmin帮助使用 phpMyAdmin 将 Excel 文件导入 MySQL
【发布时间】:2011-10-25 09:01:04
【问题描述】:

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

【问题讨论】:

  • 您是否尝试过更改“.”以“,”作为小数位?可能是本地化错误。

标签: mysql excel phpmyadmin rounding


【解决方案1】:

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

创建一个 HTML 表单来上传 EXCEL 表格

然后创建一个如下所示的 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
}

【讨论】:

    【解决方案2】:

    这是我通常做的:

    1. 将excel文件保存为CSV格式

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

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

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-26
      • 2014-07-12
      • 1970-01-01
      • 1970-01-01
      • 2013-05-03
      • 2014-08-06
      • 1970-01-01
      • 2013-05-11
      相关资源
      最近更新 更多