xlwings是一个BSD许可Python库,可以很容易地从Excel调用Python
参考链接:https://www.jianshu.com/p/e21894fc5501
demo
import time
import xlwings as xw
data = {
'sheet1': [{
'3_18': 2004302.0
}, {
'10_18': 2004406.0
}],
'sheet2': [{
'3_10': 20.0
}, {
'7_10': 60.0
}, {
'10_10': 100.0
}],
'sheet3': [{
'3_10': 'jingyugushan'
}, {
'4_10': 'baguaqiankundao'
}]
}
# app = xw.App(visible=True, add_book=False)
# # 文件位置:filepath,新建test文档,然后保存,关闭,结束程序
# filepath = r'xlwings_test.xlsx'
# wb = app.books.add()
# wb.sheets['paybiggift'].range('A1').value = 'hello xlwings'
# wb.save(filepath)
# time.sleep(8)
# wb.close()
# app.quit()
# 作者:早起收果子
# 链接:https://www.jianshu.com/p/e21894fc5501
# 来源:简书
# 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
# app = xw.App(visible=True, add_book=True)
# app.display_alerts = False
# app.screen_updating = False
# 对于单元格也可以用表示行列的tuple进行引用
# A1单元格的引用
# xw.Range(1, 1)
# A1:C3单元格的引用
# xw.Range((1, 1), (3, 3))
# sht=xw.books['名字'].sheets['名字']
# 在第i+1行,第j+1列的单元格
# B1单元格
# rng=sht[0,1]
def rewrite_excel(data):
app = xw.App(visible=True, add_book=True)
filepath = r'test2.xlsx'
wb = app.books.open(filepath)
for k, v in data.items():
sht = wb.sheets[k]
for m in v:
for o, p in m.items():
o2 = o.split('_')
x = int(o2[0])
y = int(o2[1])
sht[x, y].value = p
sht[x, y].color = (205, 67, 67)
time.sleep(4)
wb.save()
wb.close()
app.quit()
## 运行前确认test2.xlsx中存在sheet1,sheet2,sheet3
rewrite_excel(data)