zoukankan      html  css  js  c++  java
  • python生成xls,以字节方式上传阿里云oss

    # !/usr/bin/env python3
    # -*- coding: utf-8 -*-
    import xlwt
    import oss2
    from xlwt import CompoundDoc


    def download_url(exe_id, data):
    # 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
    auth = oss2.Auth('***', '***')
    # yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
    # 填写Bucket名称。
    bucket = oss2.Bucket(auth, 'https://oss-cn-***.aliyuncs.com', '***')
    work_book = xlwt.Workbook(encoding='utf-8')
    sheet = work_book.add_sheet('****')
    sheet.write(0, 0, 't_code')
    sheet.write(0, 1, 'pin_code')
    row_count = 0
    for t_code, pin_code in data.items():
    row_count += 1
    sheet.write(row_count, 0, f'{t_code}')
    sheet.write(row_count, 1, f'{pin_code}')
    # 根据xlwt实例对象的save()方法获取xls文件所需字节
    doc = CompoundDoc.XlsDoc()
    stream = work_book.get_biff_data()
    padding = b'x00' * (0x1000 - (len(stream) % 0x1000))
    doc.book_stream_len = len(stream) + len(padding)
    doc._build_directory()
    doc._build_sat()
    doc._build_header()
    # 拼接xls文件字节
    data = doc.header+doc.packed_MSAT_1st+stream+padding+doc.packed_MSAT_2nd+doc.packed_SAT+doc.dir_stream
    # 以字节方式上传oss
    bucket.put_object(f'{exe_id}.xls', data)
    return f'https://****/{exe_id}.xls'
  • 相关阅读:
    【算法】欧几里德算法--求最大公约数
    g++编译器的使用
    How arduino IDE works?
    【算法】反转链表
    判断一个数是否含有相同的数字
    Java集合ArrayList源码解读
    【算法】二分查找
    移动架构-原型模式
    移动架构-单例模式
    移动架构-简单工厂模式
  • 原文地址:https://www.cnblogs.com/yz-w/p/15175814.html
Copyright © 2011-2022 走看看