- A+
所属分类:Centos
在Web项目中,我们经常会遇到Excel表格导出的功能,对于一些数据实时性要求不高的、逻辑相对简单的导出,是否可用通过shell脚本的方式来进行导出,从而降低开发成本呢?
我们都知道,CSV格式可以用Excel表打开,且CSV格式的本质是以“,”为分隔符的文本,那么我们在sql的字段之间加入","即可以CSV格式的文件进行输出。
下面,我们使用shell脚本来实现:
#!/bin/bash #文件保存路径 exportdata_dir = /data/export #获取日期 dd = `data + %Y%m%d` #数据库信息 #数据库用户名 username = 'root' #数据库密码 可以放在文件内 password = 'root' #数据库名 database_name = 'export_test' #数据库之地 host = '127.0.0.1' #如果文件夹不存在则创建 if [ ! -d $exportdata_dir ]; then mkdir -p $exportdata_dir; fi #导出订单的sql order_sql = ''; order_file = '订单' #导出文件 /usr/local/mysql/bin/mysql -h $host -u$username -p$password $database_name -e "$order_sql" > $exportdata_dir/$order_file.csv #如果文件已生成则删除 if [ -f $exportdata_dir/$order_file'_'$dd.csv]; then rm -rf $exportdata_dir/$order_file'_'$dd.csv; fi #转码 iconv -f "utf-8" -t "gbk" -c $exportdata_dir/$order_file.csv > $exportdata_dir/$order_file'_'$dd.csv; rm -rf $exportdata_dir/$order_file.csv
这样我们使用 centos 的crontab 定时任务执行shell脚本即可完成Excel的定时生成,如果需要进行用户下载,在后台代码中遍历 exportdata_dir 下的文件,提供下载功能即可。