【openpyxl】写入excel数据

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')
posted @ 2026-08-15 11:31  Tony_xiao  阅读(16)  评论(0)    收藏  举报