常用的方式
常用的读写Excel的库:
- pandas
- openpyxl
- xlrd/xlwt/xlutils
使用它们都能够达到读写Excel的目的,但它们的侧重点又略有不同。
具体如下:
- pandas:数据处理最常用的分析库之一,可以读取各种各样格式的数据文件,一般输出dataframe格式,功能强大
- openpyxl:主要针对xlsx格式的excel进行读取和编辑
- xlrd库:从excel中读取数据,支持xls、xlsx
- xlwt库:对excel进行修改操作,不支持对xlsx格式的修改
- xlutils库:在xlwt和xlrd中,对一个已存在的文件进行修改
- xlwings:对xlsx、xls、xlsm格式文件进行读写、格式修改等操作
- xlsxwriter:用来生成excel表格,插入数据、插入图标等表格操作,不支持读取
- Microsoft Excel API:需安装pywin32,直接与Excel进程通信,可以做任何在Excel里可以做的事情,但比较慢
对比
类型 | xlrd/xlwt/xlutils | openpyxl | pandas |
---|---|---|---|
读取/写入/修改 | √ | √ | √ |
xls | √ | × | √ |
xlsx | 高版本支持读 不支持写 | √ | √ |
大文件 | × | √ | √ |
效率 | 快 | 中 | 慢 |
功能 | 较弱 | 一般 | 强大 |
耗时 | 0.35s | 0.47s | 2.6s |
推荐使用xlrd/xlwt
和pandas
xlrd/xlwt
安装依赖
利用xlrd和xlwt进行excel读写,这里只能是xls类型excel
1 | pip install xlrd |
读取Excel
1 | import xlrd |
写入Excel
1 | import xlwt |
读取Excel保存JSON
1 | import xlrd |
文件写入
1 | with open(filepath, 'w', encoding='utf-8') as f: |
第二个参数可选
w
没有创建 ,有则覆盖a
没有创建,有则追加
JSON对象转字符串
1 | content = json.dumps(userlist, ensure_ascii=False) |
默认ensure_ascii
为True
,中文会被编码
pandas
读取
1 | #-- coding: utf-8 -- |
写入
1 | from pandas import DataFrame |
修改
1 | #-- coding: utf-8 -- |
新增
1 | # 新增一行 |