目录在一样寻常工作中,我们常常会碰到必要处理多个Excel工作表(Sheet)的环境。比如,一个Excel文件中包罗了一个月内天天的数据,每个工作表代表一天。有时候,为了方便分析,我们必要将这些分散的数据归并到一个工作表中。手动复制粘贴不仅服从低下,而且容易出错。这时,我们可以使用Python的pandas库和openpyxl库来自动化这个过程。 全部代码[code]import wx from openpyxl import load_workbook, Workbook class MyApp(wx.App): def OnInit(self): frame = MyFrame(None, title="Excel Sheet Merger") frame.Show() return True class MyFrame(wx.Frame): def __init__(self, parent, title): super(MyFrame, self).__init__(parent, title=title, size=(300, 200)) panel = wx.Panel(self) vbox = wx.BoxSizer(wx.VERTICAL) self.button = wx.Button(panel, label="Select Excel File") self.button.Bind(wx.EVT_BUTTON, self.on_open_file) vbox.Add(self.button, 0, wx.ALL | wx.CENTER, 5) panel.SetSizer(vbox) def on_open_file(self, event): with wx.FileDialog(self, "Open Excel file", wildcard="Excel files (*.xlsx)|*.xlsx", style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST) as fileDialog: if fileDialog.ShowModal() == wx.ID_CANCEL: return path = fileDialog.GetPath() self.merge_sheets(path) def merge_sheets(self, filepath): wb = load_workbook(filepath) new_wb = Workbook() new_ws = new_wb.active new_ws.title = "Merged Sheet" for i, sheet_name in enumerate(wb.sheetnames[:5]): ws = wb[sheet_name] for row in ws.iter_rows(values_only=True): new_ws.append(row) save_path = filepath.replace('.xlsx', '_merged.xlsx') new_wb.save(save_path) wx.MessageBox(f"Merged file saved as: {save_path}", "Info", wx.OK | wx.ICON_INFORMATION) if __name__ == '__main__': app = MyApp() app.MainLoop() [/code]环境准备首先,确保你的环境中安装了[code]pandas[/code]和[code]openpyxl[/code]库。如果没有安装,可以通过以下下令安装: [code]pip install pandas openpyxl [/code]代码分析下面是一个简单的Python脚本,用于归并一个Excel文件中的前5个工作表: [code]import pandas as pd def merge_sheets(file_path, output_file, num_sheets=5): # 加载Excel文件 xls = pd.ExcelFile(file_path) # 创建一个空的DataFrame用于存储归并后的数据 merged_df = pd.DataFrame() # 循环读取前num_sheets个工作表 for sheet_name in xls.sheet_names[:num_sheets]: # 读取每个工作表的数据 df = pd.read_excel(xls, sheet_name=sheet_name) # 将读取的数据追加到merged_df中 merged_df = pd.concat([merged_df, df], ignore_index=True) # 将归并后的数据保存到新的Excel文件 merged_df.to_excel(output_file, index=False) # 调用函数 file_path = 'path_to_your_excel_file.xlsx' output_file = 'merged_excel_file.xlsx' merge_sheets(file_path, output_file) [/code]代码解释
运行结果注意事项
通过使用Python脚本自动化归并Excel工作表的过程,我们可以节流大量的时间和精神,特别是在处理大型数据集时。这种方法不仅提高了服从,而且减少了人为错误的可能性。 以上就是使用Python归并Excel文件中的多个Sheet的实现过程的具体内容,更多关于Python归并多个Sheet的资料请关注脚本之家其它相关文章! 来源:https://www.jb51.net/python/328927ri2.htm 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|手机版|小黑屋|梦想之都-俊月星空
( 粤ICP备18056059号 )|网站地图
GMT+8, 2025-7-1 16:00 , Processed in 0.034534 second(s), 19 queries .
Powered by Mxzdjyxk! X3.5
© 2001-2025 Discuz! Team.