FastAdmin在本地生成一个CSV文件

36 篇文章 0 订阅
22 篇文章 1 订阅

基于FastAdmin自带的phpoffice组件

<?php

namespace app\api\controller;

use app\common\controller\Api;

class MyExcel extends Api
{
    public function index()
    {
        set_time_limit(0);
        //循环生成一个数组
        for ($i = 0; $i <= 100; $i++) {
            $arrData_org[] = [
                'id' => $i + 1,
                'name' => '用户' . ($i + 1)
            ];
        }
        //定义标题 表格第一行
        $title = [
            [
                '编号', '用户'
            ],
        ];
        //合并数组
        $arrData = array_merge($title, $arrData_org);
        //创建Spreadsheet对象
        $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
        // 设置单元格格式 可以省略
        $styleArray = [
            'font' => [
                'bold' => true,
                'size' => 14,
            ],
        ];
        $spreadsheet->getActiveSheet()->getStyle('A1:B1')->applyFromArray($styleArray);
        $spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(25);
        $spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(25);
        $spreadsheet->getActiveSheet()->fromArray($arrData);
        //使用Spreadsheet对象的写入能力
        $writer = new \PhpOffice\PhpSpreadsheet\Writer\Csv($spreadsheet);
        //使用UTF-8保存数据
        $writer->setUseBOM(true);
        //保存文件
        $writer->save('test.csv');
        //终止
        $this->success('导出文件完成');
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 Python 的标准库 `csv` 和 `datetime`,以及操作系统模块 `os`,来实现每小时生成一个 CSV 文件的功能。具体实现步骤如下: 1. 导入所需模块: ```python import csv import datetime import os ``` 2. 设置 CSV 文件路径和文件名: ```python csv_dir = './csv_files' # CSV 文件目录 if not os.path.exists(csv_dir): # 如果目录不存在则创建 os.makedirs(csv_dir) filename = datetime.datetime.now().strftime('%Y-%m-%d-%H.csv') # 文件名为当前时间的小时数 csv_path = os.path.join(csv_dir, filename) # CSV 文件路径 ``` 3. 写入 CSV 文件内容: ```python with open(csv_path, 'w', newline='') as csvfile: writer = csv.writer(csvfile) writer.writerow(['Col1', 'Col2', 'Col3']) # 写入表头 writer.writerow(['Value1', 'Value2', 'Value3']) # 写入数据 ``` 4. 把上述代码封装成一个函数: ```python def generate_csv(): csv_dir = './csv_files' if not os.path.exists(csv_dir): os.makedirs(csv_dir) filename = datetime.datetime.now().strftime('%Y-%m-%d-%H.csv') csv_path = os.path.join(csv_dir, filename) with open(csv_path, 'w', newline='') as csvfile: writer = csv.writer(csvfile) writer.writerow(['Col1', 'Col2', 'Col3']) writer.writerow(['Value1', 'Value2', 'Value3']) ``` 5. 使用 `time` 模块的 `sleep` 函数来控制每小时生成一次 CSV 文件: ```python import time while True: generate_csv() time.sleep(3600) # 3600 秒为一小时 ``` 上述代码会一直循环运行,每隔一小时生成一个 CSV 文件。你可以根据需要修改文件目录、文件名、表头、数据,以及生成 CSV 文件的时间间隔。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值