我使用phpMyAdmin的内置导入功能将包含数字值(如884.557和731.0547)的Excel文件(.xls)上传到MySQL数据库中。但是,我有可怕的舍入/截断问题。出于某种原因,某些值(如884.557和731.0547)更改为99.99999或9.99999。但是,正确导入其他值,如127.0947。有人可以帮忙吗?如果可能的话,我仍然想使用内置的phpMyAdmin Import函数,因为它很有用。
答案 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)
这就是我通常做的事情:
将Excel文件另存为CSV格式
我将通过指示我感兴趣的每一列的数据类型来手动创建数据库表。
我将csv文件上传到选定的表,方法是忽略我在第2步定义的“列名”。小数被截断,因为phpmyadmin有一些无法解释的算法来确定数据类型和分配的大小到一个专栏。为防止这种情况,请在步骤2中创建上述表格。
希望它有所帮助!