前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用python操作Excel文件

使用python操作Excel文件

作者头像
不作声
发布2020-12-08 16:56:58
9950
发布2020-12-08 16:56:58
举报
文章被收录于专栏:M不作声M不作声

我们在办公日常用经常会接触到办公软件Excel,也会遇到大量数据迁移的问题,手动操作这么反人类的事情,俺们程序员肯定是不会干的。

Python这种编程语言,近几年在国内十分火热。很多程序员都多少会一点,用来写一些脚本。

今天使用Python来操作Excel。python操作Excel的库有很多,大概有xlrdxlwtopenpyxlXlsxWriterxlutilspandas等。这些库的操作对xls和xlsx的支持不同,有个只可以操作xls,有的只可以进行读操作。

我选用的库是openpyxl,支持对xlsx的读写操作。

安装

openpyxl的安装比较简单,可以只用pip直接安装。

代码语言:javascript
复制
pip install openpyxl

这是在线安装的方式,离线安装的方式也有点反人类,不过也可以了解一下。

这种方式需要在网站先下载文件,网站地址是:https://www.lfd.uci.edu/~gohlke/pythonlibs/。

需要下载的文件有:et_xmlfile-1.0.1-py2.py3-none-any.whljdcal-1.4-py2.py3-none-any.whlopenpyxl-2.6.0-py2.py3-none-any.whl

有vimium插件的可以使用/打开搜索,复制直接定位;没有的可以看看我之前介绍vimium插件的文章,也可以直接使用Chrome的快捷键<C-f>打开搜索栏。

下载了三个文件以后拷贝到python安装目录中的scripts目录下。

然后依次使用pip install命令安装即可成功。

介绍

openpyxl看名字就知道是一个开源项目,可以对xlsx文件进行读写操作。

openpyxl中有三个对象,分别为Workbook()sheetcell

一个Workbook有多个sheet,一个sheet有多个cell。

openpyxl有很多的API,我们只用到一部分。

获取对象

创建一个Excel的workbook对象。

代码语言:javascript
复制
import openpyxl

wb = openpyxl.Workbook()

如果编辑已有的excel文件,使用load_workbook()

代码语言:javascript
复制
import os
import openpyxl

file_name = 'test.xlsx'
wb = openpyxl.load_workbook(file_name)

通过以上两种方式获得一个Workbook对象。一般默认是只有一个sheet。

获取当前正在工作的sheet。

代码语言:javascript
复制
ws = wb.active

# 创建一个sheet
ws1 = wb.create_sheet(sheet_name)

# 获取已有的sheet
ws2 = wb.get_sheet_by_name(sheet_name)

# 获取所有的sheet
sheets = wb.sheet_names
ws1 = sheets[0]
ws2 = sheets[1]

获取cell对象。

代码语言:javascript
复制
wc = ws.cell(row=1, column=1)
wc1 = ws['A1']

数据写入

使用sheet一行一行的加入数据;

代码语言:javascript
复制
row = [1, 2, 3, 4]
ws.append(row)

使用单元格写入数据:

代码语言:javascript
复制
ws['A1'] = 1
ws.cell(row=1, column=1).value = 1

一般可以通过for循环加上sheet对象的append()一行一行添加数据。

获取行或列批量操作:

代码语言:javascript
复制
# 按行操作
for row in ws.rows:
  pass

# 按列操作
for column in ws.columns:
  pass

使用单元格添加数据多为在以后的sheet中添加一列新的数据。例如

代码语言:javascript
复制
cells = ['A' + str(x) for x in range(1,11)]

# 可以配合获取sheet的最大列使用
cells = ['A' + str(x) for x in range(1, sheet.max_row)]

在做完所有的处理之后,保存文件:

代码语言:javascript
复制
wb.save(file_name)

其他操作

设置sheet的标题:

代码语言:javascript
复制
ws.title = 'title'

设置sheet颜色:

代码语言:javascript
复制
openpyxl.styles.PatternFill(fill_type='solid', fgColor="FFC125")
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大前端合集 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 介绍
  • 获取对象
  • 数据写入
  • 其他操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档