18-09-20 關於Xlwings讀寫基礎1
阿新 • • 發佈:2018-11-05
一 利用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的資料
wb.sheets['小花貓'].range('b4').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()