phpmyadmin 导出 excel 实际是 csv 文件,因扩展名伪装导致 excel 解析错误;推荐用 sql 查询页导出 csv for ms excel,再通过 excel 数据导入功能以 utf-8 编码加载。
phpmyadmin 本身不支持直接导出为 .xlsx(excel 2007+ 格式),它能生成的是 .csv 或 .ods,但 windows 用户双击 .csv 常被 excel 错误解析(中文乱码、数字变科学计数法)。真正“能直接打开就用”的方案,得绕过 phpmyadmin 的导出界面,靠它的 sql 导出能力 + 小技巧补救。
为什么 phpMyAdmin 的“Excel”导出选项实际是 CSV?
phpMyAdmin 导出页里选 Excel(或 Microsoft Excel 2007+)时,后台实际生成的是逗号分隔的 .csv 文件,只是把扩展名改成了 .xls 或 .xlsx。Excel 打开时不会校验内容,所以格式错位、编码错误、长数字被截断等问题频发。
- 导出设置中勾选
Columns separated with:为;(分号)比逗号更安全,尤其字段含英文逗号时 - 务必勾选
Put columns names in the first row,否则 Excel 无法识别表头 - 编码必须选
utf-8,并在导出后用记事本另存为ANSI(仅限简体中文 Windows)才能避免 Excel 乱码——但这手动步骤已脱离“直接”范畴
用 SELECT ... INTO OUTFILE 绕过界面导出(需服务器权限)
如果 phpMyAdmin 后端 MySQL 开启了 secure_file_priv 且你有 FILE 权限,可执行 SQL 直接写服务器磁盘上的 CSV,再下载。这比界面导出更可控,但不是所有共享主机允许。
SELECT * FROM `users` INTO OUTFILE '/tmp/users_export.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
- 路径
/tmp/必须存在且 MySQL 进程有写权限;secure_file_priv值可通过SHOW VARIABLES LIKE 'secure_file_priv';查看 - 导出文件只能由服务器管理员通过 FTP 或 SSH 获取,phpMyAdmin 界面不会显示该文件
- 不支持 UTF-8 BOM,Excel 打开仍可能乱码;补救方式是用 LibreOffice Calc 打开并另存为
.xlsx
用 phpMyAdmin 的“SQL 查询 → 导出”功能生成兼容 Excel 的 CSV
这是最实用、无需额外权限的方法:不依赖导出页,而是在 SQL 标签页运行查询,再点结果区下方的 Export 按钮。此时导出逻辑更底层,选项更全。
- 先执行
SELECT * FROM `table_name`;,确保结果集在页面上显示出来 - 滚动到结果表格下方,找到
Export按钮(不是顶部导航栏那个),点击后选择格式为CSV for MS Excel - 关键设置:勾选
Enclose fields in quotes,取消勾选Replace NULL with:(留空),编码选utf-8 - 导出后,用 Excel 2016+ 打开 → 数据选项卡 →
从文本/CSV→ 选择该文件 → 编码选UTF-8→ 分隔符勾选逗号→ 加载。这才是真正可靠流程
真正麻烦的从来不是“怎么点”,而是 Excel 自动猜测数据类型:身份证号、手机号开头的 0 会被吃掉,数值列可能转成日期。如果业务上必须保真,别信任何一键导出,老老实实导出 CSV 后用 Power Query 或 Python pandas 重载——那已经超出 phpMyAdmin 能力范围了。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











