更新日期: 2021.03.27
本节学习内容 :
使用 xlwings 将获取的信息存储为 Excel 文件。
目录
- 1. 为什么选择 xlwings ?
- 2. 安装和导入
- 3. 创建/打开文件
- 4. 写入数据
- 5. 获取工作表中单元格的值
- 6. 保存并关闭文件
- 7. 其他功能
1. 为什么选择 xlwings ?
对于 txt 文件类型,除了使用 Ctrl + F 寻找信息之外,我不知道还可以怎么使用。
因为平时接触比较多的就是Excel 文件,打算学习下怎样将获取的信息存储为Excel 文件。百度了下,发现 Python 中可以操作 Excel 的库很多…看得眼花缭乱…直到看了以下这篇介绍,直接选择了 xlwings ~~
可能是全网最完整的 Python 操作 Excel库总结! (原创:刘早起)
2. 安装和导入
pip 安装, 使用时 import。
本节仅介绍最常用的方法,全面的使用方法参见官网文档。
3. 创建/打开文件
import xlwings as xw
wb = xw.Book() # 新建一个Excel文件
wb = xw.Book("test.xlsx") # 打开Excel文件
wb = xw.Book(r'C:\Alice\Crawler_pratice_2021\test.xlsx') # 打开Excel文件
4. 写入数据
import xlwings as xw
wb = xw.Book("test.xlsx") # 打开Excel文件
sheet = wb.sheets.active # 获取活动的工作表
sheet.range('A1').value = 'test'
# 按行横向写入信息
sheet.range('A1').value = ["a1", "b1", "c1"]
# 按列纵向写入信息
sheet.range('A1').options(transpose=True).value = ["a1_new", "a2", "a3"]
# 按照矩阵范围写入信息,2行3列
sheet.range('A1').value = [["a1_new_2",2,3], [4,5,6]]
# 按照矩阵范围写入信息,2列3行
sheet.range('A1').options(transpose=True).value = [["a1_new_2",2,3], [4,5,6]]
5. 获取工作表中单元格的值
import xlwings as xw
wb = xw.Book("test.xlsx") # 打开Excel文件
sheet = wb.sheets.active # 获取活动的工作表
# 获取一个单元个的值
print(sheet.range("a1").value) # a1
print(sheet.range("A1").value) # 单元格名称大小写都可以, a1
# 获取一行或一列中相邻的范围的单元格的值
print(sheet.range("A1:A3").value) # ['a1', 'a2', 'a3']
print(sheet.range("A1:A4").value) # 没有信息的单元格会返回 None, ['a1', 'a2', 'a3', None]
# 获取整行或整列信息
print(sheet.range("A1").expand('right').value) # 中间有空单元格将中断
print(sheet.range("A1").expand('right').count) # 计数当前行信息数量,中间有空单元格将中断计数
print(sheet.range("A1").expand('down').value) # 获取整列信息,中间有空单元格将中断
print(sheet.range("A1").expand('down').count) # 计数当前列信息数量,中间有空单元格将中断计数
# 获取一个矩阵单元格内的值
print(sheet.rangeB("A1:B2").value) # [['a1', 'b1'], ['a2', 'b2']]
# 以A1为起点按行获取矩阵内数据,见下图(注意,无法获取第三行,因为 a3 是null)
print(sheet.range('A1').expand().value) # [['a1', 'b1', 'c1'], ['a2', 'b2', None]]
# 给单元格信息添加链接"www.baidu.com",并在单元格内显示"Baidu"
sheet.range("A1").add_hyperlink("www.baidu.com", "Baidu")
print(sheet.range("a1").value) # Baidu
print(sheet.range("a1").hyperlink) # http://www.baidu.com/
6. 保存并关闭文件
wb.save() # 对于已经命名的文件,直接保存
wb.save("test_2") # 对于新建后没有名字的文件,命名并保存
wb.close() # 关闭文件
7. 其他功能
xlwings 还有很多其他的功能,比如给表格设置样式,插入图片等,可参见官网文档。