thinkphp 读取存放在服务器上的excel表格并进行数据填充

  1. 先读取存放在服务器项目中的原始excel表格
 		 //原文件路径
        $filePath = public_path() . "checklist.xlsx";
        $file = IOFactory::load($filePath);
        $sheet = $file->getActiveSheet();
  1. 向表格中填充数据
	 $sheet->setCellValueByColumnAndRow(12, 3, date('Y年m月d日',strtotime($date)));
        $row = 9; //从第9行开始
        foreach ($list as $item) {
            //云商通订单号
            $sheet->setCellValueByColumnAndRow(1, $row, $item['orderNo']."\t");
            //订单类型
            $sheet->setCellValueByColumnAndRow(2, $row, $item['tradeType']);
            //交易金额
            $sheet->setCellValueByColumnAndRow(3, $row, $item['chgAmount']);
            //手续费
            $sheet->setCellValueByColumnAndRow(4, $row, $item['channelFee']);
            //交易时间
            $sheet->setCellValueByColumnAndRow(5, $row, $item['changeTime']);
            //商户订单编号
            $sheet->setCellValueByColumnAndRow(6, $row, $item['bizOrderNo']);
            //支付方式
            $sheet->setCellValueByColumnAndRow(16, $row, $item['tradeType']);
            $row++;
        }
  1. 设置填充内容字体大小和样式
        //加粗并使用8号字体
        $sheet->getStyle("L3")
            ->getFont()->setBold(true)->setSize(8);

        $sheet->getStyle("A9:W33")
            ->getFont()->setBold(true)->setSize(8);
  1. 生成文件url
		$exportCache = new ExportCache();
        $src = $exportCache->getSrc();

        //文件不存在 创建文件
        if (!file_exists($src)) {
            mkdir($src, 0775, true);
        }

        //文件名
        $fileName = $date.'对账单.xlsx';

        // 生成文件路径
        $writer->save($src . $fileName);

        //设置本地excel返回下载地址
        $vars = ['file' => $exportCache->setFile($fileName)];
        return (string)url("index/download/export", $vars, false, true);

此处会返回一个链接
访问返回的链接即可下载新的excel表格

如果在结尾加上

		$url = (string)url('index/download/export', $vars, false, true);
		header("Content-Type:application/octet-stream");
        header("Content-Disposition:attachment;filename=".basename($fileName));
        readfile($url);

会直接进行下载excel表格,无需在进行二次访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用ThinkPHP框架和PHPExcel类库导出Excel表格的步骤: 1.下载并安装PHPExcel类库,将下载的PHPExcel文件夹放入项目的vendor目录下。 2.创建一个控制器,例如ExcelController,并在控制器中添加一个export方法。 3.在export方法中,实例化PHPExcel类库,并设置Excel表格的属性,例如表格标题、表格列名等。 4.从数据库中获取需要导出的数据,并将数据填充Excel表格中。 5.将Excel表格输出到浏览器,让用户可以下载。 以下是一个示例代码: ```php <?php namespace app\index\controller; use think\Controller; use PHPExcel; use PHPExcel_IOFactory; class ExcelController extends Controller { public function export() { // 实例化PHPExcel类库 $objPHPExcel = new PHPExcel(); // 设置Excel属性 $objPHPExcel->getProperties()->setCreator("ThinkPHP") ->setLastModifiedBy("ThinkPHP") ->setTitle("Office 2007 XLSX Test Document") ->setSubject("Office 2007 XLSX Test Document") ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") ->setKeywords("office 2007 openxml php") ->setCategory("Test result file"); // 设置表格标题 $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '姓名') ->setCellValue('B1', '年龄') ->setCellValue('C1', '性别'); // 从数据库中获取数据 $data = db('user')->select(); // 将数据填充Excel表格中 $i = 2; foreach ($data as $item) { $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A' . $i, $item['name']) ->setCellValue('B' . $i, $item['age']) ->setCellValue('C' . $i, $item['gender']); $i++; } // 输出Excel表格到浏览器 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="user.xlsx"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值