跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 工具系统 > 监控软件 > Python - Excel拆分详解(按工作表、行、列、内容拆分)

Python - Excel拆分详解(按工作表、行、列、内容拆分)

时间:2024-04-07 10:25:29 来源:网络cs 作者:焦糖 栏目:监控软件 阅读:

标签: 工作  内容 

目录

引言

安装Python Excel库

Python按工作表拆分Excel

Python按行拆分Excel

Python按列拆分Excel

Python按内容拆分Excel


引言

拆分Excel文件是一种将大型工作簿分割为更小、更易管理的部分的有效方法。当面对包含大量数据或复杂信息的工作簿时,拆分文件可以简化数据管理、提高数据处理和分析的效率。在Excel中,有几种方法可以拆分文件:

按工作表拆分按行拆分按列拆分按内容拆分

接下来,我们将探讨如何使用Python实现以上4种Excel文件拆分方式。

安装Python Excel库

要在Python中实现拆分Excel文件,首先需要安装Excel库。本文所使用的库是Spire.XLS for Python,它可以通过以下pip命令进行安装:

pip install Spire.XLS

Python按工作表拆分Excel

Excel文件通常包含多个工作表,每个工作表代表不同的数据集或主题。你可以根据工作表将文件拆分成多个单独的文件,使每个文件只包含一个工作表。

以下代码将一个Excel文件按照工作表进行拆分:

from spire.xls import Workbook, FileFormat# 定义一个 extract_worksheets 函数,用于从一个 Excel 文件中提取每个工作表到一个新的 Excel 文件def extract_worksheets(workbook, output_folder):    # 遍历文件中的工作表    for worksheet in workbook.Worksheets:        # 创建一个新的 Workbook 对象        new_workbook = Workbook()        # 清空新工作簿中的默认工作表        new_workbook.Worksheets.Clear()        # 将工作表从原始 Excel 文件复制到新的工作簿中        new_workbook.Worksheets.AddCopy(worksheet)        output_file_path = output_folder + worksheet.Name + ".xlsx"        # 将新的工作簿保存为 xlsx 文件        new_workbook.SaveToFile(output_file_path, FileFormat.Version2016)# 指定输入的 Excel 文件路径和输出文件夹input_file_path = "部门.xlsx"output_folder = "Output/"# 创建一个 Workbook 对象workbook = Workbook()# 加载 Excel 文件workbook.LoadFromFile(input_file_path)# 调用 extract_worksheet 函数,将 Excel 文件中的每个工作表提取到新的文件中extract_worksheets(workbook, output_folder)workbook.Dispose()

Python按行拆分Excel

按行拆分是最常见的拆分Excel文件的方法之一。你可以选择按照特定的行数将一个Excel工作表拆分成多个部分。例如,将一个包含1000行的Excel工作表按照每个文件200行的规模拆分,生成5个较小的文件。

以下代码将一个Excel工作表按照特定行数进行拆分:

from spire.xls import Workbook, FileFormat# 定义一个 extract_rows() 函数,用于从 Excel 工作表中提取特定行到新的 Excel 文件中def extract_rows(worksheet, start_row, end_row, output_file_path):    # 创建一个新的工作簿用于提取的行    new_workbook = Workbook()    # 清除新工作簿中的默认工作表    new_workbook.Worksheets.Clear()    # 在新工作簿中添加一个新的工作表    new_worksheet = new_workbook.Worksheets.Add("Sheet1")        if start_row == 1:         # 将源工作表中的特定行复制到新工作表中        worksheet.Range[start_row, 1, end_row, len(worksheet.Columns)].Copy(new_worksheet.Range[1, 1])    else:        # 将源工作表的标题行复制到新工作表中        worksheet.Range[1, 1, 1, len(worksheet.Columns)].Copy(new_worksheet.Range[1, 1])        # 将源工作表中的特定行复制到新工作表中        worksheet.Range[start_row, 1, end_row, len(worksheet.Columns)].Copy(new_worksheet.Range[2, 1])        # 将新工作簿保存为 xlsx 文件    new_workbook.SaveToFile(output_file_path, FileFormat.Version2016)    new_workbook.Dispose()# 指定输入和输出文件路径input_file_path = "通讯录.xlsx"output_file_path1 = "Output/1-6行.xlsx"output_file_path2 = "Output/剩余行.xlsx"# 加载一个 Excel 文件workbook = Workbook()workbook.LoadFromFile(input_file_path)# 获取第一个工作表worksheet = workbook.Worksheets[0]# 调用 extract_rows() 函数,将第一个工作表中的1-6 行提取到一个新的 Excel 文件中extract_rows(worksheet, 1, 6, output_file_path1)# 调用 extract_rows() 函数,将第一个工作表中的剩余行提取到一个新的 Excel 文件中extract_rows(worksheet, 7, len(worksheet.Rows), output_file_path2)workbook.Dispose()

Python按列拆分Excel

与按行拆分相似,按列拆分也是另一种常见的拆分Excel文件的方法。你可以将一个包含多列的Excel工作表拆分为多个单独的文件,每个文件包含特定数量的列。

以下代码将一个Excel工作表按照特定列数进行拆分:

from spire.xls import Workbook, FileFormat# 定义一个 extract_columns() 函数,用于从 Excel 工作表中提取特定列到新的 Excel 文件中def extract_columns(worksheet, start_col, end_col, output_file_path):    # 创建一个新的工作簿用于提取的列    new_workbook = Workbook()    # 清除新工作簿中的默认工作表    new_workbook.Worksheets.Clear()    # 在新工作簿中添加一个新的工作表    new_worksheet = new_workbook.Worksheets.Add("Sheet1")    # 将源工作表中的特定列复制到新工作表中    worksheet.Range[1, start_col, len(worksheet.Rows), end_col].Copy(new_worksheet.Range[1, 1])        # 将新工作簿保存为 xlsx 文件    new_workbook.SaveToFile(output_file_path, FileFormat.Version2016)    new_workbook.Dispose()# 指定输入和输出文件路径input_file_path = "通讯录.xlsx"output_file_path1 = "Output/1-3列.xlsx"output_file_path2 = "Output/剩余列.xlsx"# 创建一个 Workbook 对象workbook = Workbook()# 加载一个 Excel 文件workbook.LoadFromFile(input_file_path)# 获取第一个工作表worksheet = workbook.Worksheets[0]# 调用 extract_columns() 函数,将第一个工作表中的1-3 列提取到一个新的 Excel 文件中extract_columns(worksheet, 1, 3, output_file_path1)# 调用 extract_columns() 函数,将第一个工作表中的剩余列提取到一个新的 Excel 文件中extract_columns(worksheet, 4, len(worksheet.Columns), output_file_path2)workbook.Dispose()

Python按内容拆分Excel

如果一个Excel文件按照某种特定的内容进行分类,可以根据这些内容将文件拆分。举个例子,假如你有一个销售数据表,可以按照产品类别或地区将表格拆分成多个子文件,以便更方便地分析每个产品类别或地区的数据。

以下代码将一个Excel工作表按照特定数据进行拆分:

from spire.xls import Workbook, FileFormat, FindType, ExcelFindOptions# 定义一个 extract_rows_by_value() 函数,用于根据特定值从 Excel 工作表中提取行到新的 Excel 文件中def extract_rows_by_value(worksheet, value, output_file_path):    # 创建一个新的工作簿用于提取的行    new_workbook = Workbook()    # 清除新工作簿中的默认工作表    new_workbook.Worksheets.Clear()    # 在新工作簿中添加一个新的工作表    new_worksheet = new_workbook.Worksheets.Add("Sheet1")        # 将源工作表中的标题行复制到新工作表中    worksheet.Range[1, 1, 1, len(worksheet.Columns)].Copy(new_worksheet.Range[1, 1])    # 查找包含特定字符串值的单元格    ranges = worksheet.FindAll(value, FindType.Text, ExcelFindOptions.MatchEntireCellContent)        i = 2    # 遍历找到的单元格    for range in ranges:        # 获取包含单元格的行        row = range.Row        # 将行复制到新工作表中        worksheet.Range[row, 1, row, len(worksheet.Columns)].Copy(new_worksheet.Range[i, 1])        i += 1    # 将新工作簿保存为新文件    new_workbook.SaveToFile(output_file_path, FileFormat.Version2016)    new_workbook.Dispose()# 指定输入和输出文件路径input_file_path = "销售数据.xlsx"output_file_path1 = "Output/零部件.xlsx"output_file_path2 = "Output/服装.xlsx"# 创建一个 Workbook 对象workbook = Workbook()# 加载一个 Excel 文件workbook.LoadFromFile(input_file_path)# 获取第一个工作表worksheet = workbook.Worksheets[0]# 调用 extract_rows_by_value() 函数,将包含特定字符串值 "零部件" 的行提取到一个新的 Excel 文件中extract_rows_by_value(worksheet, "零部件", output_file_path1)# 调用 extract_rows_by_value() 函数,将包含特定字符串值 "服装" 的行提取到一个新的 Excel 文件中extract_rows_by_value(worksheet, "服装", output_file_path2)workbook.Dispose()

本文链接:https://www.kjpai.cn/news/2024-04-07/155069.html,文章来源:网络cs,作者:焦糖,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论