xlwings的介绍
- xlwings是python的一个第三方库,使用python调用它可以进行excel的操作,使我们的工作效率大大提高,虽然使用vba也是可以的,但却没有xlwings灵活,vba中的库也没有xlwings多。
- xlwings能够方便的读写excel文件中的数据,并且能够进行单元格格式的修改。
xlwings的基本操作
建立excel表的连接
wb=xw.Book('./datas/薪资表.xlsx')
获取工作表更改数据
import xlwings as xw
wb=xw.Book('./datas/薪资表.xlsx')
sht = wb.sheets["sheet1"]
print(sht.range("A1").value)
sht.range("A1").value=sht.range("A1").value+'00'
sht.range("B6:E10").value
listvalue=['张三','男','35','销售部']
sht.range("B6:E6").value=listvalue
保存工作簿,并关闭工作表
wb.save('./datas/薪资表.xlsx')
wb.close()
xw.App使用
通过App方法修改原工作表
import xlwings as xw
app = xw.App(visible=True, add_book=False)
workbook = app.books.open(r".\薪资表.xlsx")
sht = workbook.sheets["sheet1"]
newvalue = sht.range("B6:E10").value
listvalue = ['小张2', '男1', 29, '销售部经理']
sht.range("B6:E6").value = listvalue
workbook.save()
workbook.close()
app.quit()
在原工作簿中添加新表格
import xlwings as xw
app = xw.App(visible=True, add_book=False)
workbook = app.books.open(r'./薪资表.xlsx')
sht = workbook.sheets['sheet1']
new_sht = workbook.sheets.add("奖金01")
new_sht.range('A1').value = "奖金职工"
for m in workbook.sheets:
if m.name == "奖金":
m.range("A1").value = "奖金10000"
print(workbook.sheets[0])
workbook.save()
workbook.close()
app.quit()
Xlwings的应用
使用xlwings从工作簿中获取数据并保存在新生成的sheet中
- 思路分析:使用xlwings筛选数据一般要使用以下不揍
- 创建实例应用
- 打开工作簿
- 创建工作表
- 帅选并添加数据
- 保存数据
import xlwings as xw
app = xw.App(visible=True, add_book=False)
wb = app.books.open(r"./华为奖励表.xlsx")
sheets_list = wb.sheets
pat = input('请输入省份名称')
sht_excel = wb.sheets.add(pat)
range_value_list = []
def Add_excel(excel):
for i in range(2, 100):
str_sheet = "E" + str(i)
global str_sheet1
str_sheet1 = "A" + str(i) + ":" + "E" + str(i)
str_value_sheet = excel.range(str_sheet).value
if str_value_sheet == pat:
str_value_row = excel.range(str_sheet1).value
range_value_list.append(str_value_row)
for excel in sheets_list:
Add_excel(excel)
m = 2
for i in range_value_list:
str_sheet1 = "A" + str(m) + ":" + "E" + str(m)
sht_excel.range(str_sheet1).value = i
m += 1
wb.save(r"./华为奖励表.xlsx")
wb.close()
app.quit()