0
点赞
收藏
分享

微信扫一扫

python-xlwings基础操作

木匠0819 2023-10-17 阅读 45
  • 基本操作

创建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()

举报

相关推荐

0 条评论