编程 PHPExcel读取xlsx模板文件并写入文件导出

2024-11-17 17:33:15 +0800 CST views 3359

#今天接到一个新的需求 需要读取银行指定的xlsx文件模板 并按要求进行写入文件

1.png

    /**
     * 按银行的模板导出
     * @author wapele
     * @param array $data
     * @return void
     */
    public static function bank($data=[]){
        $path = "./config/TransBat.xlsx";
        $fileType = \PHPExcel_IOFactory::identify($path);
        $objReader = \PHPExcel_IOFactory::createReader($fileType);
        $objPHPExcel = $objReader->load($path);
        $currentSheet = $objPHPExcel->getSheet(0); //第一个工作簿
        $allRow = $currentSheet->getHighestRow(); //行数
        $i = 3;        
        foreach ($data as $v) {
            $x =0;
            foreach ($v as $vv) {
                $name = self::num2alpha($x).$i;
                $objPHPExcel->getActiveSheet()->setCellValue($name,$vv);
                $x++;
            }
           $i ++;
        }
        $file=date('YmdHis');
        $objPHPExcel->setActiveSheetIndex(0);
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="'.$file.'.xlsx"');
        header('Cache-Control: max-age=0');
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, $fileType);
        $objWriter->save('php://output');
        exit();     
    }
    /**
     * 数字到字母列
     * @author wapele
     * @param int
     * @param int
     * @return string
     */
    protected static function num2alpha($index, $start = 65)
    {
        $str = '';
        if (floor($index / 26) > 0) {
            $str .= self::num2alpha(floor($index / 26)-1);
        }
        return $str . chr($index % 26 + $start);
    }

https://github.com/PHPOffice/PHPExcel

复制全文 生成海报 php github

推荐文章

windows下mysql使用source导入数据
2024-11-17 05:03:50 +0800 CST
实现微信回调多域名的方法
2024-11-18 09:45:18 +0800 CST
php curl并发代码
2024-11-18 01:45:03 +0800 CST
虚拟DOM渲染器的内部机制
2024-11-19 06:49:23 +0800 CST
Vue3中如何使用计算属性?
2024-11-18 10:18:12 +0800 CST
Requests库详细介绍
2024-11-18 05:53:37 +0800 CST
linux设置开机自启动
2024-11-17 05:09:12 +0800 CST
平面设计常用尺寸
2024-11-19 02:20:22 +0800 CST
PHP服务器直传阿里云OSS
2024-11-18 19:04:44 +0800 CST
js一键生成随机颜色:randomColor
2024-11-18 10:13:44 +0800 CST
JavaScript数组 splice
2024-11-18 20:46:19 +0800 CST
Nginx 实操指南:从入门到精通
2024-11-19 04:16:19 +0800 CST
快手小程序商城系统
2024-11-25 13:39:46 +0800 CST
CSS实现亚克力和磨砂玻璃效果
2024-11-18 01:21:20 +0800 CST
Vue3的虚拟DOM是如何提高性能的?
2024-11-18 22:12:20 +0800 CST
如何在 Linux 系统上安装字体
2025-02-27 09:23:03 +0800 CST
软件定制开发流程
2024-11-19 05:52:28 +0800 CST
JavaScript 策略模式
2024-11-19 07:34:29 +0800 CST
7种Go语言生成唯一ID的实用方法
2024-11-19 05:22:50 +0800 CST
Golang - 使用 GoFakeIt 生成 Mock 数据
2024-11-18 15:51:22 +0800 CST
Nginx 性能优化有这篇就够了!
2024-11-19 01:57:41 +0800 CST
前端项目中图片的使用规范
2024-11-19 09:30:04 +0800 CST
Nginx 防盗链配置
2024-11-19 07:52:58 +0800 CST
使用Python提取图片中的GPS信息
2024-11-18 13:46:22 +0800 CST
网络数据抓取神器 Pipet
2024-11-19 05:43:20 +0800 CST
程序员茄子在线接单