首页 > 编程语言 >python利用openpyxl处理excel(应用案例一)

python利用openpyxl处理excel(应用案例一)

时间:2024-10-31 23:33:53浏览次数:1  
标签:openpyxl python fields excel second ws first col wb

一前言

环境:win10 python3.8

二 应用案例

image

如上要实现这样一张表格

1分析

  • 不能去指定在某个位置去插入某个字段,如在a1去插入商品,a2去插入类型。不能这样做,给出字段后,要自动挨个插入

  • 2 如一级字段批次信息要与它下面的二级字段相对应,二级字段占据了三列,一级字段也要占3列,且要合并

2 代码

from openpyxl import Workbook,load_workbook
from openpyxl.styles import Alignment
from loguru import logger

def new_workbook():
    wb = Workbook()
    return  wb

def new_worksheet(wb, name):
    ws = wb.create_sheet(name)
    return ws

def get_workbook(file):
    # 根据文件名读取一个excel文件
    wb = load_workbook(file)
    return wb

def get_worksheet(wb,name):
    #根据name获取一个worksheet
    ws = wb[name]
    return ws
    
def save_excel(wb,file):
    # 保存修改的内容到文件
    wb.save(file)

# 插入一级字段和二级字段
def write_fields_to_excel(ws,first_fields,second_fields):
    col = 1		#起始列的位置
    for first_field in first_fields:
	#依次挨个插入一级标题
        ws.cell(row=1,column=col,value=first_field)
		
	#一级标题下面有二级标题
        if first_field not in second_fields:   
            col += 1
        else:
            current_second_fields = second_fields[first_field]
            if current_second_fields:
                    current_second_fields_num = len(current_second_fields)
		   #按照二级标题的数量来合并对应的一级标题
                    ws.merge_cells(start_row=1,start_column=col, end_row=1, end_column=col+current_second_fields_num-1)
		    #二级标题所在的起始列
                    second_field_col = col
                    for second_filed in current_second_fields:
			#插入二级标题
                        ws.cell(row=2,column=second_field_col, value=second_filed)
                        second_field_col += 1
		   #依照二级标题所占列的数量来确定下一个一级标题的起始列位置
                    col += current_second_fields_num

执行

wb = new_workbook()
ws  = new_worksheet(wb,'test')

first_fields = ['商品名','商品类型','批次信息','规格',]
second_fields = {'批次信息':['批次','价格','日期'],'规格':['规格号','质量信息']}
write_fields_to_excel(ws,first_fields,second_fields)
save_excel(wb,'test.xlsx')

标签:openpyxl,python,fields,excel,second,ws,first,col,wb
From: https://www.cnblogs.com/MyRecords/p/18519149

相关文章

  • python+flask计算机毕业设计骨科门诊患者档案管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于骨科门诊患者档案管理系统的研究,现有研究主要集中在综合性医院患者档案管理方面,专门针对骨科门诊患者档案管理的研究较少。在国内......
  • 每日python小白:如何打印九九乘法表?
    一、代码展示以防各位心急,咱先搬上来代码:代码一:初级版foriinrange(1,10):forjinrange(1,10):print("%d*%d=%d"%(i,j,i*j),end="")print()效果:代码二:完整版foriinrange(1,10):forjinrange(1,i+1):print("%d*%d=%d"......
  • 【深度学习】从公式推导来深入理解误差反向传播算法2:《深度学习入门基于Python的理论
    《深度学习入门基于Python的理论与实现》中实现了2层全连接神经网络的代码对MNIST数据集的28x28像素0-9手写数字灰度图像进行分类,本文将重点对代码中的two_layer_net类的gradient函数中的误差反向传播的代码进行公式推导验证。验证小批量数据的交叉熵损失函数对第2层权重......
  • 学习python第十天
    今天学习了闭包,语法糖(列表推导式),装饰器,迭代器,生成器相关笔记如下'''知识点:1.闭包2.语法糖(列表推导式)3.装饰器4.迭代器5.生成器'''#高阶函数#deffunc(a):#res=a()#func2()#print(a())##deffunc2():#return"python"#......
  • python的基本数据类型有哪些
    摘要:PYTHON的基本数据类型主要包括:1、数字类型2、字符串类型3、列表类型4、元组类型5、集合类型6、字典类型。数字类型是最常见的数据类型,涉及整数、浮点数、复数等。数字类型在数据科学、机器学习等领域尤为重要,其包含了整形(Int)、浮点型(Float)和复数(Complex)等子类型。它们分......
  • Python基于TensorFlow实现卷积神经网络-双向长短时记忆循环神经网络加注意力机制回归
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后关注获取。1.项目背景随着大数据时代的到来,对复杂数据结构的理解和预测成为许多领域的重要课题。在这些领域中,无论是视频分析、语音识别还是自然语言处理,都面临着需......
  • Python常用数据结构
    1.列表(List)列表是Python中最灵活的数据结构之一,像个能装万物的大箱子。你可以把任何类型的对象放进来,甚至可以把列表放进列表里,真是个魔法箱!功能特性:可变:你可以随时增加、删除、修改列表中的元素。有序:元素按插入顺序排列创建和基本操作:#创建一个空列表my_list=[]......
  • 华为OD机试-(E卷,100分) - 补种未成活胡杨(Java & Python& JS & C++ & C )
    最新华为OD机试题目描述近些年来,我国防沙治沙取得显著成果。某沙漠新种植N棵胡杨(编号1-N),排成一排。一个月后,有M棵胡杨未能成活。现可补种胡杨K棵,请问如何补种(只能补种,不能新种),可以得到最多的连续胡杨树?输入描述N总种植数量,1<=N<=100000M未成活胡杨数量,M个空格......
  • 洛谷Python顺序结构题解合集
    P5705【深基2.例7】数字反转a=s[0]b=s[1]c=s[2]d=s[4]print(f"{d}.{c}{b}{a}")P5706【深基2.例8】再分肥宅水ans=float(a[0])/int(a[1])beizi=2*int(a[1])print(f"{ans:.3f}\n{beizi}")P5708【深基2.习2】三角形面积p=0.5*(a+b+c)ans=pow((p*(p-a)*(p-b)*(p-c)),0.5......
  • 基于Python+Vue开发的美容预约管理系统
    项目简介该项目是基于Python+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的美容诊所预约管理系统项目,大学生可以在实践中学习和......