excel 在线合并方法:摸鱼的不二选择!——九数云BI
excel 在线合并是一个非常强大的功能,可以帮助我们轻松提升工作效率!下面让九数云告诉我们具体步骤吧!
Excel就是最接地气的免费的数据分析工具,下面来看看excel 在线合并怎么做吧!
excel 在线合并方法:需求
我们先来实现把多个sheet的数据合并到一个sheet中。下图是wps会员中给出的示例。
excel 在线合并方法:实现逻辑
- 打开指定的表格,为了不影响原始数据,新建一个sheet,把其它sheet的内容依次追加到新建的sheet中。
- 数据处理完后,保存表格
excel 在线合并方法:数据准备
下载地址:私信我下载吧!没法直接上传!
数据截图
excel 在线合并方法:界面设计
需要一个文本框显示文件路径,有一个浏览按钮可以选择文件,再就是 有一个执行处理的按钮,大体效果如下:
excel 在线合并方法:代码说明
我们使用openpyxl来进行表格的操作。因为它不是Python的标准库,所以我们需要安装一下。
pip install openpyxl
全部代码
import tkinter as tk
import os
from tkinter import filedialog
from tkinter import messagebox
from openpyxl import load_workbook
class SheetMerge:
def __init__(self):
# 创建主窗口
root = tk.Tk()
root.geometry(600x150+550+200)
root.title("合并Excel多表")
page = tk.Frame()
page.pack()
text = tk.StringVar()
def select_file():
filepath = filedialog.askopenfile()
entry.delete(0, tk.END) # 清除文本框中的内容
entry.insert(0, filepath.name) # 插入新的文本内容
# 执行处理
def executor():
filepath = entry.get()
# 加载已经存在的Excel文件
workbook = load_workbook(filename=filepath)
# 创建一个新的sheet,默认添加到最后
sh = workbook.create_sheet("合并结果")
sh_current_row = sh.max_row
# 获取所有的工作表名称
sheet_names = workbook.sheetnames
for sheet_name in sheet_names:
# 加载工作表
if sheet_name == "合并结果":
pass
else:
sheet = workbook[sheet_name]
# 判断当前是不是第一个处理的sheet,是第一个是取标题,不是第一个时,从第二行开始取值
is_first_sheet = sheet.title == sheet_names[0]
# 遍历每一行数据
for i in range(1,sheet.max_row+1):
for j in range(1,sheet.max_column+1):
if is_first_sheet == True:
sh.cell(sh_current_row,j).value = sheet.cell(i, j).value
# 进行数据处理,且是最后一列的处理后,目标sheet下移一行
if j == sheet.max_column:
sh_current_row += 1
else:
if i != 1:
sh.cell(sh_current_row,j).value = sheet.cell(i, j).value
# 进行数据处理,且是最后一列的处理后,目标sheet下移一行
if j == sheet.max_column:
sh_current_row += 1
# 当你完成操作后,如果需要保存对文件所做的更改,可以调用save()方法
workbook.save(filepath)
workbook.close()
messagebox.showinfo(title=Excel合并多表, message=处理完成!)
tk.Label(page, text=待处理文件:, font=(华文楷体, 15)).grid(row=4, column=1, pady=10, padx=10)
entry = tk.Entry(page, textvariable=text, width=45)
entry.grid(row=4, column=2, padx=10)
tk.Button(page, text=浏览..., font=(华文楷体, 12), width=5, height=1, command=select_file).grid(
row=4,
column=3)
tk.Button(page, text=执行处理, font=(华文楷体, 15), command=executor).grid(row=5, column=2)
root.mainloop()
if __name__ == __main__:
SheetMerge()
excel 在线合并方法:运行效果
启动
浏览要处理文件
开始处理,处理完成后,弹出完成提示框。
合并后的文件
excel 在线合并方法:打包成exe
打包的具体流程,可以看之前的文章。
执行代码
pyinstaller -F -w SheetMerge.py
在dist下面会生成一个exe文件
双击即可运行,这样就可以直接运行。也可以送给需要的小伙伴了。运行效果和我们上面是一样的。
注意:openpyxl这个库是不支持xls文件的,只支持xlsx。
如果你想了解更多关于数据合并的方法,欢迎尝试九数云BI,它拥有多种合并方式,还支持高效处理大部分的常用场景,如批量数据合并(上下合并,左右合并);超级数据透视(分类汇总);行列转换,分列,高级图表可视化,仪表盘,筛选器等。
上一篇: 怎么用excel做统计图?这些步骤必须了解!——九数云BI
下一篇: excel表格卡死未响应怎么办 | 九数云BI