【学习】:Python合并多个Excel到一个Excel

2023-12-13 11:14:52

最近尝试了一下基于Python脚本来合并Excel的表格;
下面是相关代码:
📢注意:需要安装openpyxl插件

import os
import openpyxl
from openpyxl.styles import Font,Alignment
from openpyxl import Workbook,load_workbook

# 需要安装openpyxl插件
# pip install openpyxl
# 出现下面错误:
# Requirement already satisfied: openpyxl in /opt/anaconda3/lib/python3.9/site-packages (3.0.10)
# 解决方式下面脚本:
# pip install --target=/opt/anaconda3/lib/python3.9/site-packages openpyxl


#----------------------------------------------------------#
#--------------------------代码开始--------------------------#
# 定义data暂存数据
data = []


#遍历文件夹中的所有文件,这里路径修改为各自系统的路径,windows是反斜线方式:Desktop\merge
for i in os.listdir(r'/python表格合并'):
    #判断文件名是否以'.xlsx'结尾
    if i.endswith('.xlsx'):
        #读取文件路径,这里路径修改为各自系统的路径,windows是反斜线方式:Desktop\merge
        wb = load_workbook(r'/python表格合并/'+i)
        info = wb['Sheet1']
        #获取行数
        rows = info.max_row
        #按照行数循环读取数据(减去两行标题)
        for row in range(rows-2):
            # 按行读取每个字段中的值
            A = info.cell(3+row,1).value
            B = info.cell(3+row,2).value
            C = info.cell(3+row,3).value
            D = info.cell(3+row,4).value
            E = info.cell(3+row,5).value
            F = info.cell(3+row,6).value
            #判断是否整行都是空值
            if A and B and C and D and E and F != None:
                # 将读取的值以列表形式保存
                list = [A,B,C,D,E,F]
                # 将列表list写入data中
                data.append(list)
            else:
                continue
    else: 
        continue



#新建excel
wb = Workbook()
#新建sheet表
sheet = wb.active

#merge_cells()函数合并单元格
sheet.merge_cells('A1:F1')
#确定写入位置
title = sheet.cell(1,1)
#确定写入内容
title.value = '销售订单信息登记表'
#字体为粗体的设置
font = Font(bold=True)
#字体位置水平居中、垂直居中的设置
alignment = Alignment(horizontal='center',vertical='center')

#将变量title变为粗体
title.font = font
#将变量title水平、垂直居中
title.alignment = alignment
#excel表头字段列表
list = ['订单编号','商品名称','单位','订单总额','订单状态','发货状态']
for i in range(len(list)):
    #通过循环将表头字段写入excel
    sheet.cell(2,i+1).value = list[i]
    #通过循环将字体加粗
    sheet.cell(2,i+1).font = font
    #通过循环将内容居中
    sheet.cell(2,i+1).alignment = alignment

#按照data中的列表数量循环
for row in range(len(data)):
    #将data中的数据写入之前新建的sheet表
    sheet.append(data[row])

#保存excel表,表名和位置自定义。
wb.save('total.xlsx')


#--------------------------代码结束--------------------------#
#----------------------------------------------------------#

  • 如果对你有用,请给个在看,谢谢~~欢迎各位留言交流,
  • 如有不正确的地方,请予以指正。【W:编程心声】
  • 如有任何问题,关注公众号编程心声后,留言即可。

文章来源:https://blog.csdn.net/XinTeng2012/article/details/134964362
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。