18-09-20 关于Xlwings读写基础1

一 利用xlwings 读取Excel 的读取修改数据 

import xlwings as xw
"""
# 1. 读一个已存在的Excel文件:利用xlwings 读取Excel中的一个单元格 并且修改
app=xw.App(visible=False,add_book=False)
app.display_alerts=False
app.screen_updating=False
filepath=r'e:111.xlsx'
wb=app.books.open(filepath) #读取某个目录文件
print(wb.sheets["小花猫"].range('b4').value) #通过已知的sheet 名字,和表格(行字母+列数字)去读取读取Excel的数据
 1查看一个单元格的数据
# print(wb.sheets["小花猫"].range('b4').value) #读取Exceld单元格的数据

# 2按照sheet增加或修改一个单元格的数据
# wb.sheets['小花猫'].range('b4').value='天道酬勤11' #修改数据

# 3增加一个sheet
# wb.sheets.add()???

# 4 激活指定的表格,指定表格位置或表格名称
# sht = wb.sheets
# wb.sheets[0].activate() #索引
# wb.sheets["我的sheet2"].activate() #名称
# 查看激活的表格
# print(sht.active)

# 5 查看当前表格名称
# print(sht[1].name)
print(22)

# 6 删除当前表格(前提必须先激活才行)
# sht[1].delete()

# 7 查看当前激活的表格,有无返回值????
# sht[0].select()

# 8 取值
# sht = wb.sheets["Sheet1"]
# A2_A5 = sht["A2:b5"] # 截取A2到A5 的数据数组的形式
# print(A2_A5.value)
wb.save()
wb.close()
app.quit()

# ===============================================
# 2.新建Excel 并写入一些数据区别于Xlwt
import xlwings as xw
app=xw.App(visible=True,add_book=False)
wb=app.books.add()
# wb就是新建的工作簿(workbook),下面则对wb的sheet1的A1单元格赋值
wb.sheets['sheet1'].range('A8').value='Hello'
wb.sheets[0].range(8,2).value='World!'
wb.save(r'E:11.xlsx')
wb.close()
app.quit()

3.单元格的多种引用方式

1按照sheet引用方式
#3-1 获取A1单元格
rng=sht[’A1']
#3-2 获取A1:B5单元格
rng=sht['A1:B5']
# 在第i+1行,第j+1列的单元格
#3-3 B1单元格
rng=sht[0,1]
#3-4 A1:J10????? #索引取值
rng=sht[:10,:10]

2按照range 索引引用方式
# 可以用表示行列的tuple进行引用
#3-5 A1单元格的引用
xw.Range(1,1)
#3-6 A1:C3单元格的引用
xw.Range((1,1),(3,3)
"""
# 3 对Excel数据的写操作
import xlwings as xw
app=xw.App(visible=False,add_book=False)
app.display_alerts=False
app.screen_updating=False
filepath=r'E:11.xlsx'
wb=app.books.open(filepath)
sht = wb.sheets[0]

#3-1要求写入A1 到 E1 的数据 整行的数据
# sht.range("A1").value= [1,2,3,4,5]

#3-2要求写入A2 到 A6的数据 整列的数据
sht.range("A2").options(transpose=True).value= [1,2,3,4,5]

# 3-3将2x2表格,即二维数组,储存在A1:B2中,如第一行1,2,第二行3,4
sht.range('B1').options(expand='table').value=[[1,2],[3,4]]

# 3-4将单元格 A1的值,读取到a变量中
a=sht.range('A1').value
# print(a)

# 3-5 读取整列的值 成为一个列表将A1到A3的值,读取到a列表中
b=sht.range('A1:A3').value #[1.0, 1.0, 2.0]
# print(b)

# 3-6 将第一行和第二行的数据按二维数组的方式读取
d=sht.range('B1:C2').value #[[1.0, 2.0], [3.0, 4.0]]
# print(d)



wb.save()
wb.close()
print("完成")
app.quit()

原文地址:https://www.cnblogs.com/xiaoluoboer/p/9682284.html