excel数据导入python后不对齐_Python处理Excel文件的实用姿势

本文详细介绍了如何使用Python的openpyxl模块进行Excel文件的处理,包括读写文件、合并拆分数据、创建图表和设置单元格样式。通过实例展示了openpyxl在读取、创建和编辑Excel文件时的各种操作,适合日常表格自动化处理场景。
摘要由CSDN通过智能技术生成

真正的勇士,敢于直面银行卡上的余额,敢于正视磅秤上的数字。

表格数据是最常见的数据类型,Excel是日常办公中最常接触的文件。

上一章提过Python可以通过openpyxl模块处理Excel文件。

其实Python处理Excel的三方模块主要有这几个:xlrd、xlwt和xlutils,支持读写Excel文件。

openpyxl,支持读写和修改OpenXML格式的Excel文件。

xlswriter,支持写文件,以及更多Excel功能特性。

pandas,底层依赖xlrd和xlwt读写Excel文件,处理数据神器。

pywin32,调用Win32 API操作文件,只适用于Windows。

xlwings,可理解为pywin32的多平台加强版,有商业版支持。

简单做个对比分析:第1类中3个模块,属于同一作者的开源项目,目前已停更,不建议直接使用。

pywin32和xlwings基于原生Excel软件提供服务,需提前安装软件,读写性能和功能最佳,xlwings还有商业版本支持。

pandas侧重数据分析,Excel文件读写只是其数据输入和输出部分。

openpyxl不需要依赖Excel功能,直接读写OpenXML内容,兼容性好。

xlswriter侧重写Excel文件,支持VBA等更多特性。

建议的使用场景:如果企业内大量使用Excel,并用了很多如VBA宏的特性,建议用xlwings。一方面功能全,另一方面可以采买商业付费版支持。

对于普通Excel文件自动处理,建议用openpyxl,大部分情况下够用。

GB级以下的数据分析,建议用pandas,后续会单独出一个数据分析系列来介绍它。

本文重点介绍openpyxl的使用,它足够应付大部分人日常的表格自动化处理场景。

日常处理Excel文件,最常见的应用场景有3类:读写Excel文件

合并、分割文档数据

报表自动化,批量生成图表

模块安装:pip install openpyxl

基本使用

Excel表格文件中主要元素有这几个:sheet(工作表):一个Excel文件可以有多个sheet。

row/col(行和列),iter_rows()和iter_cols()可以返回所有行和列。

cell(单元格):和Excel一样用sheet['A1']表示,注意行列都以1开始。

formulae(公式):可以为单元格设置计算公式,和Excel概念一致。

charts(图表):比如饼图、柱状图等。

style(样式):支持自定义样式,以及条件格式化等。

image(图片),支持pillow的图像处理。

打开Excel文件

import pathlib

import datetime

from openpyxl import load_workbook

path = list(pathlib.Path.cwd().parents)[1].joinpath('data/automate/004excel')

in_path = path.joinpath('input.xlsx')

wb = load_workbook(in_path, read_only=True)

for name in wb.sheetnames:

ws = wb[name]

print(f'{name} 表有 {ws.max_row-ws.min_row+1} 行, {ws.max_column-ws.min_column+1} 列.')

读取Excel文件内的数据

import pathlib

import datetime

from openpyxl import load_workbook

path = list(pathlib.Path.cwd().parents)[1].joinpath('data/automate/004excel')

in_path = path.joinpath('input.xlsx')

wb = load_workbook(in_path)

ws = wb[wb.sheetnames[0]] # 第一个工作表

# 操作单列

for cell in ws["A"]:

print(cell.value)

# 操作单行

for cell in ws["1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值