openpyxl

xlrd/xlwt

xlwings

xlsxwriter

了解各个库的异同,从而在不同场景下可以灵活使用

首先让我们来整体把握下不同库的特点

xlrd

xlwt

xlutils

.xls

xlwt

.xls

xlrd

.xls

xlutils

xlrd

xlwt

.xls

xlrd

xlwt

xlutils

xlwings

XlsxWriter

.xlsx

openpyxl

.xlsx

pandas

如果你懒得看详细的对比过程,可以直接看最后的总结图,然后拉到文末收藏点赞就算学会了

非标准库

pip

多数模块可以直接通过名字导入,有些模块约定俗称会使用缩写:

import

import

import

as

import

import

import

as

xlutils

xlrd

xlwt

xlrd

.xls

xlwt

.xls

xlutils

xlrd

xlwt

copy

import

3.1 获取文件

并不是所有7个模块都可以读取 Excel 文件,而即使能读取Excel文件也要分不同后缀名进行讨论,具体如下:

xlwt

xlutils

XlsxWriter

xlrd

.xls

.xlsx

xlwings

.xls

.xlsx

openpyxl

.xlsx

pandas

.xls

.xlsx

.xls

.xlsx

r'C:\xxx\Desktop\test.xls'

r'C:\xxx\Desktop\test.xlsx'

xlrd

xlrd

.xls

.xlsx

xlwings

xlwings

xlwings

xlwings

.xls

.xlsx

True

False

# 程序可见,只打开不新建工作薄

False

# 警告关闭

False

# 屏幕更新关闭

# wb = app.books.open(xls_path)

# 保存文件

# 关闭文件

# 关闭程序

openpyxl

openpyxl

.xlsx

.xls

openpyxl.utils.exceptions.InvalidFileException: openpyxl does not support the old .xls file format, please use xlrd to read this file, or convert it to the more recent .xlsx file format.

pandas

pandas

.xls

.xlsx

'Sheet1'

'Sheet1'

.xlsx

import

import

'time cost: '

's'

xlwings

xlrd

openpyxl

3.2 获取工作表

针对上述4个可以读取 Excel 文件的模块,进一步讨论其获取工作表 sheet 的方式

xlrd

可以通过 sheet 名查找:

"Sheet1"

也可通过索引查找:

0

xlwings

xlwings

# 在活动工作簿

# 在特定工作簿

openpyxl

.active

另外也可以通过工作表名指定获取工作表:

'Sheet1'

pandas

pandas

'Sheet1'

简单总结创建 Excel 文件的情况:

xlrd

xlutils

xlwt

.xls

.xlsx

xlwings

.xls

.xlsx

XlsxWriter

.xlsx

openpyxl

.xls

.xlsx

pandas

.xls

.xlsx

xlwt

xlwt

.xls

.xlsx

'ascii'

# 创建新的sheet表

"Sheet1"

xlwings

xlwings

.xls

.xlsx

保存工作簿、关闭工作簿、关闭程序

r'\new_practice.xlsx'

XlsxWriter

XlsxWriter

.xlsx

# 添加工作表

'Sheet1'

openpyxl

openpyxl

.xls

.xlsx

# 新工作簿中指定即创建工作表

pandas

pandas

pandas

.to_excel

.xls

.xlsx

r'C:\xxx\test1.xlsx'

简单总结保存 Excel 文件的情况:

xlrd

xlwt

.xls

xlutils

xlrd

xlwt

.xls

xlwings

.xls

.xlsx

XlsxWriter

.xlsx

openpyxl

.xlsx

pandas

.xls

.xlsx

xlwt

xlwt

.xls

# xls = xlwt.Workbook(encoding= 'ascii')

# worksheet = xls.add_sheet("Sheet1")

"new_table.xls"

xlutils

xlutils

xlrd

xlwt

.xls

# xls_path = r'C:\xxxx\test.xls'

# xls = xlrd.open_workbook(xls_path)

'new_text.xls'

xlwings

xlwings

.xls

.xlsx

# wb = app.books.open(xls_path)

# 保存文件

# 关闭文件

# 关闭程序

XlsxWriter

XlsxWriter

.xlsx

.close

# xlsx = xlsxwriter.Workbook()

# sheet = xlsx .add_worksheet('Sheet1')

openoyxl

openpyxl

.xlsx

# wb = openpyxl.load_workbook(xlsx_path)

# wb = Workbook()

# sheet = wb.active

'new_test.xlsx'

pandas

pandas

.xls

.xlsx

1

2

3

1

2

4

r'C:\xxxx\test1.xls'

r'C:\xxxx\test2.xlsx'

xlrd

xlwings

openpyxl

pandas

xlutils

.xls

xlrd

xlrd

xlutils

xlutils

xlrd

xlrd

xlwt

# xls = xlrd.open_workbook(xls_path)

# sheet = xlsx.sheet_by_name("Sheet1")

4

6

# 第5行第7列的单元格

4

6

for

in

xlwings

# app = xw.App(visible=True, add_book=False)

# app.display_alerts = False

# app.screen_updating = False

# wb = app.books.open(xls_path)

# sheet = wb.sheets.active

# 获取单个单元格的值

'A1'

# 获取横向或纵向多个单元格的值,返回列表

'A1:A3'

# 获取给定范围内多个单元格的值,返回嵌套列表,按行为列表

'A1:C4'

# 获取单个单元格的值

'A1'

# 获取横向或纵向多个单元格的值,返回列表

'A1:A3'

# 获取给定范围内多个单元格的值,返回嵌套列表,按行为列表

'A1:C4'

openpyxl

# wb = openpyxl.load_workbook(xlsx_path)

# wb = Workbook()

# sheet = wb.active

# 一、指定坐标范围的值

'A1:B5'

# 二、指定列的值

'A'

'A:C'

# 三、指定行的值

5

5

7

# 获取单元格的值

for

in

pandas

pandas

pandas

.iloc()

.loc()

.ix()

0

1

1

'b'

'a'

'a'

# 有些版本取消了ix,可以用iat

还是先简单总结对 Excel 文件写入数据的情况:

xlrd

xlwt

xlutils

xlwt

xlwings

XlsxWriter

openpyxl

pandas

xlwt

xlutils

# xls = xlrd.open_workbook(xls_path)

# xls_xlutils = xlutils.copy.copy(xls)

# sheet = xls_xlutils.sheet_by_name("Sheet1")

# value = sheet.cell_value(4, 6)

# print(value)

4

6

"新内容"

xlwings

# app = xw.App(visible=True, add_book=False)

# app.display_alerts = False

# app.screen_updating = False

# wb = app.books.open(xls_path)

# sheet = wb.sheets.active

# 写入 1 个单元格

'A2'

'大明'

# 一行或一列写入多个单元格

# 横向写入A1:C1

'A1'

1

2

3

# 纵向写入A1:A3

'A1'

True

1

2

3

# 写入范围内多个单元格

'A1'

'table'

1

2

3

4

5

6

XlsxWriter

new_format

# xlsx = xlsxwriter.Workbook()

# sheet = xlsx .add_worksheet('Sheet1')

# 一、写入单个单元格

# A1:从A1单元格开始插入数据,按行插入

'A1'

# A1:从A1单元格开始插入数据,按列插入

'A1'

openpyxl

# wb = openpyxl.load_workbook(xlsx_path)

# wb = Workbook()

# sheet = wb.active

# 一、写入单元格

'A1'

'业务需求'

# 二、写入一行或多行数据

1

2

3

1

2

3

4

5

6

依旧简单总结对 Excel 文件样式调整的情况:

xlrd

xlutils

xlutils

xlwt

xlwt

xlwings

XlsxWriter

openpyxl

pandas

xlwt

xlwt

# 字体部分

# 初始化样式

# 为样式创建字体

'Times New Roman'

#字体

True

#加粗

True

#下划线

True

#斜体

# 设置样式

# 使用样式

4

6

"新内容1"

# 边框部分

# 设置线型

# 设置样色

0x40

0x40

0x40

0x40

#

# 使用样式

5

8

"新内容2"

xlwings

xlwings

# 获取颜色

'C1'

# 设置颜色

'C1'

255

0

120

# 清除颜色

'C1'

None

8.3 XlsxWriter 调整样式

XlsxWriter

'bold'

True

# 字体加粗

'border'

1

# 单元格边框宽度

'align'

'left'

# 水平对齐方式

'valign'

'vcenter'

# 垂直对齐方式

'fg_color'

'#F4B084'

# 单元格背景颜色

'text_wrap'

True

# 是否自动换行

8.4 openpyxl 调整样式

openpyxl

# 字体样式

from

import

'A1'

'Arial'

12

True

True

'FF0000'

# 段落对齐

from

import

'B2'

'center'

'center'

45

True

# 边框样式

from

import

'B2'

'thin'

'FF0000'

'dashed'

简单总结对 Excel 文件插入图片的情况:

xlrd

xlutils

xlutils

xlwt

xlwt

.bmp

xlwings

XlsxWriter

openpyxl

pandas

xlwt

xlwt

.bmp

"test.bmp"

2

3

2

2

0.5

0.5

insert_bitmap(img, x, y, x1, y1, scale_x, scale_y)

img

x

y

x1 y1

scale_x scale_y

xlwings

xlwings

r'C:\\xxx.jpg'

# 也可以给定位置插入

r'C:\\xxx.jpg'

'A2'

'A2'

100

100

9.3 XlsxWriter 插入图片

第一个参数是插入的起始单元格,第二个参数是图片文件的绝对路径

'A1'

r'C:\\xxx.jpg'

9.4 openpyxl 插入图片

openpyxl

from

import

'test.jpg'

180

360

# 设置图片的宽和高

'A2'

# 往A2单元格插入图片

以上就是根据不同 Python 模块,对常见的 Excel 操作进行对比的全部内容,最终结果汇总如下表所示

本文目的并不是要评出一个最好的库,仅是从不同角度对不同库进行对比,希望能够让大家了解各个库所擅长的工作

pandas

openpyxl

只有充分了解不同工具的特点,才能够在不同的场景下灵活运用不同的方法来高效解决问题!

- EOF -

推荐阅读

点击标题可跳转

再见 VBA!神器工具统一 Excel 和 Python

向 Excel 说再见,神级编辑器统一表格与 Python

我用 Python 的 Seaborn 库,绘制了 17 个超好看图表!

觉得本文对你有帮助?请分享给更多人

推荐关注「Python开发者」,提升Python技能

点赞和在看就是最大的支持

❤️

python excel操作库,可能是全网最完整的 Python 操作 Excel库总结!相关推荐

  1. 这可能是全网最完整的 Python 操作 Excel 库总结

    在之前的办公自动化系列文章中,我已经对Python操作Excel的几个常用库openpyxl.xlrd/xlwt.xlwings.xlsxwriter等进行了详细的讲解. 为了进一步带大家了解各个库的 ...

  2. python免费入门_python免费入门教程/求完整的Python入门教程

    python不错的入门学习教程或者学习路线?适合新手的 可以去菜鸟教程去学,里面有很多基础入门的教程. 不过你想深入学习的话,学马哥python, 网上有一些免费的教程,课程很系统,讲的通俗易懂 求完 ...

  3. python绘图函数教程_Python绘图函数的完整集合,python,画图,大全

    很多时候,我们需要用python画图,这样就可以更加直观的看到数据的走势,而不是干巴巴的数字. 今天,我们就给大家整理了一下python画图的常用函数,由于篇幅限制.无法将这些函数的使用方法全部表现出 ...

  4. Python 编程实现图像分辨率的修改(完整代码)

    Python 编程实现图像分辨率的修改(完整代码) 在日常生活和工作中,我们经常需要对图片进行处理,其中一个常见的需求就是修改图像的分辨率.Python 语言提供了强大的图像处理库 PIL(Pytho ...

  5. python excel库pip install_超全整理|Python 操作 Excel 库 xlwings 常用操作详解!

    原标题:超全整理|Python 操作 Excel 库 xlwings 常用操作详解! 来源:早起Python 作者:陈熹.刘早起 大家好,我是早起. 在之前的文章中我们曾详细的讲解了如何使用openp ...

  6. python office库使用_看完这篇Python操作PPT总结,从此使用Python玩转Office全家桶就没有压力了!...

    一.导读 大家好,今天依旧是Python办公自动化基础系列,在之前我们分别详细讲解了 今天本文将基于第三方库pptx,详细讲解如何使用Python操作Office全家桶最后一位--PPT. 二.安装 ...

  7. Python入门到实战(五)自动化办公、pandas操作Excel、数据可视化、绘制柱状图、操作Word、数据报表生成、pip install国内镜像下载

    Python入门到实战(五)conda使用.pandas操作Excel.数据可视化.绘制柱状图.操作Word.数据报表生成.pip install国内镜像下载 conda使用 常用操作 配置VS+Co ...

  8. aws python库_如何使用Python,AWS和IEX Cloud创建自动更新股市数据的Excel电子表格

    aws python库 Many Python developers in the financial world are tasked with creating Excel documents f ...

  9. Python文件数据处理之csv、json、xml、txt、excel等文本文件写入、读取、合并等操作汇总

    目录 一.CSV 文件操作 1.1.文件写入 1.1.1.pandas库方法 1.1.2.csv库方法 1.2.文件读取 1.2.1. 有标题栏的情况 1.2.2.无标题栏的情况 二.json 文件操 ...

最新文章

  1. cocos2d 中判断CGPoint或者CGSize是否相等
  2. python实体类dict to object
  3. Python之与众不同
  4. 查看Linux 下某个程序的内存情况
  5. 还搞不懂STL的type_traits?从源码来带你一起分析
  6. python中出现ascii编码问题的解决办法
  7. GDALSetProjection使用的一个注意事项
  8. JQUERY右侧悬浮返回顶部代码
  9. 一枝穿云箭,千军万马来相见——致2015届电子科大信软学院新生
  10. 双网卡同时上内外网设置教程
  11. 问题:检测到远端X服务正在运行中(CVE-1999-0526)
  12. win10透明任务栏教程
  13. 【新书速递】Unity AR/VR 开发必知必会
  14. Angular自定义组件实现ngModel双向绑定
  15. python 爬网站上的图片
  16. 手机CMWAP和CMNET上网
  17. java面试必知必会
  18. 如何检查MDAC版本,如何查看MDAC版本
  19. ios逆向之frida简单教程
  20. 人脸情绪识别挑战赛 图像分类 pytorch

热门文章

  1. DataGridView直接导出EXCEL
  2. [翻译]2005年软件业界推出新产品非官方计划
  3. 【计算机网络复习 数据链路层】3.4.1 流量控制与可靠传输机制
  4. Windows终止进程
  5. java中Scanner类的使用
  6. 计算机综合应用实验,计算机综合应用实验二WORD应用.doc
  7. python中read和readline的区别_Python中read()、readline()和readlines()三者间的区别和用法...
  8. java 翻转句子_Java编程-句子反转
  9. python怎么一直循环_python 基础之while无限循环
  10. python魔法方法与函数_在Python中画图(基于Jupyter notebook的魔法函数)