zoukankan      html  css  js  c++  java
  • Python之openpyxl模块

    工作中经常会用到excel表格,在python中,我们可以利用openpyxl很方便地操作它。本文先以两个示例快速介绍openpyxl的基本用法。

    示例1

    展示了创建新的工作薄、激活默认表单、以行的形式赋值并保存文件。

    from openpyxl import Workbook
    
    wb = Workbook()
    # 激活默认表单
    ws = wb.active
    # 以行为单位输入
    row = ["A1", "B1", "C1"]
    ws.append(row)
    # 保存文件
    wb.save("1.xlsx")

    此时会得到名为"1.xlsx"的excel文件,该excel文件中只有一个默认表单,默认表单的第一行被赋值了。

    示例2

    展示了加载工作薄、创建新表单、以单元格的形式赋值并保存文件。

    from openpyxl import load_workbook
    
    # 加载文件
    wb = load_workbook("1.xlsx")
    # 创建新的表单
    ws = wb.create_sheet("my sheet")
    # 给A3单元格赋值
    ws['A3'] = 10
    # 保存文件
    wb.save("2.xlsx")

    此时会得到名为"2.xlsx"的excel文件,该excel文件含有默认和新建的两个表单,其中新建的表单中A3单元格被赋值了。

    通过上述两个示例,对openpyxl有了大概的了解后。下面将开始介绍openpyxl更多的基本用法。

    修改表单名

    ws.title = "new title"

    操作指定名字的表单

    ws1 = wb["new title"]
    ws1['A3'] = 10

    遍历工作薄中的表单名

    for sheet in wb:
        print(sheet.title)

    复制表单

    source = wb.active
    target = wb.copy_worksheet(source)

     给单元格赋值

    # 方法1
    ws['A4'] = 10
    # 方法2
    ws.cell(row=4, column=1, value=10)

    使用datetime格式赋值

    import datetime
    from openpyxl import Workbook
    wb = Workbook()
    ws = wb.active
    # set date using a Python datetime
    ws['A1'] = datetime.datetime(2010, 7, 21)
    print(ws['A1'].number_format)
    print(ws['A1'].value)

     运行结果如下:

    yyyy-mm-dd h:mm:ss
    2010-07-21 00:00:00

    使用公式赋值

    from openpyxl import Workbook
    wb = Workbook()
    ws = wb.active
    # add a simple formula
    ws["A1"] = "=SUM(1, 1)"
    wb.save("formula.xlsx")

    合并/取消合并单元格

    from openpyxl.workbook import Workbook
    
    wb = Workbook()
    ws = wb.active
    # 方法1
    ws.merge_cells('A2:D2')
    ws.unmerge_cells('A2:D2')
    # 方法2
    ws.merge_cells(start_row=2, start_column=1, end_row=4, end_column=4)
    ws.unmerge_cells(start_row=2, start_column=1, end_row=4, end_column=4)
    
    wb.save("merge.xlsx")

     添加图表

    from openpyxl import Workbook
    from openpyxl.chart import BarChart, Reference
    
    wb = Workbook()
    ws = wb.active
    for i in range(10):
        ws.append([i])
    
    values = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=10)
    chart = BarChart()
    chart.add_data(values)
    ws.add_chart(chart, "E15")
    wb.save("SampleChart.xlsx")

    除了上述常见用法外,openpyxl更多更强大的功能还需移步官方文档去了解。

     参考资料


    作者:酌三巡

    感谢阅读,如需转载请注明出处!

  • 相关阅读:
    Zabbix监控mysql配置及故障告警配置
    Tesseract-OCR 字符识别---样本训练
    Wex5案例使用JSON传输Thinkphp后端对接,以达成数据正常输出
    Linux内核分析:recv、recvfrom、recvmsg函数实现
    libevent源码分析:evmap_io_active_函数
    libevent源码分析:epoll后端实现
    监听套接字不可写?
    Linux内核分析:dup、dup2的实现
    Linux内核分析:打开文件描述符实现
    libevent源码分析:http-server例子
  • 原文地址:https://www.cnblogs.com/zhuosanxun/p/12470262.html
Copyright © 2011-2022 走看看