Python xlwings库学习笔记
📚 目录
1. xlwings简介
1.1 什么是xlwings?
xlwings是一个强大的Python库,用于与Microsoft Excel进行交互。它具有以下特点:
- ✅ 直接操作Excel应用程序
- ✅ 读写Excel文件
- ✅ 自动化Excel操作
- ✅ 与Pandas完美集成
- ✅ 支持VBA宏调用
- ✅ 跨平台兼容
1.2 xlwings的优势
特性 |
说明 |
优势 |
实时交互 |
直接控制Excel应用程序 |
可以实时看到操作效果 |
功能完整 |
支持Excel的所有功能 |
包括格式化、图表、公式等 |
性能优秀 |
批量操作效率高 |
适合处理大量数据 |
易于使用 |
Python语法简洁 |
学习成本低 |
扩展性强 |
支持自定义函数 |
可以集成VBA宏 |
1.3 与其他Excel库的对比
库名 |
特点 |
适用场景 |
xlwings |
实时交互,功能完整 |
自动化、实时操作 |
openpyxl |
纯Python实现 |
文件读写,无Excel依赖 |
xlsxwriter |
只写模式 |
生成Excel报告 |
pandas |
数据处理为主 |
数据分析,批量处理 |
2. 安装和配置
2.1 安装xlwings
pip install xlwings
conda install -c conda-forge xlwings
2.2 系统要求
- Windows: 需要安装Microsoft Excel
- macOS: 需要安装Microsoft Excel for Mac
- Linux: 需要安装LibreOffice或Wine
2.3 验证安装
import xlwings as xw
app = xw.App(visible=False)
wb = app.books.add()
sheet = wb.sheets.active
sheet.range('A1').value = "Hello xlwings!"
wb.close()
app.quit()
print("xlwings安装成功!")
3. 基础操作
3.1 启动Excel应用程序
import xlwings as xw
app = xw.App(visible=True)
app = xw.App.active
3.2 工作簿操作
wb = app.books.add()
print(f"新工作簿: {
wb.name}")
wb = app.books.open('example.xlsx')
wb.save('new_file.xlsx')
wb.close()
app.quit()
3.3 工作表操作
sheet = wb.sheets.active
sheet = wb.sheets['Sheet1']
all_sheets = wb.sheets
new_sheet = wb.sheets.add('NewSheet')
sheet.delete()
3.4 单元格操作
sheet.range('A1').value = "Hello World"
sheet.range('A1:C3').value = [
['A1', 'B1', 'C1'],
['A2', 'B2', 'C2'],
['A3', 'B3', 'C3']
]
value = sheet.range('A1').value
print(f"A1的值: {
value}")
data = sheet.range('A1:C3').value
print("范围数据:")
for row in data:
print(row)
3.5 范围操作
used_range = sheet.used_range
expanded_range = sheet.range('A1').expand()
sheet.range('A1:C10').select()
sheet.range('A1:C10').clear()
4. 高级功能
4.1 格式化操作
sheet.range('A1').api.Font.Bold = True
sheet.range('A1').api.Font.Size = 14
sheet.range('A1').api.Font.Name = "Arial"
sheet.range('A1').color = (255, 255, 0)
sheet.range('A1:C3').api.Borders.LineStyle = 1
sheet.range('A1').api.HorizontalAlignment = -4108
sheet.range('A:A').column_width = 15
sheet.range('1:1').row_height = 25
4.2 公式操作