python-3.x - 如何使用粗体标题,但非粗体单元格 - 填充 pygsheets==2.0.1 的 worksheet.append_table

标签 python-3.x google-sheets google-sheets-api pygsheets

下面的 python3 (pygsheets 2.0.1) 脚本将从 A2 开始的所有单元格加粗。
有没有一种简单的方法(即在一个命令中)要求所有这些单元格不加粗?

代码:

import boto3, botocore
import datetime
import json
import pygsheets

currentDT = str(datetime.datetime.now())

def create_spreadsheet(outh_file, spreadsheet_name = "jSonar AWS usage"):
    client = pygsheets.authorize(outh_file=outh_file, outh_nonlocal=True)
    spread_sheet = client.create(spreadsheet_name)
    return spread_sheet


def get_regions():
    region = "us-west-1"
    regions = dict()

    ec2 = boto3.client("ec2", region_name=region)
    ec2_responses = ec2.describe_regions()

    ssm_client = boto3.client('ssm', region_name=region)
    for resp in ec2_responses['Regions']:
        region_id = resp['RegionName']
        tmp = '/aws/service/global-infrastructure/regions/%s/longName' % region_id
        ssm_response = ssm_client.get_parameter(Name = tmp)
        region_name = ssm_response['Parameter']['Value'] 
        regions[region_id] = region_name
    return(regions)


def rds_worksheet_creation(spread_sheet, regions, spreadsheet_index):
    worksheet = spread_sheet.add_worksheet("RDS", rows=100, cols=26, src_tuple=None, src_worksheet=None, index=spreadsheet_index)
    worksheet.cell('A1').set_text_format('bold', True).value = 'DBInstanceIdentifier'
    worksheet.cell('B1').set_text_format('bold', True).value = 'MasterUsername'
    worksheet.cell('C1').set_text_format('bold', True).value = 'Region'
    worksheet.cell('D1').set_text_format('bold', False).value = 'Sent Query to (Name)'
    worksheet.cell('E1').set_text_format('bold', False).value = 'Sent Query to (email)'
    worksheet.cell('F1').set_text_format('bold', False).value = 'WorksheetCreated: %s' % currentDT
    cells_data = list()
    for region, region_h in sorted(regions.items()):
        client = boto3.client('rds', region_name=region)
        clnt = boto3.client('ssm', region_name=region)
        db_instances = client.describe_db_instances()
        for instance in db_instances['DBInstances']:
            MasterUsername = instance['MasterUsername']
            DBInstanceIdentifier = instance['DBInstanceIdentifier']
            cells_data.append([DBInstanceIdentifier, MasterUsername, region_h])
    worksheet.append_table(cells_data, start='A2')


if __name__ == "__main__":
    spread_sheet = create_spreadsheet(spreadsheet_name = "jSonar AWS usage",
                                                            outh_file = '/home/qa/.aws/client_secret.json')
    regions = get_regions()
    rds_worksheet_creation(spread_sheet, regions, 0)
    spread_sheet.share("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5a373f1a3935282a74393537" rel="noreferrer noopener nofollow">[email protected]</a>")

输出:

spreadsheet screenshot

最佳答案

如果我理解正确的话,你想在单个命令中取消多个单元格的粗体。

要设置单元格范围的格式,请创建一个数据范围并使用apply_format

model_cell = Cell('A1')
model_cell.set_text_format('bold', False)
Datarange('A1','A10', worksheet=wks).apply_format(model_cell)

docs

关于python-3.x - 如何使用粗体标题,但非粗体单元格 - 填充 pygsheets==2.0.1 的 worksheet.append_table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56501475/

相关文章:

c - 扩展模块: marshalling void * to bytearray (and/or vice versa)

python - 在没有空格的情况下在 Python 中打印

python - 允许 zip 函数将 1D 映射到 2D 数组

google-apps-script - Apps 脚本错误 : Cannot find method getRange(number, 数字、数字、数字)

google-apps-script - Google 脚本 - 在邮件应用程序中更改 "From"

google-apps-script - 从 Google 电子表格接收实时更新

python - 将变量注入(inject)导入命名空间

javascript - 具有特定范围的自定义 OnChange() 触发器 (googlesheet)

google-apps-script - Google Apps 脚本项目触发器在共享用户中不可见

google-sheets - 谷歌工作表中带有countif的Arrayformula计算重复项直到当前行