将Excel表格导入phpMyAdmin

6

我目前在使用phpMyAdmin进行试验,并遇到了一个问题。当我将CSV文件导入phpMyAdmin时,它会对数字进行四舍五入。我已将该列设置为float,在Excel中将该列设置为Number(还尝试了text / General),但无济于事。有人遇到过这个问题并找到了可行的解决方案吗?

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


将列数据类型设置为varchar()。 - rohitr
3
为什么这被标记为PHP? - Epodax
确认一下,对于将来遇到这个问题的人们,将带有数字的列设置为varchar()确实解决了问题。谢谢,Roihitr。 - Dannys
@Dannys19 你必须手动完成吗? - Abdulla Nilam
@Moderator 是的,我不得不进入我的PHPmyAdmin数据库并手动将其更改为varchar(),然后将Excel中的列更改为数字。 - Dannys
你是在上传一个 .csv 还是 .xls(x) 文件? - Jason
3个回答

11
  1. 您的文件应该是这样的(十进制字段是通用类型):

xlssheet

  1. 另存为CSV。文件将会以;分隔。

新建表格:

  1. 打开phpMyAdmin,选择您的数据库,点击导入并选择要上传的文件
  2. 如果没有选择,将格式更改为CSV
  3. 更改特定格式选项 - 用以下字符分隔: ;
  4. 确保复选框(文件的第一行包含表列名(如果未选中此项,第一行将成为数据的一部分))被选中
  5. 点击Go
  6. 新的表格将按照CSV中的第一行结构创建。

已有表格:

  1. 打开phpMyAdmin,选择匹配导入文件结构的表格,点击导入并选择要上传的文件
  2. 如果没有选择,将格式更改为CSV
  3. 更改特定格式选项 - 用以下字符分隔: ;
  4. 将跳过查询数更改为1 (这将跳过带有列名的第一行)
  5. 点击Go
  6. 匹配CSV结构的选定表格将被更新,CSV中的行将被插入。

0

我曾经遇到过同样的问题。 通过将整数部分和小数部分之间的分隔符从逗号改为点来解决。

例如: 将365,40更改为365.40

这对我有用。


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...';

3
需要一些解释会更好。 - vonbrand

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接