当前位置 博文首页 > Python 如何写入Excel格式和颜色

    Python 如何写入Excel格式和颜色

    作者:威震四海 时间:2021-05-23 18:30

    Python写入Excel有时需要合并单元格、或者改变文字内容的颜色

    首先导入xlwt模块

    import xlwt

    创建文件名

    创建Excel工作簿对象

    创建工作表

    创建样式字体红色

    filename = (u'商品模板.xls')
    wb = xlwt.Workbook()
    sheet = wb.add_sheet('sheet1')
    style = "font:colour_index red;"
    red_style = xlwt.easyxf(style)

    准备要写入的数据

    datas = [
         ['name','code', 'cost', 'goods_category_id',
         'weight', 'net_weight', 'brand_id',
         'out_id', 'image_url', 'customs_code',
         'hs_code', 'customs_price', 'active',     
         'is_group','cn_name','goods_name','goods_price'],
          [u'商品名称',u'商品编码', u'成本', u'商品类别',
          u'重量', u'净重', u'品牌', u'外部链接',
          u'图片URL', u'海关编码', u'hs编码',
          u'海关报价', u'商品状态(0/f)', u'是否组合商品(t/f)',
          u'申报中文名',u'商品名称',u'销售单价']
        ]

    表头数据的写入

    row_count = len(datas)
    for row in range(0, row_count):
      col_count = len(datas[row])
      for col in range(0, col_count):
        if row == 0:     # 设置表头单元格的格式
          sheet.write(row, col, datas[row][col])
        else:         # 表头下面的数据格式
          sheet.write(row, col, datas[row][col], red_style)

    合并单元格、写入注释

    note = u'红色字体部分为说明部分,请删除。产品批量更新字段必须要name(就是sku),其他需要更新的信息,自行复制下列字段添加到第一行(t为是,f为否)'
    sheet.write_merge(2, 2, 0, len(datas[1]), note, red_style)

    效果如下:

    这里着重介绍一下write_merge(start_row,end_row,start_col,end_col,data,style)中的6个参数

    start_row:合并单元格的起始行

    end_row:合并单元格的终止行

    start_col:合并单元格的起始列

    end_col:合并单元格的终止列

    data:内容

    style:样式

    补充:python操作Excel和Docx并控制文字的颜色及其他样式(通俗易懂)

    1、Excel

    from xlsxwriter.workbook import Workbook
    workbook = Workbook(r'test.xlsx') # 创建xlsx
    worksheet = workbook.add_worksheet('A') # 添加sheet
    red = workbook.add_format({'color':'red'}) # 颜色对象
    worksheet.write(0, 0, 'sentences') # 0,0表示row,column,sentences表示要写入的字符串
    test_list = ["我爱", "中国", "天安门"]
    test_list.insert(1, red) # 将颜色对象放入需要设置颜色的词语前面
    print(test_list)
    worksheet.write_rich_string(1, 0, *test_list) # 写入工作簿
    workbook.close() # 记得关闭
    

    结果如下:

    2、Docx

    from docx import Document # pip install python-docx
    from docx.shared import RGBColor, Pt
    from docx.oxml.ns import qn
    content = ["我爱", "中国"," 北京"]
    print(content)
    # 创建文档对象
    document = Document()
    # 创建段落对象,注意,里面的内容会显示在段落开头
    para = document.add_paragraph('段落0\n')
    # 往para段落对象中添加正文内容
    para.add_run(content[0])
    # 往para对象添加内容的同时返回内容对象run,之后可以通过这个run对象给这个部分的文字设置样式,比如颜色,大小,字体等
    run = para.add_run(content[1])
    # 给run对象设置字体颜色属性, RGBColor(250,0,0)表示红色
    run.font.color.rgb = RGBColor(250,0,0)
    # 给run对象设置字体大小属性
    run.font.size = Pt(20)
    # 给run对象设置字体类型属性
    run.font.name = u'宋体'
    run._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
    # para对象中添加其他内容
    para.add_run(content[2])
    # 保存
    document.save('test.docx')
    

    结果如下:

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持站长博客。如有错误或未考虑完全的地方,望不吝赐教。

    js
    下一篇:没有了