当前位置 博文首页 > python 根据excel中颜色区分读取的操作

    python 根据excel中颜色区分读取的操作

    作者:不合格学霸 时间:2021-07-16 18:52

    要求:

    读取以下表格中所有字体为大红色或者单元格颜色为黄色的信息

    利用到的模块是:openpyxl

    import openpyxl
    filename="colortest.xlsx"#读取excel
    workbook=openpyxl.load_workbook(filename)
    worksheet=workbook.get_sheet_by_name("试题2")#读取Sheet
    rows,cols=worksheet.max_row,worksheet.max_column
    yellow=[]
    red=[]
    for i in range(1,rows):
     for j in range(1,cols):
      ce=worksheet.cell(row=i,column=j)
      fill = ce.fill
      font = ce.font  
      if fill.start_color.rgb=="FFFFFF00" and ce.value!=None:
       yellow.append(ce.value)
      if font.color.rgb=="FFFF0000":
       red.append(ce.value)
    print(yellow,red)

    结果:

    补充: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')
    

    结果如下:

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

    jsjbwy