使用shell实现Excel表格导出功能

摘自剑花烟雨江南

在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 下的文件,提供下载功能即可。

评论

(= ̄ω ̄=)··· 暂无内容!

回复

您还未登录,请先登录或者注册