- 基本操作
创建app |
app = xw.App(visible=True,add_book=False) |
visibe:是否显示操作 add_book:是否新增sheet页 |
打开文件 |
wb = app.books.open(file_path) |
|
打开sheet表 |
sht = wb.sheets[0] |
|
写入 |
sht.range('a1').value = 'Hello!' # 单个单元格写入 sht.range('a1').value = ["a","b","c","d","e"] # 从a1开始多个单元格写入 sht.range('a1:d1').value = ["a1","b1","c1","d1"] # 范围写入 sht.used_range # 读取行数 sht.range('a1').options(transpose=True).value = [1,2,3,4,5] # 按列写入,竖着写入 sht.range('a1').expand('table').options(transpose=True).value = [[1,2,3],[4,5,6],[7,8,9]] # 写入一个表格,transpose表示按行写入 |
options(transpose=True) 竖着写入 expand('table') 写入一个表格(比如列表嵌套) |
读取 |
sht.range('a1').value # 读取单个单元格 sht.range('a1:d2').value # 范围读取 rng = sht.range('a1').expand('table') # 获取列的范围 nrows = rng.rows.count # 根据范围获取列有多少个元素 data = sht.range(f'a1:a{nrows}').value # 读取一列数据 all_data = sht.range((1,1),(sht.used_range.shape)).value # 读取单个sheet中的所有数据,(sht.used_range.shape)获取sheet表中的行列数 |
|
单元格格式 |
sht.autofit() # 自动调整单元格大小。注:此方法是在单元格写入内容后,再使用,才有效。 sht.range('A1').columns.autofit() # 列宽自适应 sht.range('A1').rows.autofit() # 行高自适应 |
|
保存 |
wb.save(excel_path) |
|
关闭books |
wb.close() |
|
关闭app |
app.quit() |
例子:
读取excel表中的第一个sheet内容
import xlwings as xw
file_path = "test.xlsx"
app = xw.App(visible=True, add_book=False)
wb = app.books.open(file_path)
sht = wb.sheets[0]
all_data = sht.range((1,1),(sht.used_range.shape)).value
wb.close()
app.quit()