下面我来详细讲解“Python操作xlwings的实例详解”的完整实例教程。
1. 安装xlwings
首先需要安装xlwings
库,可以使用pip命令进行安装:
pip install xlwings
2. 创建Excel文件
使用Excel
软件创建一个工作簿,并命名为test.xlsx
,在第一个工作表中分别填入如下数据:
序号 | 姓名 | 年龄 |
---|---|---|
1 | 张三 | 20 |
2 | 李四 | 25 |
3 | 王五 | 30 |
保存并关闭该工作簿。
3. 导入xlwings库
在Python中,通过import
语句导入xlwings
库和os
库:
import xlwings as xw
import os
4. 打开Excel文件
使用xlwings
库的Book()
构造函数打开该Excel文件,然后使用Workbook()
方法将该工作簿分配给变量book
:
filename = 'test.xlsx'
file_path = os.path.abspath(filename)
app = xw.App(visible=False)
book = xw.Book(file_path)
其中filename
为文件名,file_path
为文件的绝对路径。
5. 读取Excel文件中的数据
读取Excel文件中的数据需要先获取对应的工作表对象,然后使用range()
方法选取数据区域,并使用options()
方法指定返回结果的格式为np.array
:
worksheet = book.sheets[0]
rng = worksheet.range('A2:C4').options(expand='table').value
print(rng)
输出结果为:
array([[1, '张三', 20],
[2, '李四', 25],
[3, '王五', 30]], dtype=object)
其中rng
是返回的数据,将其输出在终端中。
6. 向Excel文件中写入数据
向Excel文件中写入数据需要先获取对应的工作表对象,然后使用range()
方法选取要写入数据的单元格,然后再使用value
属性写入数据:
worksheet = book.sheets[0]
worksheet.range('A5:C7').value = [[4, '赵六', 35], [5, '钱七', 40], [6, '孙八', 45]]
book.save()
app.quit()
上述代码将数据写入到第一个工作表的A5:C7
的单元格中,并保存该工作簿。最后使用quit()
方法关闭Excel软件并释放内存。
示例2:将pandas的dataframe写入到Excel文件中
import pandas as pd
data = {'序号': [1, 2, 3], '姓名': ['张三', '李四', '王五'], '年龄': [20, 25, 30]}
df = pd.DataFrame(data)
filename = 'test.xlsx'
file_path = os.path.abspath(filename)
app = xw.App(visible=False)
book = xw.Book()
worksheet = book.sheets[0]
worksheet.range('A1').value = df
book.save(file_path)
app.quit()
上述代码创建了一个pandas
的dataframe
对象df
,并将其写入到Excel文件中。其中Book()
构造函数不带参数,会创建一个新的工作簿。然后使用range()
方法选取第一个单元格,使用value
属性将整个df
对象写入到该单元格中,最后保存该工作簿并关闭Excel软件。