import openpyxl
wb = openpyxl.Workbook()
wb.create_sheet('Mysheet')
ws1 = wb['Mysheet']
#坐标直接赋值法
ws1["A1"] = 100
# cell()方法参数赋值
ws1.cell(row=2,column=2,value='hello')
# 批量写入数据
# 方法1:append逐行增加
wb.create_sheet('产品销量')
ws2 = wb['产品销量']
data_rows = [
["产品","销量","单价"],
["A001",245,90],
["A002",3000,20],
]
for row in data_rows:
ws2.append(row)
# 方法2:for循环区域赋值
wb.create_sheet('for循环')
ws3 = wb['for循环']
def writeInExcelAres(value,row_num,col_num): # row_num 起始行,col_num 起始列
for i in range(0,len(value)):
for j in range(0,len(value[i])):
ws3.cell(row=i + row_num,column = j + col_num,value=str(value[i][j]))
writeInExcelAres(data_rows,1,2)
# 如果数据是列表包裹字典
data = [
{'产品':"A001","销量":2,"单价":1000},
{'产品':"A002","销量":3,"单价":3000},
{'产品':"A004","销量":8,"单价":240},
{'产品':"A006","销量":10,"单价":299},
]
wb.create_sheet('L_d')
ws4 = wb['L_d']
# 写入标题行
header = list(data[0].keys())
ws4.append(header)
# 写入行数据
for row in data:
ws4.append(list(row.values()))
wb.save('xiaoshou.xlsx')