您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 哈密分类信息网,免费分类信息发布

HP通过链式操作将数据输出excel(csv)格式

2024/3/30 19:47:04发布12次查看
csv是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。最广泛的应用是在程序之间转移表格数据,而这些程序本身是在不兼容的格式上进行操作的。现在我们来学习用php链式操作输出excel(csv)格式。
工作中经常会遇到产品运营让导出一些简单的比较规范的数据,这时候要是有一个简单的方法可以用就简单多了。下面是我的一个输出简单的excel(csv)的方法类,用到了链式操作。说到链式操作,在jquery中可能经常用到,是不是也感觉到链式操作用起来很爽,我们也在这个类中实现下链式操作。
其实链式操作很简单的,就是在前一个类方法最后返回一个该类的对象($this),提供给下一个方法调用。
 代码如下 复制代码
ext = $ext === null ? $this->ext : $ext;
        header(content-disposition: attachment;filename=.$filename...$this->ext);
        ob_flush();
        return $this;
    }
/**
     * @desc 打印excel标题
     * @param array $title 要输出的标题行
     * @param object array2csv 对象本身
     */   
    public function title($title){
        $title = implode(,, $title);
        echo $title.n;
        return $this;
    }
/**
     * @desc 打印一行excel内容
     * @param array $body 要输出的内容
     * @param object array2csv 对象本身
     */   
    public function body($body){
        if(!is_array($body) || empty($body)) {
            return false;
        }
        $body = implode(,, $body);
        echo $body.n;
        return $this;
    }
/**
     * @desc 打印多行excel内容
     * @param array $bodyarr 要输出的多行内容
     * @param object array2csv 对象本身
     */   
    public function multibody($bodyarr){
        if(!is_array($bodyarr) || empty($bodyarr)) return false;
foreach ($bodyarr as $key => $value) {
            if(is_array($value)){
                $value = implode(,, $value);
                echo $value.n;
            }
        }
        return $this;
    }
}
$test = new array2csv('test');
$arr = array(
    array('luluyrt@163.com','奔跑的man1','奔跑的userman'),
    array('luluyrt@163.com','奔跑的man2','奔跑的userman'),
    array('luluyrt@163.com','奔跑的man3','奔跑的userman'),
    array('luluyrt@163.com','奔跑的man4','奔跑的userman'),
    array('luluyrt@163.com','奔跑的man5','奔跑的userman'),
    array('luluyrt@163.com','奔跑的man6','奔跑的userman')
);
$test->title(array('测试','呵呵','哈哈'))->body(array('100,sadkl','sdsas','sdvsvdd分'))->multibody($arr);
输出的csv如下图所示:
但是这里面有个问题,从编码是utf-8的数据库中取出来的汉字输出excel(csv)会乱码,这个时候你要注意,要在获取数据之前设置数据库的编码,比如说我的需要的是utf-8进行输出,这个时候就要
$link = mysqli_connect($host, $user, $passwd, $db);
mysqli_query($link, set names utf8);
进行编码转换方可正常显示,下面是我的数据库信息和编码前后效果:
数据库信息
设置数据库编码前后的对比
哈密分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录