将Excel工作表导入phpMyAdmin

时间:2015-09-17 09:17:56

标签: mysql excel csv phpmyadmin

我正在玩phpMyAdmin,我遇到了一个问题。将我的CSV导入phpMyAdmin时,它会将数字四舍五入。我已将列设置为浮点数,并将Excel中的列设置为数字(也尝试过文本/常规)无效。有没有其他人遇到过这个问题并找到了可行的解决办法?

第二个问题,我是否可以上传CSV文件以使其与phpMyAdmin中的列名匹配到Excel列名并在正确的列中输入数据?

3 个答案:

答案 0 :(得分:7)

  1. 您的文件应如下所示(十进制字段属于常规类型):
  2. xlssheet

    1. 另存为CSV。文件可能会保存;分离
    2. 这是针对新表:

      1. 打开phpMyAdmin,选择您的数据库,点击导入并选择要上传的文件
      2. 如果未选择
      3. ,请将格式更改为CSV
      4. 更改格式特定选项 - 以:;
      5. 分隔的列
      6. 确保复选框(文件的第一行包含表列名称(如果未选中,第一行将成为数据的一部分))是SELECTED
      7. 点击开始
      8. 将根据CSV中的forst行创建新表格。
      9. 这适用于现有表:

        1. 打开phpMyAdmin,选择符合导入文件结构的数据库选择你的表,点击导入并选择要上传的文件
        2. 如果未选择
        3. ,请将格式更改为CSV
        4. 更改格式特定选项 - 以:;
        5. 分隔的列
        6. 将跳过的查询数更改为1(这将跳过包含列名的第一行)
        7. 点击开始
        8. 将更新与CSV结构相同的所选表格,并插入CSV格式的行。

答案 1 :(得分:0)

// connecting dB
$mysqli = new mysqli('localhost','root','','testdB');

// opening csv
$fp = fopen('data.csv','r');

// creating a blank string to store values of fields of first row, to be used in query
$col_ins = '';

// creating a blank string to store values of fields after first row, to be used in query
$data_ins = '';

// read first line and get the name of fields
$data = fgetcsv($fp);
for($field=0;$field< count($data);$field++){
    $col_ins = "'" . $col[$field] . "' , " . $col_ins;
}

// reading next lines and insert into dB
while($data=fgetcsv($fp)){
    for($field=0;$field<count($data);$field++){
        $data_ins = "'" . $data[$field] . "' , " . $data_ins;
    }
    $query = "INSERT INTO `table_name` (".$col_ins.") VALUES(".$data_ins.")";
    $mysqli->query($query);
}    
echo 'Imported...';

答案 2 :(得分:0)

我遇到了同样的问题。 解决了将整数部分和小数部分之间的分隔符从逗号更改为点的方法。

即 365,40至365.40

对我有用。