安装 xlwings 模块
pip install xlwings -i https://pypi.tuna.tsinghua.edu.cn/simple
Excel应用相关方法
app = xlwings.App(visible=True,add_book=False)
:` 运行excel应用,打开空白工作簿;参数visible表示处理过程是否可视,add_book表示是否打开新的工作簿
工作簿相关方法
wb = xlwings.Book( 'path' )
: 打开已存在Excel文件wb = app.books.add()
: 新建工作簿。wb = app.books('path')
: 打开现有的工作簿wb = app.books.open(r'file_path')
: 打开现有的工作簿wb = app.books.active
: 获取当前活动的工作簿wb.save( 'path' )
: 保存工作簿;path参数可选,可配合add方法为新建Excel命名wb.activate(steal_focus=True)
: steal_focus=True,
则把窗口显示到最上层,并且把焦点从Python切换到Excelwb.close()
: 关闭工作簿wb.fullname
:获取工作簿的绝度路径
工作表相关方法
ws = wb.sheets['SheetName']
: 根据工作表名称获取工作表对象ws = wb.sheets[0]
: 根据工作表索引获取工作表对象ws = wb.sheets.add('test',after='sheet2')
: 新建工作表,参数1为工作表名称,参数2为插入位置,可选before或者after,示例中的代码表示插入到sheet2之后ws.clear()
: 清除工作表所有内容和格式ws.clear_contents()
: 清除工作表的所有内容但是保留原有格式ws.delete()
: 删除工作表
单元格相关方法
单元格对象获取方法
ws.range( 'B1' )
: 获取单元格对象ws[ B1 ]
: 获取单元格对象ws[1, 1]
: 此方法通过行列获取单元格对象, 行列从 0 开始ws.range( 1, 1 )
: 此方法通过行列获取单元格对象, 行列从 1 开始ws.range( 'A1:B2' )
: 获取单元格对象ws.range( (1,1), (2,2) )
: 获取单元格对象ws.range('a6').expand('table').value = [['a','b','c'],['d','e','f'],['g','h','i']]
: 获取该单元格(含)右侧和下侧所有对象
单元格属性相关方法
ws.range('B1').value
: 获取/设置 单元格 值ws.range('a1:c4').options(ndim=2).value
: option=2 ,可选参数,表示以二维列表形式返回数据ws.range((1,1),(4,3)).options(ndim=2).value
: 和上面读取的内容一样。ws.range('A1').row_height
: 获取单元格的行高ws.range('A1').column_width
: 获取单元格的列宽ws.range('A1').row
: 获取单元格的行号ws.range('A1').column
: 获取单元格的列号ws.range('A1').clear()
: 清除单元格内容和格式
单元格样式相关方法
ws.autofit()
: 自动调整单元格大小。注:此方法是在单元格**写入内容后,**再使用,才有效。ws.range(1,4).column_width = 5
: 设置第4列 列宽。(1,4)为第1行第4列的单元格ws.range(1,4).row_height = 20
: 设置第1行 行高ws.range('A1').color = (34,139,34)
: 设置/获取 单元格颜色,RGB值; ws.range('A1').color = None
,清除单元格颜色cell.api.Font.ColorIndex = 3
: 设置字体的颜色,cell.api.Font.Size = 24
: 设置字体的大小cell.api.Font.Bold = True
: 设置为粗体cell.api.HorizontalAlignment = -4108
: 水平对齐格式-4108 水平居中。 -4131 靠左,-4152 靠右。cell.api.VerticalAlignment = -4130
: 垂直对齐格式-4108 垂直居中(默认)。 -4160 靠上,-4107 靠下, -4130 自动换行对齐。cell.api.NumberFormat = "0.00"
: 设置单元格的数字格式ws.range('C8:D8').api.merge()
: 合并单元格 C8 到 D8ws.range('C8:D8').api.unmerge()
: 拆分单元格。ws.autofit('c')
: 整个工作表自动调整行高列宽; 行自适应,用 rows 或 r; 列自适应,用 columns 或 c;同时做行和列的自适应,不需要参数。ws.range('A1').columns.autofit()
: 列宽自适应ws.range('A1').rows.autofit()
: 行高自适应
插入/删除 行列相关方法
ws.range('a3').api.EntireRow.Delete()
: 会删除 ’a3‘ 单元格所在的行ws.api.Rows(3).Insert()
: 会在第3行插入一行,原来的第3行下移ws.range('c2').api.EntireColumn.Delete()
: 会删除 ’c2‘ 单元格所在的列ws.api.Columns(3).Insert()
: 会在第3列插入一列,原来的第3列右移。(也可以用列的字母表示)