• 编程小白的自学笔记十七(python办公自动化操作EXCEL表格之作图)


    系列文章目录

    编程小白的自学笔记十六(python办公自动化操作EXCEL表格)

    编程小白的自学笔记十五(python办公自动化操作EXCEL表格)

    编程小白的自学笔记十四(python办公自动化创建、复制、移动文件和文件夹

    编程小白的自学笔记十三(python办公自动化读写文件)

    编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二)

    编程小白的自学笔记十一(python爬虫入门三Selenium的使用+实例详解)

    编程小白的自学笔记十(python爬虫入门二+实例代码详解) 

    编程小白的自学笔记九(python爬虫入门+代码详解) 


    目录

    系列文章目录

    文章目录

    前言

    一、条件选择后添加背景

    二、插入柱状图

    总结


    前言

    今天我们学习两个小案例,感觉还都是非常实用的:

    1. 小实战1:条件选择后添加背景
    2. 小实战2:生成柱状图

    一、条件选择后添加背景

    昨天我们已经完成了表格大部分操作,并且将数值大于50的复制到一个新表,现在我们来试试将数值大于50的行背景改为黄色,而文字设置一个随便什么颜色,先试试看,然后再详解代码,我们第一次写的代码是:

    1. from openpyxl.styles import Font,PatternFill
    2. import openpyxl
    3. wb=openpyxl.load_workbook('大于50的表格.xlsx')
    4. ws=wb.active
    5. wb.copy_worksheet(ws)
    6. ws.title='我是新的'
    7. font = Font(name='黑体',size=30,bold=True,italic=True,color='000ff0')
    8. fill = PatternFill(fill_type='solid',fgColor='ffff00')
    9. rows = wb['我是新的'].rows
    10. for row in rows:
    11. if int(row[1].value)>75:
    12. row[0].fill=fill
    13. row[1].font=font
    14. wb.save('大于50的表格.xlsx')

     运行后,成功了

     

    详解代码:

    from openpyxl.styles import Font,PatternFill’,很好理解,导入字体库和填充库

    wb.copy_worksheet(ws)’,这段代码是为了不破坏原有的表格,所以我重新复制了一份。

    经实验,“color='000ff0'”是蓝色

    这个实验还是有两个地方没有达到预期的效果;

    一是没有将一行所有的单元格都填充,也没有将一行所有单元格的字体改变。这好办,是我们少写了,只需将代码增加两行。

    二是我们仔细观察可以发现,我们复制出工作簿以后,修改的是原工作簿,我们想是修改复制后的工作表,重命名也是复制后的工作表,原表是一切不变,我把新建的工作表删掉,再把原表的名称修改回来,我们尝试修改代码:

    1. rom openpyxl.styles import Font,PatternFill
    2. import openpyxl
    3. wb=openpyxl.load_workbook('大于50的表格.xlsx')
    4. ws=wb.active
    5. ws=wb.copy_worksheet(ws)
    6. ws.title='我是新的'
    7. font = Font(name='黑体',size=30,bold=True,italic=True,color='000ff0')
    8. fill = PatternFill(fill_type='solid',fgColor='ffff00')
    9. rows = wb['我是新的'].rows
    10. for row in rows:
    11. if int(row[1].value)>75:
    12. row[0].fill=fill
    13. row[1].fill = fill
    14. row[0].font = font
    15. row[1].font=font
    16. wb.save('大于50的表格.xlsx')

     运行成功后,实现了我们想要的结果。

     

    二、插入柱状图

    在EXCEL表格使用中,难免要将数据生成柱状图插入表格,因为图形会显的更加直观,而且我发现以前的office生成图标很简单,现在的wps要登录才行,是不是要会员就不清楚了,毕竟我登录都不想登录,我们先来看看生成柱状图代码:

    1. from openpyxl.chart import BarChart,Reference
    2. import openpyxl
    3. wb=openpyxl.load_workbook('大于50的表格.xlsx')
    4. ws=wb['我是新的']
    5. chart=BarChart()
    6. data=Reference(worksheet=ws,min_row=1,max_row=6,min_col=1,max_col=2)
    7. categories=Reference(ws,min_row=2,max_row=6,min_col=1)
    8. chart.add_data(data,titles_from_data=True)
    9. chart.set_categories(categories)
    10. ws.add_chart(chart,'F6')
    11. wb.save('大于50的表格.xlsx')

     运行成功,我们来看运行结果

     

     

    代码详解:

    from openpyxl.chart import BarChart,Reference是Python编程语言中导入openpyxl库中的BarChart和Reference类的语句。

    BarChart是openpyxl库中的一个类,用于创建条形图。它可以接受一系列数据并将其绘制成条形图。

    Reference是openpyxl库中的一个类,用于在Excel工作表中引用单元格或范围。它可以用于在图表中设置数据源。

    chart=BarChart()是Python编程语言中创建一个BarChart对象的语句。

    BarChart是openpyxl库中的一个类,用于创建条形图。它可以接受一系列数据并将其绘制成条形图。

    在这个语句中,我们将BarChart类的实例赋值给变量chart,这样我们就可以使用这个实例来创建和修改条形图了。

    data=Reference(worksheet=ws,min_row=1,max_row=6,min_col=1,max_col=2) 是Python编程语言中创建一个Excel工作表中的数据引用的语句。

    Reference是openpyxl库中的一个类,用于在Excel工作表中引用单元格或范围。它可以用于在图表中设置数据源。

    在这个语句中,我们将一个Reference对象赋值给变量data。这个对象指定了要引用的数据的范围和位置。具体来说,它指定了要引用的工作表(在这里是ws),以及要引用的单元格的最小行号(1)、最大行号(6)、最小列号(1)和最大列号(2)。这意味着我们将引用第1到第6行、第1到第2列之间的所有单元格。

    chart.add_data(data,titles_from_data=True) 是Python编程语言中在openpyxl库中创建一个BarChart对象时添加数据和标题的语句。

    在这个语句中,我们将数据引用(data)和一个布尔值(True)作为参数传递给BarChart对象的add_data()方法。这个方法用于向图表中添加数据。

    同时,我们还设置了一个名为titles_from_data的参数,它的值为True。这意味着我们希望从数据中自动提取标题并将其添加到图表中。如果我们没有显式地提供标题,那么这个参数将被忽略。

    ws.add_chart(chart,'F6')

    这表示表格插入的位置,这很好理解。

     其实这个表格也没有达到我们想要的预期,在这个案例中,我们并不想每个序号生成两个柱状图,但是却是有一蓝一红两根柱子,试试看怎么去,一是我把序号内容改成文字,看看会怎么样.

     

     没有报错,而且得到我们想要的样式。

    二是我们将数值改成文字看看会怎么样

    错误是没有报错,也生成了图形,只是没有柱子。

    三是我们还是改代码,得到我们想要的结果,思来想去,只能把代码

    data=Reference(worksheet=ws,min_row=1,max_row=6,min_col=1,max_col=2)

    改为

    data=Reference(worksheet=ws,min_row=1,max_row=6,min_col=2)


    总结

    1024

  • 相关阅读:
    APUS成为深圳市人工智能行业协会理事单位,CEO李涛受聘专家
    CMS知识小结及wordpress的安装与漏洞复现
    【暑期每日一题】洛谷 P8301 [CoE R4 A/Stoi2041] 娘子
    OneFlow框架添加算子实践:expand和repeat
    JS-Vue-属性 表单 事件绑定
    服务发现问题
    快速或者慢速:如何将视频调整为合适的播放速度
    Go语言进化之路:泛型的崛起与复用的新篇章
    OPPO手机便签数据搬家到华为mate60Pro手机怎么操作
    使用VLC实现自动播放视频
  • 原文地址:https://blog.csdn.net/m0_49914128/article/details/133972205