hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - 杂谈 - 正文 君子好学,自强不息!

运营的Python指南 - Python 操纵Excel

2019-11-18杂谈搜奇网28°c
A+ A-

这是一份写给运营职员的Python指南。本文重要报告怎样运用Python操纵Excel。完成Excel的建立,查询和修正操纵。
相干代码请参考 https://github.com/RustFisher/python-playground

本文链接:https://www.rustfisher.com/2019/11/05/Python/Python-op-excel_openpyxl_use/

开发工具,环境

  • PyCharm - 轻易好用的IDE
  • Python3

这里默许你的电脑上已装有python3.x,环境变量已设置好。

引入openpyxl

这里运用openpyxl库来操纵Excel。相似的库另有xlrd。

penpyxl的基本运用要领请拜见Python openpyxl 处置惩罚Excel运用指南。

pip install openpyxl

数据预备

假定数据来自百度指数,以罕见的一些搜刮指数为例。给背面的操纵预备一些数据,把数据写入Excel中。

建立Workbook对象,猎取到当前可用的表格(sheet)。
直接运用append要领把一行数据追加写入。末了挪用Workbook的保留要领,存储数据。

def create_excel_demo(file_path):
    """
    建立Excel文件,并写入数据
    :param file_path: 目的文件途径
    :return none
    """
    wb = Workbook()
    ws = wb.active
    ws.title = '搜刮指数概览'

    ws.append(['关键词', '团体日均值', '挪动日均值', '团体同比', '团体环比', '挪动同比', '挪动环比'])
    ws.append(['excel', 27782, 18181, -0.11, -2, 0.21, 0.02])
    ws.append(['python', 24267, 8204, 0.27, 0.06, 0.56, 0.01])
    ws.append(['案牍', 2411, 1690, 0.56, 0.33, 0.91, 0.46])
    ws.append(['okr', 1928, 880, 0.38, 0.15, 0.29, 0.09])
    ws.append(['kpi', 4212, 2784, 0.21, -0.19, 0.36, -0.22])
    wb.save(file_path)

建立出来的表格,示例数据以下

关键词 团体日均值 挪动日均值 团体同比 团体环比 挪动同比 挪动环比
excel 27782 18181 -0.11 -2 0.21 0.02
python 24267 8204 0.27 0.06 0.56 0.01
...

读取数据

接见全部表格的数据

接见表格中所有的数据,并打印出来。
起首我们要知道表格中有数据的单元格的局限,运用sheet.max_row与sheet.max_column猎取表格的行列数目。

def read_xlsx_basic(file_path):
    """
    读取Excel的数据并打印出来
    """
    wb = load_workbook(file_path)
    st = wb.active
    end_row = st.max_row + 1
    end_column = st.max_column + 1
    print(st.title, '有', end_row, '行', end_column, '列')
    for row in range(1, end_row):
        for col in range(1, end_column):
            print('{:10}'.format(st.cell(row=row, column=col).value), end='')
        print()

值得注意的是,单元格下标是从1最先的。假如运用了不当的下标,报错信息

ValueError: Row or column values must be at least 1

参考: https://stackoverflow.com/questions/34492322/how-to-scan-all-sheet-cells

修正表格

有了Excel表格后,我们能够修正表格的一些花样和数据。

st示意当前表。

调解列的宽度

用 column_dimensions 来猎取列。比方column_dimensions['A']猎取到的是第A列。
ord要领是将字符转换为ascii码。ord('A')获得65。

这里调解的是A列到G列的宽度。

    for col in range(ord('A'), ord('G') + 1):
        st.column_dimensions[chr(col)].width = 15

设置单元格花样

花样,比方字体大小,对齐形式,粗体斜体等。

字体

起首我们要拿到单元格cell,这里运用st.cell(row=1, column=col)来猎取某一个格子。
Cell持有的font是不可修正的。不能运用如cell.font.size = 13如许的操纵,会报非常。
copy要领是复制一个对象。这里复制的是font。

    cell = st.cell(row=1, column=col)
    font = copy(cell.font)
    font.size = 13
    font.bold = True
    cell.font = font

对齐

对齐形式。运用alignment属性。

cell.alignment = Alignment(horizontal="center", vertical="center")

数据显现

操纵Excel时,我们能够设置单元格数据显现的体式格局,比方通例,数值,钱银,百分比等等。
这里运用的是number_format属性。

假如数据(value)是0.02,经由下面的设置后,Excel中显现的是2%。

cell.number_format = '0%'

修正数据

修正单元格的数值(value)。
修正数据起首要拿到谁人单元格cell,然后对其value赋值。

st.cell(row=2, column=7).value = 0.42  # 修正数值

修正了单元格的款式和数据后,能够翻开表格看看结果。

参考:

  • https://stackoverflow.com/questions/12387212/openpyxl-setting-number-format
  • https://stackoverflow.com/questions/30050716/how-to-put-two-decimals-in-cell-with-type-of-percent
  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
运营的Python指南 - Python 操纵Excel

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
未定义标签

本文来源:搜奇网

本文地址:https://www.sou7.cn/282368.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>