将 Excel sheet 导入 phpMyAdmin
Importing Excel sheet into phpMyAdmin
我目前正在使用 phpMyAdmin,但遇到了一个问题。将我的 CSV 导入 phpMyAdmin 时,它会四舍五入数字。我已将列设置为浮点数,将 Excel 中的列设置为数字(也尝试了 text/General),但无济于事。有没有其他人遇到过这个问题并找到可行的解决方法?
第二个问题,我是否可以上传 CSV 文件,使其将 phpMyAdmin 中的列名与 Excel 列名相匹配,并在正确的列中输入数据?
// 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...';
- 你的文件应该是这样的(十进制字段是通用类型):
- 另存为 CSV。文件可能会被保存;分离
这是新的 table:
- 打开 phpMyAdmin,选择您的数据库,点击导入并上传 select 文件
- 如果没有 selected
,请将格式更改为 CSV
- 格式特定选项的更改 - 列分隔:;
- 确保复选框(文件的第一行包含 table 列名称(如果未选中,第一行将成为数据的一部分))被选中
- 点击前往
- 将根据 CSV 中第一行的结构创建新 table。
这是针对现有的 table:
- 打开phpMyAdmin,选择你的数据库,选择你的TABLE匹配导入文件的结构,点击导入和select上传文件
- 如果没有 selected
,请将格式更改为 CSV
- 格式特定选项的更改 - 列分隔:;
- 将查询的跳过次数更改为 1(这将跳过带有列名的第一行)
- 点击前往
- 已选择table,其结构与 CSV 相同,将更新并插入 CSV 中的行。
我遇到了同样的问题。
解决了将整数部分和小数部分之间的分隔符从逗号更改为点的问题。
即
365,40 到 365.40
这对我有用。
我目前正在使用 phpMyAdmin,但遇到了一个问题。将我的 CSV 导入 phpMyAdmin 时,它会四舍五入数字。我已将列设置为浮点数,将 Excel 中的列设置为数字(也尝试了 text/General),但无济于事。有没有其他人遇到过这个问题并找到可行的解决方法?
第二个问题,我是否可以上传 CSV 文件,使其将 phpMyAdmin 中的列名与 Excel 列名相匹配,并在正确的列中输入数据?
// 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...';
- 你的文件应该是这样的(十进制字段是通用类型):
- 另存为 CSV。文件可能会被保存;分离
这是新的 table:
- 打开 phpMyAdmin,选择您的数据库,点击导入并上传 select 文件
- 如果没有 selected ,请将格式更改为 CSV
- 格式特定选项的更改 - 列分隔:;
- 确保复选框(文件的第一行包含 table 列名称(如果未选中,第一行将成为数据的一部分))被选中
- 点击前往
- 将根据 CSV 中第一行的结构创建新 table。
这是针对现有的 table:
- 打开phpMyAdmin,选择你的数据库,选择你的TABLE匹配导入文件的结构,点击导入和select上传文件
- 如果没有 selected ,请将格式更改为 CSV
- 格式特定选项的更改 - 列分隔:;
- 将查询的跳过次数更改为 1(这将跳过带有列名的第一行)
- 点击前往
- 已选择table,其结构与 CSV 相同,将更新并插入 CSV 中的行。
我遇到了同样的问题。 解决了将整数部分和小数部分之间的分隔符从逗号更改为点的问题。
即 365,40 到 365.40
这对我有用。