xlwings笔记
admin
2024-01-21 10:31:28
0

文章目录

    • 介绍
    • xlwings 常用实例
      • 读取、写入单元格
      • 将列表写入某个范围
    • xlwings 安装
    • 顶级函数
      • 顶级函数xlwings.load
      • 顶级函数xlwings.view
    • apps
      • apps 介绍
      • apps属性
      • 查看Apps包含的所有App
      • 返回App总数
      • 查看所有的PID
      • 返回当前活动App
      • 激活App
      • 设置计算模式
      • 传入参数
      • 退出App
      • VBA使用示例
      • App对象引用
      • 屏幕更新_screen_updating
      • App可见性
      • 获取创建工作簿的App
      • 创建App
      • 计算公式
      • 提醒信息是否显示
    • 工作薄book
      • 工作薄的引用
        • 当前活动App的工作簿集合
        • 指定App的所有工作簿的集合
        • 在当前App中引用
        • 在新App中引用
        • 引用活动工作簿
      • 工作薄属性
        • 全名_fullname
        • 名称_name
        • 名称集合names
        • 名称集合selection
        • 工作薄集合sheets
      • 工作薄方法
        • 创建工作薄即excel文件_add()
        • 打开读取工作薄_open()
        • 连接到工作薄
        • 激活工作薄_activate()
        • _caller()
        • 关闭close()
        • 保存save()
        • 设置Python代码从Excel中运行set_mock_caller ( )
        • 导出到pdf_to_pdf()
    • 工作表
      • 工作表的引用
        • 指定工作表
      • 工作表的属性
        • 所有工作表的集合_books
        • 活动的工作表_active
        • 工作表所在工作薄_book
        • 所有单元格_cells
        • 所有图表_charts
        • 索引_index
        • 名称_name
        • 名称集_names
        • 页面设置对象_page_setup
        • 页面设置对象_page_setup
        • 图片_pictures
        • 图片_pictures
        • 形状_shapes
        • 表_tables
        • 表_used_range
        • 可见性_visible
      • 工作表的方法
        • 创建工作表_add()
        • 激活工作表_activate()
        • 自动行高和列宽_autofit()
        • 清除整个工作表的内容和格式_autofit()
        • 清除整个工作表的内容,但保留格式_clear_contents()
        • 清除整个工作表的格式,但保留内容_clear_formats()
        • 复制工作表_copy()
        • 删除工作表_delete()
        • 返回range对象_range()
        • 选择_select()
        • 导出到pdf_to_pdf()
    • range
        • range类_Range
      • range的引用
      • range的属性
        • 地址_address
        • 填充颜色_color
        • 列_column
        • 列宽_column_width
        • 列_columns
        • 计数_count
        • 当前区域_current_region
        • 公式_formula
        • 公式2_formula2
        • 数组公式_formula_array
        • has_数组_has_array
        • 高度_height
        • 超链接_hyperlink
        • 超链接_last_cell
        • 左_left
        • 合并区域_merge_area
        • 合并区域_merge_cells
        • 名称_name
        • 名称_note
        • 数字格式_number_format
        • 原始值_raw_value
        • 行_row
        • 行高_row_height
        • 行_rows
        • 形状_shape
        • 所在工作表_sheet
        • 大小_size
        • table_table
        • 属性_top
        • 值_value
        • 宽度_width
        • 换行文字_wrap_text
      • range的方法
        • 添加超链接_add_hyperlink()
        • 自动行高、列宽_autofit()
        • 清除内容和格式_clear()
        • 清除内容,保留格式_clear_contents()
        • 清除格式,保留内容_clear_formats()
        • 复制_copy()
        • 复制图片_copy_picture()
        • 删除_delete()
        • 结束_end()
        • 展开_expand()
        • 获取地址_get_address()
        • 插入_insert()
        • 合并_merge()
        • 偏移_offset()
        • 粘贴_paste()
        • 调整大小_resize()
        • 选择_select()
        • 导出到PDF_to_pdf()
        • 导出到png图片_to_png()
        • 取消合并_unmerge()
    • RangeRows
      • RangeRows的引用
      • RangeRows的属性
        • 数量_count
      • RangeRows的方法
        • 自动行高_autofit
    • RangeColumns
      • RangeColumns的引用
      • RangeColumns的属性
        • 数量_count
      • RangeColumns的方法
        • 自动列宽_autofit
    • tables
      • 为指定工作表添加table
    • table
      • table的引用
      • table的属性
        • 引擎_api
        • 数据体范围_data_body_range
        • 显示名称_display_name
        • 标题行范围_header_row_range
        • 插入行范围_insert_row_range
        • 标题行范围_name
        • 父级表_parent
        • 范围_range
        • 自动过滤_show_autofilter
        • 显示或隐藏标题_show_headers
        • 显示表格样式_show_table_style_column_stripes
        • 首列格式化_show_table_style_first_column
        • 显示最后一列_show_table_style_last_column
        • 显示行的样式_show_table_style_row_stripes
        • 显示汇总行_show_totals
        • 表样式_table_style
        • 表示 Total 行的 xlwings 范围对象_totals_row_range
      • table的方法
      • 调整大小_ resize()
      • 更新_update()
    • 字体_Font
      • 字体的引用
      • 字体的属性
        • 引擎_api
        • 粗体_bold
        • 颜色_color
        • 斜体_italic
        • 字体名称_name
        • 字体大小_size
    • 转换器和选项
      • 转换器
      • 内置转换器
        • 字典转换器,将两个 Excel 列转换为字典
      • Numpy 数组转换器
      • Pandas 系列转换器
      • Pandas DataFrame 转换器
      • 转换器示例
        • 读取单元格的数字为int格式(再转换成str)
        • 将list写入列
    • 常见问题
      • 在pycharm中提示没有App()方法
      • 在excel中增加xlwings标签功能
      • 将单元格的格式改为文本类型
    • 页面设置

介绍

  1. pypi
  2. 官网
  3. API文档
  4. xlwings只能用在安装了office的windows系统上
  5. 逻辑关系
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q7ecYluo-1668481933901)(vx_images/1901858160553.png)]
  6. Excel程序用App来表示,多个Excel程序集合用Apps表示;
  7. 单个工作簿用Book表示,工作簿集合用Books表示;
  8. 单个工作表用Sheet表示,工作表集合用Sheets表示;
  9. 区域用Range表示,既可以是一个单元格,也可以是一片单元格区域。
  10. 注意,在xlwings中是不区分大小写的,SHEET1和sheet1的含义一样。

xlwings 常用实例

读取、写入单元格

  1. 代码
    import xlwings as xwexcel_file = r"D:\Users\Liu\Desktop\cameras.xlsx"
    app = xw.App(visible=True,add_book=False)
    wb = app.books.open(excel_file) # 打开指定的excel文件
    #sht1 = wb.sheets['cameras'] # 指定工作表的名称
    sht1 = xw.sheets.active # 当前活动工作表
    cell_1 = sht1.range("A3") # 指定单元格
    cell_2 = sht1.range(3,4) # 指定单元格,3行4列
    con = cell_1.value # 读取单元格内容
    cell_2.value = con # 将con内容写入到cell_2单元格
    wb.save(excel_file) # 保存文件
    wb.close() # 关闭文件
    app.quit() # 退出应用
    

将列表写入某个范围

  1. 代码
    import xlwings as xwexcel_file = r"D:\新建 Microsoft Excel 工作表.xlsx"
    app = xw.App(visible=True,add_book=False)
    wb = app.books.open(excel_file) # 打开指定的excel文件
    sht1 = xw.sheets.active # 当前活动工作表
    list1 = ['a','b','c','d']
    sht1.range('A1').options(transpose=True).value = list1 # 列方式写入列表,每个单元格1个元素
    sht1.range('c1').value = list1 # 行方式写入列表,每个单元格1个元素
    #wb.save(excel_file) # 保存文件
    #wb.close() # 关闭文件
    #app.quit() # 退出应用
    

xlwings 安装

  1. 安装
    pip3 install xlwings
    
  2. 安装excel插件,在excel中显示xlwings标签
    xlwings addin install
    

顶级函数

顶级函数xlwings.load

  1. 介绍
    1. 将活动工作簿的选定单元格加载到 pandas DataFrame 中
    2. 如果您选择具有相邻单元格的单个单元格,则范围会自动扩展(通过当前区域)并变成 pandas DataFrame。
    3. 如果您没有安装 pandas,它会将值作为嵌套列表返回。
    4. 注意:
      1. 只能在交互式环境中使用它,例如 Jupyter!不要在脚本中使用它,因为它取决于活动的工作薄。
  2. 语法
    xlwings.load(index=1, header=1, chunksize=5000)
    
  3. 参数
    参数取值范围说明
    indexbool或int,默认1定义左侧将转换为 DataFrame 索引的列数
    headerbool或int,默认1定义顶部的行数,这些行数将变成 DataFrame 的列
    chunksizeint , 默认 5000对大数组的加载进行分块
  4. 示例
    import xlwings as xw
    xw.load()
    

顶级函数xlwings.view

  1. 介绍
    1. 默认情况下,打开一个新工作簿并在其第一个工作表上显示一个对象。
    2. 如果您提供工作表对象,它将在现有工作表上显示对象之前清除工作表。
    3. 注意:
      1. 只能在交互式环境中使用它,例如 Jupyter!不要在脚本中使用它,因为它取决于活动的工作薄。
  2. 语法
    xlwings.view(obj, sheet=None, table=True, chunksize=5000)
    
  3. 参数
    参数取值范围说明
    obj任何带有内置转换器的类型要显示的对象,例如数字、字符串、列表、numpy 数组、pandas DataFrames
    sheetSheet ,默认 None工作表对象。如果未提供,则使用新工作簿的第一个。
    tablebool , 默认 True如果你的对象是 pandas DataFrame,默认情况下它被格式化为 Excel Table
    chunksizeint , 默认 5000对大数组的加载进行分块
  4. 示例
    import xlwings as xw
    import pandas as pd
    import numpy as np
    df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
    xw.view(df)
    

apps

apps 介绍

  1. 所有app对象的集合
  2. 打开屏幕更新,我们可以看到xlwings对Excel进行操作的过程,关闭更新可以加速脚本运行。默认是打开的。如果关闭了,脚本运行完毕之后,记住把screen_updating属性值改回 True

apps属性

  1. 属性
    属性取值范围说明
    api返回正在使用的引擎的本机对象(pywin32或appscriptobj)
    books当前打开的所有 Book 对象的集合
    calculation‘manual’, ‘automatic’,‘semiautomatic’计算模式
    cut_copy_mode获取或设置剪切或复制模式的状态
    display_alertsbool,默认 True在代码运行时抑制提示和警报消息,
    enable_eventsbool事件
    hwnd返回窗口句柄(仅限 Windows)
    interactivebool如果将此属性设置为False,Excel 将阻止来自键盘和鼠标的所有输入(除了代码显示的对话框的输入)
    macro(name)带有或不带有模块名称的子或函数的名称在 Excel VBA 中运行不属于特定工作簿但属于加载项的子程序或函数。
    pid返回程序的pid
    quit()退出应用程序而不保存任何工作簿
    selection将选定的单元格返回为 Range。
    startup_path返回XLSTART通过执行将 xlwings 加载项复制到的路径
    status_barbool,str获取或设置状态栏的值
    version显示Excel的版本号

查看Apps包含的所有App

Apps = xw.apps
print ("查看Apps包含的所有App:",Apps)

返回App总数

count = xw.apps.count
print ("返回App总数:",count)

查看所有的PID

keys = xw.apps.keys()
print ("查看所有的PID:",keys)

返回当前活动App

app = xw.apps.active

激活App

app.activate()

设置计算模式

import xlwings as xw
wb = xw.Book()
wb.app.calculation = 'manual' # 模式:'manual', 'automatic','semiautomatic'

传入参数

app.activate(steal_focus=True)

退出App

  1. 通过杀掉进程强制Excel app退出
    app.kill()
    
  2. 退出excel程序,不保存任何工作簿
    app.quit()
    

VBA使用示例

  1. 在工作薄中插入模块,定义VBA
    Function MySum(x, y)MySum = x + y
    End Function
    
  2. 在Python中调用定义的VBA函数
    import xlwings as xw
    app = xw.App()
    my_sum = app.macro('MySum')
    

App对象引用

# 引用app,使用PID引用
app = xw.apps[1668]

屏幕更新_screen_updating

  1. 关闭屏幕更新,看不到操作过程,速度快
  2. 关请记住在脚本结束时将 screen_updating 属性设置回 True
    app.screen_updating # 返回屏幕更新状态
    app.screen_updating = False # 设置屏幕更新状态
    

App可见性

  1. visible用来设置程序是否可见,True表示可见(默认),Flase不可见。
  2. 可以设置,可以查看,为布尔类型
    app.visible # 返回状态
    app.visible = True # 设置App为可见
    

获取创建工作簿的App

wb.app

创建App

  1. add_book用来设置是否自动创建工作簿,True表示自动创建(默认),False不创建
  2. 当设置成add_book=False时,可以创建App,但是还未生成PID,只有当这个App创建了工作簿后,才会生成自己的PID
  3. 示例
    # 创建App
    app = xw.App()
    app = xw.App(visible=True,add_book=False)
    

计算公式

  1. 重新计算一遍所有工作簿里的公式
    app.calculate()
    

提醒信息是否显示

  1. 示例
    app.display_alerts=False  #
    cut_copy_mode
    

工作薄book

工作薄的引用

当前活动App的工作簿集合

  1. 代码
    books = xw.books
    

指定App的所有工作簿的集合

  1. 代码
    books = app.books
    

在当前App中引用

  1. 只可以引用工作簿。不能打开工作簿
  2. 代码
    books = app.books
    

在新App中引用

  1. 既可以打开工作薄也可以引用工作簿。也就是说,当工作簿未打开时,它可以打开工作薄,当工作簿处于打开状态时,它可以引用工作簿
  2. 代码
    wb = xw.Book('test.xlsx')
    

引用活动工作簿

  1. 代码
    wb = app.books.active
    

工作薄属性

全名_fullname

  1. 以字符串形式返回对象的名称,包括其在磁盘上的路径。只读字符串
  2. 语法
    工作薄对象.fullname
    

名称_name

  1. 以 str 形式返回工作薄名称
  2. 包含文件名及扩展名,不包含目录信息
  3. 语法
    工作薄对象.name
    

名称集合names

  1. 返回一个名称集合,该集合表示指定书中的所有名称(包括所有特定于工作表的名称)
  2. 语法
    工作薄对象.names
    

名称集合selection

  1. 将选定的单元格返回为 Range
  2. 语法
    工作薄对象.selection
    
  3. 输出示例
    Range [test.xlsx]test3!$A$1:$C$11
    

工作薄集合sheets

  1. 返回代表书中所有工作表的工作表集合
  2. 语法
    工作薄对象.sheets
    

工作薄方法

创建工作薄即excel文件_add()

  1. 创建工作薄。新工作薄成为活动工作薄。返回一个 工作薄 对象
  2. 代码
    import xlwings as xw
    excel_file = "D:\\test.xlsx"
    app = xw.App(visible=True,add_book=False)
    wb = app.books.add()
    wb.close()
    app.quit()
    

打开读取工作薄_open()

  1. 如果一个工作薄尚未打开,则打开它并返回它。
  2. 如果它已经打开,它不会引发异常,而只是返回 Book 对象
  3. 语法
    open(fullname=None, update_links=None, read_only=None, format=None, password=None, write_res_password=None, ignore_read_only_recommended=None, origin=None, delimiter=None, editable=None, notify=None, converter=None, add_to_mru=None, local=None, corrupt_load=None, json=None)
    
  4. 参数
    参数取值范围说明
    fullnamestr或路径对象如果没有完整路径,它会在当前工作目录中查找文件
    update_linksbool默认 None如果省略此参数,则提示用户指定如何更新链接
    read_onlybool,默认 False以只读模式打开工作簿
    formatstr如果打开文本文件,指定分隔符
    passwordstr指定工作簿的密码
    write_res_passwordstr写入保留写入工作簿的密码
    ignore_read_only_recommendedbool , 默认 False设置True为静音只读推荐消息
    originint仅适用于文本文件。指定它的来源。使用平台常量
    delimiterstr如果格式参数为 6,则指定分隔符
    editablebool, 默认 False此选项仅适用于旧版 Microsoft Excel 4.0 插件
    notifybool , 默认 False当文件可用时通知用户如果文件无法以读/写模式打开
    converterint打开文件时要尝试的第一个文件转换器的索引
    add_to_mrubool , 默认 False将此工作簿添加到最近添加的工作簿列表中
    localbool , 默认 False如果是 True, 根据 Excel 的语言保存文件,否则根据 VBA 的语言保存文件。在 macOS 上不支持
    corrupt_loadint , 默认 xlNormalLoad可以是 xlNormalLoad、xlRepairFile 或 xlExtractData 之一。在 macOS 上不支持。
    jsondict由 MS Office Scripts 或 Google Apps Script xlwings 模块提供的 JSON 对象,但采用反序列化形式,即作为字典
  5. 示例
    import xlwings as xw
    excel_file = "D:\\test.xlsx"
    app = xw.App(visible=True,add_book=False)
    # 在当前App下打开代码所在路径下的工作簿
    wb = app.books.open(excel_file)
    print(wb.name)
    wb.close()
    app.quit()
    

连接到工作薄

  1. 连接到工作薄的最简单方法是xw.Book
  2. 语法
    class xlwings.Book(fullname=None, update_links=None, read_only=None, format=None, password=None, write_res_password=None, ignore_read_only_recommended=None, origin=None, delimiter=None, editable=None, notify=None, converter=None, add_to_mru=None, local=None, corrupt_load=None, impl=None, json=None)
    
  3. 参数参考上面的打开读取工作薄(open)
  4. 示例
    app = xw.App()
    app.books['Book1']
    

激活工作薄_activate()

  1. 激活工作薄
  2. 语法
    activate(steal_focus=True)
    
  3. steal_focus ( bool ,默认 False ) – 如果为 True,则创建最前面的窗口并将焦点从 Python 移交给 Excel。

_caller()

  1. 当 Python 函数通过 Excel 从 Excel 调用时引用调用书 RunPython。将其打包到从 Excel 调用的函数中
  2. 为了能够轻松地从 Python 调用此类代码进行调试,请使用 xw.Book.set_mock_caller()
  3. 示例
    import xlwings as xwdef my_macro():wb = xw.Book.caller()wb.sheets[0].range('A1').value = 1
    

关闭close()

  1. 关闭工作薄而不保存
  2. 语法
    工作薄对象.close()
    

保存save()

  1. 保存工作簿。如果提供了路径,则其工作方式类似于 Excel 中的 SaveAs()
  2. 如果没有指定路径并且文件之前没有保存过,那么它会以当前文件名保存在当前工作目录中
  3. 现有文件会在不提示的情况下被覆盖
  4. 语法
    save(path=None, password=None)
    
  5. 属性
    属性取值范围说明
    pathstr或路径对象,默认 None工作簿的完整路径
    passwordstr ,默认无最大保护密码 15 个字符

设置Python代码从Excel中运行set_mock_caller ( )

  1. 设置当从 Python 调用代码而不是通过 Excel 从 Excel 调用代码时用于模拟的 Excel 文件RunPython
  2. 示例
    # 这段代码通过RunPython在Excel中运行,而不是直接从Python中运行
    import os
    import xlwings as xwdef my_macro():sht = xw.Book.caller().sheets[0]sht.range('A1').value = 'Hello xlwings!'if __name__ == '__main__':xw.Book('file.xlsm').set_mock_caller()my_macro()
    

导出到pdf_to_pdf()

  1. 将整个 Excel 工作簿或工作表的子集导出到 PDF 文件
  2. 如果要打印隐藏的工作表,则需要在 下明确列出它们include
  3. 语法
    to_pdf(path=None, include=None, exclude=None, layout=None, exclude_start_string='#', show=False, quality='standard')
    
  4. 属性
    属性取值范围说明
    pathstr或路径对象,默认 NonePDF 文件的路径,默认与工作簿同名,在同一目录中。对于未保存的工作簿,它默认为当前工作目录
    includeint或str或list ,默认 None要包括哪些工作表:以工作表索引(如 Excel 中的 1 为基础)或工作表名称的形式提供工作表选择。可以是单个工作表的 int/str 或多个工作表的 int/str 列表
    excludeint或str或list ,默认 None要排除哪些工作表:以工作表索引(如 Excel 中的 1 为基础)或工作表名称的形式提供工作表选择。可以是单个工作表的 int/str 或多个工作表的 int/str 列表
    layoutstr or 路径对象, 默认 None此参数需要 xlwings PRO
    exclude_start_stringstr,默认’#’不会打印以此字符/字符串开头的工作表名称
    show (bool, 默认 False创建后,使用默认应用程序打开 PDF 文件
    qualitystr, 默认 ‘standard’PDF 文件的质量。可以是’standard’或’minimum’

工作表

工作表的引用

指定工作表

  1. 引用第一个工作表,如果使用()表示从1开始,如果使用[]表示从0开始
  2. 代码
    import xlwings as xw
    wb = xw.Book()
    sht1 = wb.sheets[0] # 指定工作表的序号,使用[],表示从0开始
    sht2 = wb.sheets['Sheet1'] # 指定工作表的名称
    sht3 = wb.sheets(1) # 指定工作表的序号,使用(),表示从1开始
    sht4 = xw.sheets.active # 当前活动工作表
    print(sht1.name,sht2.name,sht3.name,sht4.name)
    wb.close()
    

工作表的属性

所有工作表的集合_books

  1. 代码
    import xlwings as xw
    excel_file = "D:\\test.xlsx"
    app = xw.App(visible=True,add_book=False)
    wb = app.books.open(excel_file) # 在当前App下打开代码所在路径下的工作簿
    print(xw.sheets) # 激活工作薄
    wb.close()
    app.quit()
    print(xw.Book(excel_file).sheets) # 指定工作薄
    

活动的工作表_active

  1. 返回活动工作表
  2. 代码
    import xlwings as xw
    excel_file = "D:\\test.xlsx"
    app = xw.App(visible=True,add_book=False)
    wb = app.books.open(excel_file) # 在当前App下打开代码所在路径下的工作簿
    print(xw.sheets.active) # 返回活动的工作表
    wb.close()
    app.quit()
    

工作表所在工作薄_book

  1. 返回指定工作表的工作薄,只读
  2. 代码
    print(工作表对象.book)
    

所有单元格_cells

  1. 返回一个 Range 对象,该对象表示工作表上的所有单元格(不仅仅是当前正在使用的单元格)
  2. 代码
    print(工作表对象.cells)
    

所有图表_charts

  1. 代码
    print(工作表对象.charts)
    

索引_index

  1. 代码
    print(工作表对象.index)
    

名称_name

  1. 代码
    print(工作表对象.name)
    

名称集_names

  1. 回一个名称集合,该集合表示所有特定于工作表的名称(使用“SheetName!”前缀定义的名称)
  2. 代码
    
    

页面设置对象_page_setup

  1. 返回的是一个对象
  2. 代码
    print(wb.sheets['数据'].page_setup)
    

页面设置对象_page_setup

  1. 返回的是一个对象
  2. 代码
    print(wb.sheets['数据'].page_setup)
    

图片_pictures

  1. 代码
    print(wb.sheets['数据'].pictures)
    

图片_pictures

  1. 代码
    print(wb.sheets['数据'].pictures)
    

形状_shapes

  1. 代码
    print(wb.sheets['查询'].shapes)
    

表_tables

  1. 代码
    print(wb.sheets['查询'].tables)
    

表_used_range

  1. 使用的工作表范围
  2. 返回类型:xw.范围
  3. 代码
    print(wb.sheets['查询'].used_range)
    

可见性_visible

  1. 获取或设置 Sheet (bool) 的可见性
  2. -1可见,0不可见(隐藏)
  3. 代码
    print(wb.sheets['数据'].visible)
    

工作表的方法

创建工作表_add()

  1. 创建一个新工作表并使其成为活动工作表
  2. 语法
    add(name=None, before=None, after=None)
    
  3. 属性
    属性取值范围说明
    namestr , 默认 None新工作表的名称。如果没有,将默认为 Excel 的默认名称(如Sheet1)。
    beforeSheet , 默认 None一个对象,在此工作表之前添加新工作表
    afterSheet , 默认 None一个对象,在此工作表之后添加新工作表
  4. 示例
    import xlwings as xw
    excel_file = "D:\\test.xlsx"
    app = xw.App(visible=True,add_book=False)
    wb = app.books.open(excel_file) # 在当前App下打开代码所在路径下的工作簿
    sht = wb.sheets.add('test20',after='sheet1')
    wb.save()
    wb.close()
    app.quit()
    

激活工作表_activate()

  1. 激活工作表并将其返回
  2. 语法
    activate()
    

自动行高和列宽_autofit()

  1. 在整个工作表上自动调整列、行或两者的宽度
  2. 语法
    autofit(axis=None)
    
  3. 属性
    属性取值范围说明
    axisstr,默认无rows或r表示行高,columns或c,表示列宽,无,表示行高和列宽
  4. 示例
    import xlwings as xw
    excel_file = "D:\\test.xlsx"
    app = xw.App(visible=True,add_book=False)
    wb = app.books.open(excel_file) # 在当前App下打开代码所在路径下的工作簿
    sht1 = wb.sheets['test20'].autofit() # 当前工作表所有列,自动列宽
    sht2 = wb.sheets['Sheet1'].autofit('c') # 当前工作表仅C列,自动列宽
    

清除整个工作表的内容和格式_autofit()

  1. 不清除图表
  2. 语法
    clear()
    
  3. 示例
    工作表对象.clear()
    

清除整个工作表的内容,但保留格式_clear_contents()

  1. 语法
    clear_contents()
    
  2. 示例
    工作表对象.clear_contents
    

清除整个工作表的格式,但保留内容_clear_formats()

  1. 语法
    clear_formats()
    
  2. 示例
    工作表对象.clear_formats
    

复制工作表_copy()

  1. 将工作表复制到当前或新工作薄。默认情况下,它会将复制的工作表放在当前工作薄中所有现有工作表之后。返回复制的工作表
  2. 语法
    copy(before=None, after=None, name=None)
    
  3. 属性
    属性取值范围说明
    before工作表对象,默认无复制到此工作表之前
    after工作表对象,默认无复制到此工作表之后
    namestr,默认无新工作表的名称
  4. 示例
    工作表对象.copy(after=工作薄对象.sheets[0],name='copied') # 工作薄对象为其他工作薄即可跨工作薄复制
    

删除工作表_delete()

  1. 删除工作表。
  2. 语法
    工作表对象.delete()
    

返回range对象_range()

  1. 返回的是对象
  2. 语法
    print(wb.sheets['数据'].range('B1',"C2"))
    

选择_select()

  1. 选择仅适用于活动工作薄
  2. 语法
    wb.sheets['查询'].select
    

导出到pdf_to_pdf()

  1. 将整个 Excel 工作簿或工作表的子集导出到 PDF 文件
  2. 如果要打印隐藏的工作表,则需要在 下明确列出它们include
  3. 语法
    to_pdf(path=None, include=None, exclude=None, layout=None, exclude_start_string='#', show=False, quality='standard')
    
  4. 属性
    属性取值范围说明
    pathstr或路径对象,默认 NonePDF 文件的路径,默认与工作簿同名,在同一目录中。对于未保存的工作簿,它默认为当前工作目录
    includeint或str或list ,默认 None要包括哪些工作表:以工作表索引(如 Excel 中的 1 为基础)或工作表名称的形式提供工作表选择。可以是单个工作表的 int/str 或多个工作表的 int/str 列表
    excludeint或str或list ,默认 None要排除哪些工作表:以工作表索引(如 Excel 中的 1 为基础)或工作表名称的形式提供工作表选择。可以是单个工作表的 int/str 或多个工作表的 int/str 列表
    layoutstr or 路径对象, 默认 None此参数需要 xlwings PRO
    exclude_start_stringstr,默认’#’不会打印以此字符/字符串开头的工作表名称
    show (bool, 默认 False创建后,使用默认应用程序打开 PDF 文件
    qualitystr, 默认 ‘standard’PDF 文件的质量。可以是’standard’或’minimum’

range

range类_Range

  1. 返回一个 Range 对象,该对象表示一个单元格或一系列单元格
  2. 语法
    xlwings.Range(cell1=None, cell2=None, **options)
    
  3. 参数
    参数取值范围说明
    cell1str or tuple or Range左上角范围的名称,以 A1 表示法或索引元组或名称或 xw.Range 对象。它还可以使用范围运算符(冒号)指定范围,例如 ‘A1:B2’
    cell2str or tuple or Range , 默认 None右下角范围的名称,以 A1 表示法或索引元组或名称或 xw.Range 对象
  4. 示例
    print(xw.Range("A1"))  # 活动表,R是大写
    print(wb.sheets['查询'].range("A1")) #具体表 r是小写
    

range的引用

  1. 示例
    xw.Range((1,1), (3,3))
    sht.range((1,1), (3,3))
    sht.range("A2")
    sht.range("A2:C3")
    

range的属性

地址_address

  1. 返回表示范围引用的字符串值。用于get_address()能够提供参数
  2. 示例
    wb.sheets['查询'].range("A1").address
    

填充颜色_color

  1. 获取和设置指定 Range 的背景颜色
  2. 要设置颜色,请使用 RGB 元组或十六进制字符串或 Excel 颜色常量
  3. 要移除背景,请将颜色设置为,请参阅示例。(0, 0, 0)
  4. 示例
    wb.sheets['查询'].range("A1:G20").color = (255, 0, 0)
    

列_column

  1. 返回指定范围内第一列的编号。只读
  2. 返回类型:int
  3. 示例
    print(wb.sheets['查询'].range("A1:G20").column)
    

列宽_column_width

  1. 获取或设置 Range 的宽度(以字符为单位)
  2. 一个列宽单位等于 Normal 样式中一个字符的宽度。对于比例字体,使用字符 0(零)的宽度
  3. 如果 Range 中的所有列都具有相同的宽度,则返回宽度。如果 Range 中的列具有不同的宽度,则返回 None
  4. column_width 必须在以下范围内:0 <= column_width <= 255
  5. 如果 Range 超出了 Worksheet 的使用范围,并且 Range 中的列具有不同的宽度,则返回第一列的宽度
  6. 返回类型:Integer
  7. 示例
    print(wb.sheets['查询'].range("A1").column_width)  # 查看A列列宽
    工作表对象.range('B1').column_width = 60 # 设置B列列宽
    

列_columns

  1. 返回一个RangeColumns表示指定范围内的列的对象
  2. 示例
    print(wb.sheets['查询'].range("A1:E20").columns)
    

计数_count

  1. 返回单元格的数量
  2. 示例
    print(wb.sheets['查询'].range("A1:A5").count)
    

当前区域_current_region

  1. 返回一个 Range 对象
  2. 该对象表示由(但不包括)空白行和空白列的任意组合或工作表边缘限定的范围
  3. 示例
    print(wb.sheets['查询'].range("A4").current_region)
    

公式_formula

  1. 获取或设置给定 Range 的公式
  2. 示例
    工作表对象.range("C16").formula = "=COUNTA(C1:C15)"
    

公式2_formula2

  1. 获取或设置给定 Range 的公式2
  2. 示例
    
    

数组公式_formula_array

  1. 获取或设置给定 Range 的数组公式
  2. 示例
    
    

has_数组_has_array

  1. 如果范围是旧 CSE 数组公式的一部分为True,否则False。
  2. 示例
    
    

高度_height

  1. 返回 Range 的高度(以磅为单位)。只读。
  2. 示例
    print(sht.range("C3").height)
    

超链接_hyperlink

  1. 返回指定 Range 的超链接地址(仅限单个 Cell)
  2. 示例
    print(sht.range("C3").hyperlink)
    

超链接_last_cell

  1. 返回指定范围的右下角单元格。只读
  2. 示例
    print(sht.range("C3:D5").last_cell)
    

左_left

  1. 返回从 A 列左边缘到范围左边缘的距离(以磅为单位)。只读。
  2. 示例
    print(sht.range("C3").left)
    

合并区域_merge_area

  1. 返回一个 Range 对象
  2. 该对象表示包含指定单元格的合并 Range
  3. 如果指定的单元格不在合并范围内,则此属性返回指定的单元格。
  4. 示例
    
    

合并区域_merge_cells

  1. 如果 Range 包含合并的单元格,则返回True,否则False
  2. 示例
    sht.range("C3:C5").merge_cells
    

名称_name

  1. 设置或获取范围的名称
  2. 示例
    sht.range("C3:C5").name = 'test1'
    

名称_note

  1. 返回一个 Note 对象。在引入线程注释之前,注释被称为注释
  2. 示例
    print(sht.range("C3:C5").note)
    

数字格式_number_format

  1. 获取和设置 Range 的 number_format
  2. 示例
    print(sht.range("d1").number_format) # 显示
    sht.range("d1").number_format = '0.00%' # 设置
    

原始值_raw_value

  1. 直接获取和设置从正在使用的引擎(pywin32或appscript)传递/接受的值,而无需经过任何 xlwings 的数据清理/转换
  2. 如果速度是一个问题,这可能会有所帮助,但自然是特定于引擎的,即可能会删除跨平台兼容性
  3. 示例
    print(sht.range("a2:d10").raw_value)
    

行_row

  1. 回指定范围内第一行的编号。只读。
  2. 返回类型:int
  3. 示例
    print(sht.range("a2:d10").row)
    

行高_row_height

  1. 获取或设置 Range 的高度(以磅为单位)
  2. 如果 Range 中的所有行都具有相同的高度,则返回高度
  3. 如果 Range 中的行具有不同的高度,则返回 None
  4. 返回类型:float
  5. 示例
    print(sht.range("a7:b10").row_height)
    

行_rows

  1. 返回一个RangeRows对象,该对象表示指定范围内的行
  2. 示例
    print(sht.range("a7:b10").rows)
    print(sht1.used_range.rows.count) # 最后行号
    

形状_shape

  1. 范围维度的元组
  2. 示例
    print(sht.range("a7:b10").shape)
    

所在工作表_sheet

  1. 返回 Range 所属的 Sheet 对象
  2. 示例
    print(sht.range("a7:b10").sheet)
    

大小_size

  1. Range 中的元素数
  2. 空单元格也计算在内
  3. 示例
    print(sht.range("a7:b10").size)
    

table_table

  1. 如果范围是其中的一部分,则返回 Table 对象,否则返回None
  2. 示例
    print(sht.range("a7:b10").table)
    

属性_top

  1. 返回从第 1 行的上边缘到范围的上边缘的距离(以磅为单位)。只读。
  2. 返回类型:float
  3. 示例
    print(sht.range("a7:b10").top)
    

值_value

  1. 获取和设置给定 Range 的值
  2. 了解xlwings.Range.options() 如何设置选项,例如,将其转换为 DataFrame 或如何设置块大小
  3. 返回类型:返回的对象取决于正在使用的转换器
  4. 示例
    print(sht.range("a7:b10").top)
    

宽度_width

  1. 返回 Range 的宽度(以磅为单位)。只读
  2. 返回类型:float
  3. 示例
    print(sht.range("a7:b10").width)
    

换行文字_wrap_text

  1. 返回True是否启用了 wrap_text 属性以及False是否禁用了它
  2. 如果不是所有单元格在一个范围内都具有相同的值,则在 Windows 上它会返回 None,而在 macOS 上False
  3. 示例
    print(sht.range("a7:b10").wrap_text)
    

range的方法

添加超链接_add_hyperlink()

  1. 将超链接添加到指定范围(单个单元格)
  2. 语法
    add_hyperlink(address, text_to_display=None, screen_tip=None)
    
  3. 参数
    参数取值范围说明
    addressstr超链接的地址
    text_to_displaystr , 默认 None要为超链接显示的文本。默认为超链接地址
    screen_tipstr , default None当鼠标指针悬停在超链接上时要显示的屏幕提示。默认设置为 ' - 单击一次即可关注。单击并按住以选择此单元格
  4. 示例
    wb.sheets['查询'].range("A1").add_hyperlink("http://www.baidu.com", text_to_display="百度", screen_tip="百度查询")
    

自动行高、列宽_autofit()

  1. 自动调整范围内所有单元格的宽度和高度
  2. 语法
    autofit()
    
  3. 示例
    wb.sheets['查询'].range("A1:E20").columns.autofit() # 仅自动列宽
    wb.sheets['查询'].range("A1:E20").rows.autofit() # 仅自动行高
    

清除内容和格式_clear()

  1. 清除 Range 的内容和格式
  2. 示例
    wb.sheets['查询'].range("A1:E20").clear()
    

清除内容,保留格式_clear_contents()

  1. 清除 Range 的内容,但保留格式
  2. 示例
    wb.sheets['查询'].range("A1:E20").clear_contents()
    

清除格式,保留内容_clear_formats()

  1. 清除 Range 的格式,但保留内容
  2. 示例
    wb.sheets['查询'].range("A1:E20").clear_formats()
    

复制_copy()

  1. 将范围复制到目标范围或剪贴板
  2. 语法
    copy(destination=None)
    
  3. 参数
    参数取值范围说明
    destinationxlwings.Rangexlwings 指定范围将被复制到的范围。如果省略,则将范围复制到剪贴板
  4. 示例
    wb.sheets['查询'].range("C14:C20").copy(wb.sheets['查询'].range("H2"))
    

复制图片_copy_picture()

  1. 将范围作为图片复制到剪贴板
  2. 语法
    copy_picture(appearance='screen', format='picture')
    
  3. 参数
    参数取值范围说明
    appearancestr ,默认 ‘screen’‘screen’ 或 ‘printer’
    formatstr , 默认 ‘picture’‘picture’ 或 ‘bitmap’
  4. 示例
    wb.sheets['查询'].range("A1:A5").copy_picture(appearance='screen', format='picture')
    

删除_delete()

  1. 删除一个单元格或单元格范围
  2. 语法
    delete(shift=None)
    
  3. 参数
    参数取值范围说明
    shiftstr , 默认 None使用left或up。如果省略,Excel 将根据范围的形状来决定
  4. 示例
    wb.sheets['查询'].range("A4:C5").delete()
    sht['2:2'].delete()		# 删除行
    sht[1:2, :].delete()            # 区域切片的方法
    sht['B:B'].delete()		# 删除列
    sht[:, 1:2].delete()
    sht['B2'].delete()		# 删除单元格 (缺省默认右侧左移'left',下侧上移'up')
    sht['C2:D4'].delete('up')	         # 删除区域sht[1:4, 2:4].delete('up')
    # 或者调用api
    sht.api.Rows(2).Delete() # 删除行
    sht.api.Columns(1).Delete() # 删除列
    

结束_end()

  1. 返回一个 Range 对象,该对象表示包含源范围的区域末尾的单元格。相当于按 Ctrl+Up、Ctrl+down、Ctrl+left 或 Ctrl+right
  2. 语法
    end(direction)
    
  3. 参数
    参数取值范围说明
    direction‘up’,‘down’,‘left’,‘right’上、下、左、右
  4. 示例
    wb.sheets['查询'].range("A4").end('up')
    lst=ws.range(“A1:A”+str(ws[“A1048576”].end(‘up’).row)).value #把excel单列值读取到列表中,str()是要把int转为string
    lst1=ws.range(“A1:C”+str(ws[“A1048576”].end(‘up’).row)).value # 把excel连续两个列的值读取到列表中lst=ws.range(“A1:A”+str(ws[“A1048576”].end(‘up’).row)).value #A列的值
    lst2=ws.range(“C1:C”+str(ws[“A1048576”].end(‘up’).row)).value#C列的值
    

展开_expand()

  1. 根据提供的模式扩展范围
  2. 忽略左上角的空单元格(与 Range.end()不同)
  3. 语法
    expand(mode='table')
    
  4. 参数
    参数取值范围说明
    modestr, 默认 ‘table’三选一:‘table’ (=down and right), ‘down’, ‘right’
  5. 示例
    print(sht.range("B3").expand().address)
    

获取地址_get_address()

  1. 以指定格式返回范围的地址
  2. address如果不需要更改任何默认值,则可以使用。
  3. 语法
    get_address(row_absolute=True, column_absolute=True, include_sheetname=False, external=False)
    
  4. 参数
    参数取值范围说明
    row_absolutebool , 默认 True设置为 True 行返回绝对引用
    column_absolutebool , 默认 True设置为 True 列返回绝对引用
    include_sheetnamebool , 默认 False设置为 True 以在地址中包含工作表名称。如果 external=True 则忽略
    externalbool , 默认 False设置为 True 以返回带有工作簿和工作表名称的外部引用
  5. 示例
    sht.range("C16").get_address(True, False, external=True)
    

插入_insert()

  1. 在工作表中插入一个单元格或单元格区域
  2. address如果不需要更改任何默认值,则可以使用。
  3. 语法
    insert(shift=None, copy_origin='format_from_left_or_above')
    
  4. 参数
    参数取值范围说明
    shiftstr , 默认 None设置为 True 行返回绝对引用
    copy_originstr , default format_from_left_or_above使用format_from_left_or_aboveor format_from_right_or_below
  5. 示例
    sht.range("C3").insert(shift=None, copy_origin='format_from_right_or_below')
    sht.api.Rows(3).Insert() # 在第3行插入空行
    sht['2:2'].insert()		# 插入行
    sht['B:B'].insert()		# 插入列
    sht['B2'].insert()		# 插入单元格 (缺省默认'down', 可选 'right')
    sht['B2:C3'].insert()	        # 插入区域
    # 或者调用api
    sht.api.Rows(1).Insert()    # 插入行
    sht.api.Rows('2:4').Insert()
    sht.api.Columns(1).Insert()  # 插入列
    sht.api.Columns('2:4').Insert()
    

合并_merge()

  1. 从指定的 Range 对象创建一个合并单元格
  2. 语法
    merge(across=False)
    
  3. 参数
    参数取值范围说明
    acrossbool , 默认 FalseTrue 表示取消合并
  4. 示例
    sht.range("C3:C5").merge(across=True)
    

偏移_offset()

  1. 返回一个 Range 对象
  2. 该对象表示从指定范围偏移的 Range
  3. 语法
    offset(row_offset=0, column_offset=0)
    
  4. 参数
    参数取值范围说明
    row_offsetint行偏移量
    column_offsetint列偏移量
  5. 示例
    print(sht.range("d1").offset(row_offset=1, column_offset=3).address)
    

粘贴_paste()

  1. 将剪贴板中的范围粘贴到指定范围内
  2. 语法
    paste(paste=None, operation=None, skip_blanks=False, transpose=False)
    
  3. 参数
    参数取值范围说明
    pastestr , 默认 None其中之一all_merging_conditional_formats, all, all_except_borders, all_using_source_theme, column_widths, comments, formats, formulas, formulas_and_number_formats, validation, values, values_and_number_formats
    operationstr , 默认 None“add”、“divide”、“multiply”、“subtract”之一
    skip_blanksbool , 默认 False设置True为跳过空白单元格
    transposebool , 默认 False设置为True转置行和列
  4. 示例
    sht.range("a2:d10").copy()
    sht.range("g2").paste()
    

调整大小_resize()

  1. 调整指定范围的大小,(左上角不变)
  2. 返回类型:range
  3. 语法
    resize(row_size=None, column_size=None)
    
  4. 参数
    参数取值范围说明
    row_sizeint > 0新范围内的行数(如果为 None,则范围内的行数不变) formulas_and_number_formats, validation, values, values_and_number_formats
    column_sizeint > 0新范围内的列数(如果为 None,则范围内的列数不变)
  5. 示例
    sht.range("a2:d10").resize(row_size=5, column_size=5)
    

选择_select()

  1. 选择范围。仅适用于活动工作薄
  2. 语法
    sht.range("a7:b10").select()
    
  3. 参数
    参数取值范围说明
    row_sizeint > 0新范围内的行数(如果为 None,则范围内的行数不变) formulas_and_number_formats, validation, values, values_and_number_formats
    column_sizeint > 0新范围内的列数(如果为 None,则范围内的列数不变)
  4. 示例
    sht.range("a2:d10").resize(row_size=5, column_size=5)
    

导出到PDF_to_pdf()

  1. 将范围导出为 PDF
  2. 语法
    to_pdf(path=None, layout=None, show=None, quality='standard')
    
  3. 参数
    参数取值范围说明
    pathstr或类似路径的对象,默认无您要存储 pdf 的路径。如果存储 Excel 文件,则默认为与 Excel 文件位于同一目录中的范围地址,否则为当前工作目录
    layoutstr或类似路径的对象,默认无此参数需要 xlwings PRO
    showbool , 默认 False创建后,使用默认应用程序打开 PDF 文件
    qualitystr, 默认 ‘standard’PDF 文件的质量。可以是’standard’或’minimum’
  4. 示例
    sht.range("a7:b10").to_pdf(path=None, layout=None, show=None, quality='standard')
    

导出到png图片_to_png()

  1. 将范围导出为 PNG 图片
  2. 提示需要安装Pillow库,但安装了也不行,不知道为什么
  3. 语法
    to_png(path=None)
    
  4. 参数
    参数取值范围说明
    pathstr或类似路径的对象,默认无你要存储图片的路径。如果存储 Excel 文件,则默认为与 Excel 文件位于同一目录中的范围名称,否则为当前工作目录
  5. 示例
    sht.range("a7:b10").to_png(path=None)
    

取消合并_unmerge()

  1. 将合并区域分隔为单个单元格。
  2. 示例
    sht.range("a7").unmerge()
    

RangeRows

  1. 表示范围的行,不要使用 Range.rows
  2. 示例
    rng = xw.Range('A1:C4')
    

RangeRows的引用

  1. 示例
    rng = xw.Range('A1:C4')
    rng.rows[0].value = 'a'
    for r in rng.rows:print(r.address)
    

RangeRows的属性

数量_count

  1. 返回行数
  2. 示例
    print(rng.count)
    

RangeRows的方法

自动行高_autofit

  1. 自动调整行的高度
  2. 示例
    rng.autofit()
    

RangeColumns

  1. 表示范围的列。不要直接使用Range.columns
  2. 示例
    rng = xw.Range('A1:C4')
    

RangeColumns的引用

  1. 示例
    rng = xw.Range('A1:C4')
    rng.rows[0].value = 'a'
    for c in rng.columns:print(c.address)
    

RangeColumns的属性

数量_count

  1. 返回列数
  2. 示例
    print(rng.count)
    

RangeColumns的方法

自动列宽_autofit

  1. 自动调整列的宽度
  2. 示例
    rng.autofit()
    

tables

  1. 指定工作表上所有table对象的集合
  2. 示例
    sht.tables
    

为指定工作表添加table

  1. 为指定的工作表创建一个table
  2. 返回类型:table
  3. 语法
    add(source=None, name=None, source_type=None, link_source=None, has_headers=True, destination=None, table_style_name='TableStyleMedium2')
    
  4. 参数
    参数取值范围说明
    sourcexlwings range , 默认 None一个 xlwings range 对象,表示数据源
    namestr , 默认 None表的名称。默认情况下,它使用 Excel 分配的自动生成名称
    source_typestr , 默认 None当前默认为xlSrcRange,即需要一个 xlwings 范围对象。目前不允许其他选项
    link_sourcebool , 默认 None目前没有实现,因为这只是在 is 的情况source_type下 xlSrcExternal
    has_headersbool或str ,默认 True指示正在导入的数据是否具有列标签。默认为 True. 可能的值:True, False,‘guess’
    destinationxlwings 范围,默认无source_type目前未实现,因为它 用于以防万一
    table_style_namestr , 默认 ‘TableStyleMedium2’可能的字符串:(‘TableStyleLightN’'其中 N 是 1-21)、 ‘TableStyleMediumN’(其中 N 是 1-28)、 ‘TableStyleDarkN’(其中 N 是 1-11)
  5. 示例
    sht = wb.sheets["sheet1"]
    bl = sht.tables.add(source = sht.range('A1:L23'), table_style_name='TableStyleMedium6')
    

table

table的引用

  1. 示例
    sht = xw.books['Book1'].sheets[0]
    sht.tables[0]  # 序号引用
    sht.tables['TableName'] # 名称引用
    

table的属性

引擎_api

  1. 返回正在使用的引擎的本机对象(pywin32或appscriptobj)
  2. 示例
    print(sht.tables[0].api)
    

数据体范围_data_body_range

  1. 返回一个表示值范围的 xlwings 范围对象,不包括标题行
  2. 示例
    print(sht.tables[0].data_body_range)
    

显示名称_display_name

  1. 返回或设置指定 Table 对象的显示名称
  2. 示例
    sht.tables[0].display_name = '表1'
    

标题行范围_header_row_range

  1. 返回表示标题行范围的 xlwings 范围对象
  2. 示例
    sht.tables[0].header_row_range
    

插入行范围_insert_row_range

  1. 返回一个 xlwings 范围对象,表示将要插入数据的行。这仅适用于空表,否则将返回 None
  2. 示例
    sht.tables[0].insert_row_range
    

标题行范围_name

  1. 返回或设置表的名称
  2. 示例
    sht.tables[0].name
    

父级表_parent

  1. 返回表的父级
  2. 示例
    sht.tables[0].parent
    

范围_range

  1. 返回表的 xlwings 范围对象
  2. 示例
    sht.tables[0].range
    

自动过滤_show_autofilter

  1. 打开或关闭自动过滤器
  2. 示例
    sht.tables[0].show_autofilter = False
    

显示或隐藏标题_show_headers

  1. 显示或隐藏标题
  2. 示例
    sht.tables[0].show_headers = False
    

显示表格样式_show_table_style_column_stripes

  1. 没看出区别
  2. 示例
    sht.tables[0].show_table_style_column_stripes = True
    

首列格式化_show_table_style_first_column

  1. 返回表的 xlwings 范围对象
  2. 示例
    sht.tables[0].show_table_style_first_column = False
    

显示最后一列_show_table_style_last_column

  1. 显示最后一列
  2. 示例
    sht.tables[0].range
    

显示行的样式_show_table_style_row_stripes

  1. 显示行的样式
  2. 默认是显示的
  3. 示例
    sht.tables[0].show_table_style_row_stripes = True
    

显示汇总行_show_totals

  1. 相当于在table的设计标签勾选’汇总行’
  2. 示例
    sht.tables[0].show_totals = True
    

表样式_table_style

  1. 获取或设置表格样式
  2. 取值范围参考Tables.add中的表样式
  3. 示例
    sht.tables[0].table_style = 'TableStyleMedium28'
    

表示 Total 行的 xlwings 范围对象_totals_row_range

  1. 返回表示 Total 行的 xlwings 范围对象
  2. 需要在tabel的设计标签勾选’汇总行’,否则显示None
  3. 示例
    sht.tables[0].totals_row_range
    

table的方法

调整大小_ resize()

  1. 通过提供 xlwings 范围对象来调整表的大小
  2. 语法
    resize(range)
    
  3. 示例
    sht = wb.sheets["sheet1"]
    sht.tables[0].resize(sht.range('a1:d5'))
    

更新_update()

  1. 使用提供的数据更新 Excel 表,目前仅限于 DataFrames
  2. 语法
    update(data, index=True)
    
  3. 参数
    参数取值范围说明
    datapandas DataFrame目前仅限于 pandas DataFrames
    indexbool , default True是否应将 pandas DataFrame 的索引写入 Excel 表
  4. 示例
    import xlwings as xw
    import pandas as pd
    from pathlib import Path
    app = xw.App(visible=True,add_book=False)
    excel_file_test = Path("D:\\test.xlsx")
    excel_file_test = app.books.open(excel_file_test,update_links = False)
    sht = xw.sheets.active# DataFrame 数据
    nrows, ncols = 3, 3
    df = pd.DataFrame(data=nrows * [ncols * ['test']],columns=['col ' + str(i) for i in range(ncols)])df = df.set_index('col 0')
    sht.tables[0].update(df)
    

字体_Font

字体的引用

  1. 字体对象可以作为范围或形状对象的属性来访问
  2. 示例
    mysheet['A1'].font
    mysheet.shapes[0].font
    

字体的属性

引擎_api

  1. 返回正在使用的引擎的本机对象(pywin32或appscriptobj)
  2. 示例
    print(sht['A1'].font.api)
    

粗体_bold

  1. 返回或设置粗体属性
  2. 示例
    sht['A2'].font.bold = True
    

颜色_color

  1. 返回或设置颜色属性(元组)
  2. 示例
    sht['A2'].font.color = (255, 0, 0)
    

斜体_italic

  1. 回或设置斜体属性
  2. 示例
    sht['A2'].font.italic = True
    

字体名称_name

  1. 返回或设置字体的名称
  2. 示例
    print(sht['A2'].font.name)
    

字体大小_size

  1. 返回或设置大小(浮点数)
  2. 示例
    sht['A2'].font.size = 21.5
    

转换器和选项

转换器

  1. 语法
    xw.Range.options(convert=None, **kwargs).value
    
  2. 参数
    参数取值范围说明
    convert
    **kwargs可以指定特定转换器或默认转换器

内置转换器

  1. xlwings 提供了几个内置转换器,可以将类型转换为字典、NumPy 数组、 Pandas Series和DataFrames

字典转换器,将两个 Excel 列转换为字典

  1. 示例
    sht.range('A1:B2').options(dict).value # 数据是列方向
    sht.range('A4:B5').options(dict, transpose=True).value # 数据是行方向
    

Numpy 数组转换器

  1. 语法
    dtype=None, copy=True, order=None, ndim=None
    
  2. 解释
    1. 前 3 个选项的行为与直接使用时相同np.array()
    2. ndim对于列表(在默认转换器下)的工作方式与上面显示的相同,因此返回 numpy 标量、一维数组或二维数组
  3. 示例
    sht.range('A1').options(transpose=True).value = np.array([8, 2, 3]) # 一维数据
    sht.range('A1:A3').options(np.array, ndim=2).value # 二维数据
    

Pandas 系列转换器

  1. 语法
    dtype=None, copy=False, index=1, header=True
    
  2. 选项
    选项聚会范围说明
    dtype=None选项的行为与直接使用时相同
    copy=False选项的行为与直接使用时相同
    index整数或布尔值读取时,它需要 Excel 中显示的索引列数;编写时,通过将索引设置为True或来包含或排除索引False
    header布尔值阅读时,False如果 Excel 不显示索引或系列名称,请将其设置为;编写时,通过将其设置为True或来包含或排除索引和系列名称False
  3. 示例
    sht.range('A1').options(pd.Series, expand='table').value
    

Pandas DataFrame 转换器

  1. 语法
    dtype=None, copy=False, index=1, header=1
    
  2. 选项
    选项聚会范围说明
    dtype=None选项的行为与直接使用时相同
    copy=False选项的行为与直接使用时相同
    index整数或布尔值读取时,它需要 Excel 中显示的索引列数;编写时,通过将索引设置为True或来包含或排除索引False
    header布尔值读取时,它需要 Excel 中显示的列标题数;编写时,通过将其设置为True或来包含或排除索引和系列名称False
  3. 示例
    df = sht.range('A1:D5').options(pd.DataFrame, header=2).value
    

转换器示例

读取单元格的数字为int格式(再转换成str)

  1. 默认情况下,带有数字的单元格被读取为float
  2. 可以修改为读取成int格式
  3. 测试不能改成str读取成字符串格式,只能读取成int再转换成str
  4. 示例
    sht.range('A1').options(numbers=int).value
    

将list写入列

  1. 示例
    sht.range('A1').options(transpose=True).value = [1, 2, 3]
    

常见问题

在pycharm中提示没有App()方法

  1. 在pycharm中提示没有App()方法,但在IDE和jupyter中没有问题,不知道什么原因

在excel中增加xlwings标签功能

xlwings addin install

将单元格的格式改为文本类型

sht.range('a3').api.NumberFormat = "@"

页面设置

相关内容

热门资讯

《庄子》记佝偻承蜩的故事和解释 《庄子》记佝偻承蜩的故事和解释原文 仲尼适楚,出于林中,见佝偻者承蜩,犹掇之也。仲尼曰:“子巧乎!有...
幼儿园托班教室墙面布置幼儿园托... 幼儿园托班教室墙面布置幼儿园托班教室的布置幼儿园教室是许多孩子家长关注的重点之一。然后,幼儿园教室的...
比红薯山药更养人,夏天建议多给... 夏天没胃口,可以试试这锅甜滋滋的南瓜红枣饭。 南瓜堪称“平价养生宝”,全身都是宝: 低卡高纤维:每1...
诗词中的经典意象 诗词中的经典意象要有例句绿水原无忧,因风皱面。青山本不老,为雪白头。松柏:坚贞不屈,高洁莲:与“怜”...
亿万老婆买一送一主角是谁 亿万老婆买一送一主角是谁刚开始是叶三一家 后来是叶薇,十一,和墨家两兄弟以及容颜和楚离,对了后来还...
怎么写软文 怎么写软文多看书,多看报,多看小说多看动漫,多看电视节目(相关),最重要的一点——多写!根据人的心理...
韶关北江监狱大概有多少个人 韶关北江监狱大概有多少个人 大概有七千五百人。韶关北江监狱有十五个监区,按照规定,监狱的监区可按...
红袖添香网上面的短篇小说和长篇... 红袖添香网上面的短篇小说和长篇小说的字数要求是什么呢?请说的详细一点,谢谢。还有,在红袖上发表小说好...
教育学原理的同学们吗 教育学原理的同学们吗1、现在恐怕晚了,大部分学校已经完成一次调剂筛选工作了,但也可能有机会,够了二区...
李乐衡爸爸是谁 李乐衡爸爸是谁 李乐衡爸爸是张建新。李乐衡是《武林外传》中邱小冬的扮演者,他是著名演员张建新的儿...
女主姓凤,女尊紫眸有风,火,木... 女主姓凤,女尊紫眸有风,火,木三星种异能特工傻后、女主天下、绝代凤华、倾世皇妃、歌尽桃花
盗墓笔记电视剧出藏海花了吗 盗墓笔记电视剧出藏海花了吗没有吧,只有沙海和盗墓笔记。没有 藏海花很久很久之前断更了 恐怕不会被拍成...
苏柏斗的介绍 苏柏斗的介绍 苏柏斗,生于1971年,1997年毕业于解放军艺术学院美术系;2008年毕业于中国艺术...
一切法无我。得成于忍。不取于相... 一切法无我。得成于忍。不取于相。如如不动。是什么意思?你若不动,别人也动。一切皆空,存在是一种相,色...
男人会在夜晚想念暗恋的人吗? 男人会在夜晚想念暗恋的人吗?当然会啦,如果喜欢一个人的话日思梦想都会有的,有时候睡不着吃不下饭,满脑...
推理(墓地死者) 推理(墓地死者)有个人 接到一封信 信上让他半夜12点去 墓地 结果 那个人去了墓地,第2天就死在墓...
十诫诗在仓央嘉措的哪本书里 十诫诗在仓央嘉措的哪本书里不能说是仓央嘉措的哪本书,这本来是藏文,被宇道泉译成中文后才成诗,而且所谓...
失眠是怎么回事 失眠是怎么回事我周岁12岁,刚上初一,累了一天后,为什么睡着后在床上反过来折过去的翻身还老是醒睡眠的...
慕容复要复哪个燕国 慕容复要复哪个燕国 慕容复要复东晋时我国北方出现的多个燕国其中一个。慕容氏是鲜卑姓氏,而鲜卑人是...
誓约用英语怎么说 誓约用英语怎么说誓约用英语怎么说promise1.a vow; a pledge; an oath;...