xlwings具体有哪些函数

xlwings 的函数主要围绕操作 Excel 的 应用程序(App)、工作簿(Book)、工作表(Sheet)、单元格范围(Range) 等核心对象展开。以下是具体分类的函数及方法详解:


1. App 类(Excel 应用程序)

管理 Excel 进程,启动或关闭应用。

常用方法
  • App(visible=True, add_book=True)
    创建 Excel 实例。

    • visible: 是否显示 Excel 界面(默认为 True)。

    • add_book: 是否自动创建空白工作簿(默认为 True)。

  • app.quit()
    关闭 Excel 应用(强制终止进程)。

  • app.books
    返回所有打开的工作簿对象(Books 集合)。

  • app.kill()
    强制终止所有 Excel 进程(谨慎使用)。


2. Book 类(工作簿)

操作 Excel 文件(.xlsx 等)。

常用方法
  • app.books.open('file.xlsx')
    打开现有工作簿。

  • app.books.add()
    创建新工作簿。

  • book.save('path/to/save.xlsx')
    保存工作簿(未指定路径则保存到默认位置)。

  • book.close()
    关闭工作簿(未保存时可能弹出提示)。

  • book.sheets
    返回所有工作表对象(Sheets 集合)。

  • book.activate()
    将工作簿设为当前活动窗口。


3. Sheet 类(工作表)

操作单个工作表。

常用方法
  • book.sheets.add(name='Sheet1', before=None, after=None)
    添加新工作表,可指定名称和位置。

  • sheet.delete()
    删除当前工作表。

  • sheet.clear()
    清除所有内容和格式。

  • sheet.autofit(axis=None)
    自动调整列宽或行高:

    • axis='columns' 调整列宽,axis='rows' 调整行高,默认两者都调整。

  • sheet.range(cell_address)
    选择单元格范围(如 'A1:B2')。

  • sheet.cells(row, column)
    按行列索引选择单元格(如 cells(1,1) 对应 A1)。

  • sheet.name
    获取或修改工作表名称(如 sheet.name = 'Data')。


4. Range 类(单元格范围)

操作单元格数据、格式和公式。

核心方法
  • range.value
    读取或写入单元格值(支持标量、列表、NumPy 数组、Pandas DataFrame)。

# 写入二维数据
sheet.range('A1').value = [[1, 2], [3, 4]]
# 读取为 DataFrame
df = sheet.range('A1').options(pd.DataFrame, expand='table').value
  • range.formula
    设置或获取单元格公式(如 =SUM(A1:A10))。

  • range.number_format
    设置数字格式(如 '0.00%''YYYY-MM-DD')。

  • range.color
    设置单元格背景色(RGB 元组,如 (255, 0, 0) 表示红色)。

  • range.font
    设置字体属性:

range.font.bold = True       # 加粗
range.font.color = (0, 0, 0) # 黑色字体
range.font.size = 12         # 字号

range.api
直接调用 Excel VBA 对象模型(高级功能,需熟悉 Excel API)。

格式控制
  • range.merge() / range.unmerge()
    合并或取消合并单元格。

  • range.borders
    设置边框样式:

border = range.borders
border.color = (0, 0, 0)    # 边框颜色
border.weight = 2           # 边框粗细

range.row_height / range.column_width
调整行高或列宽(单位:磅)。


5. 其他实用函数

与 pandas 交互

options() 方法
指定数据读取/写入的选项:

sheet.range('A1').options(index=False, header=True).value = df  # 写入 DataFrame 时不包含索引
图表操作

sheet.charts.add()
创建图表对象:

chart = sheet.charts.add(left=100, top=100, width=300, height=200)
chart.set_source_data(sheet.range('A1:B10'))
chart.chart_type = 'line'  # 图表类型(柱状图、饼图等)
宏与事件
  • 调用 VBA 宏

macro = book.macro('MyMacro')
macro()  # 执行宏
  • 事件绑定
@xw.sub
def on_save():
    print("工作簿已保存!")

6. 高级功能

用户定义函数 (UDF)

用 Python 编写 Excel 函数(需安装 xlwings 插件):

@xw.func
def add_numbers(x, y):
    return x + y

在 Excel 中直接调用 =add_numbers(1, 2)

远程操作 (Windows)

通过 COM 服务器远程控制 Excel:

app = xw.App(visible=False, spec='path/to/excel.exe')

快速查找函数

使用 dir()
查看对象的所有属性和方法:

print(dir(sheet))  # 查看 Sheet 对象的方法

示例场景

批量修改单元格格式

import xlwings as xw

with xw.Book('data.xlsx') as book:
    sheet = book.sheets[0]
    for row in range(1, 10):
        cell = sheet.range(f'A{row}')
        if cell.value > 100:
            cell.color = (255, 0, 0)  # 超过 100 的标红
    book.save()

xlwings 的函数覆盖了 Excel 操作的方方面面,通过组合这些方法,可以实现复杂的自动化任务。建议结合具体需求查阅文档中的对应类和方法!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值