用AppleScript/Automator实现CSV表格转.db数据库相关问题咨询
问题1:Database Events批量导入CSV的解决方案
macOS自带的Database Events本身不支持直接批量导入CSV,逐单元格读取效率极低,完全可以跳过这个工具,用macOS原生自带的sqlite3命令行工具完成导入,全程不需要安装第三方软件:
- 打开终端,cd到你的CSV文件所在目录
- 执行
sqlite3 target.db创建并打开你要生成的SQLite数据库文件(后缀就是你需要的.db格式) - 按顺序执行以下命令:
如果你的CSV第一行是表头,要加.mode csv .import 你的文件名.csv 表名--skip 1参数,即.import 你的文件名.csv 表名 --skip 1 - 执行
.quit退出即可,生成的target.db就是你要的文件,几千行数据的导入仅需几秒即可完成。
如果一定要用AppleScript实现自动化,也可以直接在AppleScript里调用上述sqlite3命令,不需要操作Database Events:
do shell script "cd /path/to/your/csv/directory && sqlite3 target.db \".mode csv\" \".import your_file.csv table_name --skip 1\""
问题2:Automator的Convert CSV to SQL无返回的排查要点
这个动作兼容性限制较多,常见操作遗漏点如下:
- 首先确认你的CSV文件编码为UTF-8,该动作不支持GBK、Latin等其他编码,编码不符会直接无输出
- 确认CSV的字段分隔符仅为英文逗号,没有混用制表符、中文逗号,字段内容如果包含逗号必须用双引号包裹,格式不规范会触发动作静默失败
- 若输入为文件,要确认上一个动作传递的是「文件或文件夹」类型的对象,而非文件路径文本,类型不匹配会被动作直接忽略
- 该动作生成的是SQL语句文本,不会直接生成.db文件,需要后续搭配「运行Shell脚本」动作执行生成的SQL才能得到数据库文件
内容的提问来源于stack exchange,提问作者gurkensaas
相关产品推荐
相关产品推荐

