• 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更多更强大的功能还需移步官方文档去了解。

     参考资料


    作者:酌三巡

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

  • 相关阅读:
    春节不回家
    夜间突然发烧,无法入眠
    歌词写得真好
    近日看到网上许多BBS寻找SAP及ABAP程序的学习资料,本人深知学习的艰辛与不易,特贡献自己多年的学习资料,完全免费
    人生的真谛
    SMARTFORMS的调用方法(作者:曹玉平)
    自己给自己当医生
    将ocx添加到.NET
    AQtime + ocx/dll
    ActiveX:创建安装:
  • 原文地址:https://www.cnblogs.com/zhuosanxun/p/12470262.html
Copyright © 2020-2023  润新知