美文网首页
Python 与 Excel 不得不说的事

Python 与 Excel 不得不说的事

作者: Python宝藏库 | 来源:发表于2021-02-23 20:44 被阅读0次
    image.png

    数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件。因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道。

    如果仅仅是要以表单形式保存数据,可以借助 CSV 格式(一种以逗号分隔的表格数据格式)进行处理,Excel 也支持此格式。但标准的 Excel 文件(xls/xlsx)具有较复杂的格式,并不方便像普通文本文件一样直接进行读写,需要借助第三方库来实现。

    常用的库是 python-excel 系列:

    xlrd、xlwt、xlutils

    ●xlrd - 读取 Excel 文件
    ●xlwt - 写入 Excel 文件
    ●xlutils - 操作 Excel 文件的实用工具,如复制、分割、筛选等
    尽管这是目前被用得最多的 Excel 库,我还是很想吐槽为什么这三个包不能放在一个模块里……另外它们有个缺陷,就是只能处理 xls 文件。如果你想用新版本的 xlsx,可以考虑 openpyxl 和 xlsxwriter。
    不过今天只说说这三个。

    (更新:有人提到另外几个 Python 处理 Excel 的库,有些的确会比 python-excel 系列好用。之后会再做一篇对比,敬请期待。

    另外,关于为什么不用 VBA、Java、C#……处理 Excel。其实本文的出发点是对于 Python 使用者来说,操作 Excel 的一种基本方式,并非否定其他语言和方法。)

    安装

    安装的方法没啥特别的,只是得装三遍。可以下载安装包、下载代码压缩包、或者通过 pip 等。可参考 如何安装 Python 的第三方模块 - Crossin的编程教室 - 知乎专栏

    如果安装过之前推荐的 anaconda,那么就已经有了 xlrd 和 xlwt,但 xlutils 没有附带在安装包中,使用时仍需另行安装。

    读取

    结合一段简单的代码来看:


    image.png

    测试文件:


    image.png

    输出结果:


    image.png
    常用的方法:

    ●open_workbook 打开文件
    ●sheet_by_index 获取某一个表单
    ●sheets 获取所有表单
    ●cell_value 获取指定单元格的数据
    写入
    还是看代码:


    image.png

    生成文件:


    image.png

    常用的方法:

    ●Workbook 创建文件对象
    ●add_sheet 新增一个表单
    ●write 在指定单元格写入数据
    修改
    很遗憾,并没有直接修改 xls 文件的方法。通常的做法是,读取出文件,复制一份数据,对其进行修改,再保存。
    在复制时,需要用到 xlutils 中的方法。


    image.png

    修改后文件:


    image.png

    特别要注意的是,选取读取表单时,要使用 sheet_by_index,而在选取写入表单时,则要用 get_sheet。不要问我为什么,我也很想知道这么设定的用意何在……

    时间转换

    如果表单中有时间格式的数据,通过处理之后,你会发现时间数据出了差错。


    image.png
    image.png

    输出单元格内容:


    image.png
    因为这里 xldate 有自己的格式定义。如果要使用正确的格式,必须转换: image.png
    date 是对应单元格的数据,book 是打开的文件对象。

    另外,在打开文件时,加上参数 formatting_info=True,可以保证在时间数据在 copy 时保持原样。

    写入时间数据,则可通过此方法创建 excel 的时间对象: image.png
    或者通过 xlwt.easyxf 指定时间格式: image.png
    具体细节及更多功能这里不展开说明。

    以上便是 Python 操作 Excel 文件的一些基本方法。实际使用过程中遇到问题或者需要了解更多功能,永远记住两个词:
    RTFM、STFW
    想要了解更多Python小妙招后台私信扣【资料】

    相关文章

      网友评论

          本文标题:Python 与 Excel 不得不说的事

          本文链接:https://www.haomeiwen.com/subject/xoedfltx.html