ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 语法概述 xlwings对象模型与VBA使用的模型非常相似。 下面所有代码示例取决于以下导入: ~~~ >>> import xlwings as xw ~~~ ## 活动对象 ~~~ # 活动应用程序(即Excel实例) >>> app = xw.apps.active # 活动工作簿 >>> wb = xw.books.active # 在活动app >>> wb = app.books.active # 在特定app # 活动工作表 >>> sht = xw.sheets.active # 在活动工作簿 >>> sht = wb.sheets.active # 在特定工作簿 # 活动工作表的Range >>> xw.Range('A1') #在活动应用程序的活动工作簿的活动表上 ~~~ 可以使用A1表示法,Excel的基于1的索引的元组,命名范围或两个Range对象来实例化范围: ~~~ xw.Range('A1') xw.Range('A1:C3') xw.Range((1,1)) xw.Range((1,1), (3,3)) xw.Range('NamedRange') xw.Range(xw.Range('A1'), xw.Range('B2')) ~~~ ## Full qualification 圆括号遵循Excel的行为(即基于1的索引),而方括号使用Python的基于0的索引/切片。 例如,以下表达式都引用相同的范围: ~~~ xw.apps[763].books[0].sheets[0].range('A1') xw.apps(10559).books(1).sheets(1).range('A1') xw.apps[763].books['Book1'].sheets['Sheet1'].range('A1') xw.apps(10559).books('Book1').sheets('Sheet1').range('A1') ~~~ 请注意,apps键与您不同,因为它们是进程ID(PID)。 您可以通过`xw.apps.keys()`获取PID列表. ## Range索引/切片 Range对象支持索引和切片,例如: ~~~ >>> rng = xw.Book().sheets[0].range('A1:D5') >>> rng[0, 0] <Range [Workbook1]Sheet1!$A$1> >>> rng[1] <Range [Workbook1]Sheet1!$B$1> >>> rng[:, 3:] <Range [Workbook1]Sheet1!$D$1:$D$5> >>> rng[1:3, 1:3] <Range [Workbook1]Sheet1!$B$2:$C$3> ~~~ ## Range Shortcuts 工作表对象通过在工作表对象上使用索引/切片表示法为范围对象提供快捷方式。 这将根据您是否传递字符串或索引/切片来评估`sheet.range`或`sheet.cells`: ~~~ >>> sht = xw.Book().sheets['Sheet1'] >>> sht['A1'] <Range [Book1]Sheet1!$A$1> >>> sht['A1:B5'] <Range [Book1]Sheet1!$A$1:$B$5> >>> sht[0, 1] <Range [Book1]Sheet1!$B$1> >>> sht[:10, :10] <Range [Book1]Sheet1!$A$1:$J$10> ~~~ ## 对象层次结构 下面显示了对象层次结构的示例,即如何从应用程序到Range对象并一直返回: ~~~ >>> rng = xw.apps[10559].books[0].sheets[0].range('A1') >>> rng.sheet.book.app <Excel App 10559> ~~~