Python Excel 合并相邻单元格

在处理Excel表格时,有时候我们需要将相邻的单元格合并在一起,以便更清晰地展示数据。Python语言提供了许多强大的库,可以帮助我们实现这个功能,其中最流行的是openpyxl库。在本文中,我们将介绍如何使用Python和openpyxl库来合并Excel表格中相邻的单元格。

准备工作

在开始之前,我们首先需要安装openpyxl库。可以使用pip来安装:

pip install openpyxl

接下来,我们需要准备一个Excel文件作为示例。假设我们有一个名为data.xlsx的Excel文件,其中包含如下数据:

A B C
1 2 3
4 5 6
7 8 9

代码实现

首先,我们需要导入openpyxl库:

from openpyxl import Workbook, load_workbook

接下来,我们加载Excel文件并获取第一个工作表:

# 加载Excel文件
wb = load_workbook('data.xlsx')

# 获取第一个工作表
ws = wb.active

然后,我们可以编写一个函数来合并相邻的单元格:

def merge_adjacent_cells(sheet):
    for row in sheet.iter_rows(min_row=1, max_row=sheet.max_row, min_col=1, max_col=sheet.max_column):
        for cell in row:
            if cell.value:
                if cell.offset(row=0, column=1).value == cell.value + 1:
                    sheet.merge_cells(start_row=cell.row, start_column=cell.column, end_row=cell.row, end_column=cell.column + 1)

最后,我们调用这个函数来合并Excel表格中相邻的单元格:

merge_adjacent_cells(ws)

# 保存修改后的Excel文件
wb.save('merged_data.xlsx')

完整代码

from openpyxl import Workbook, load_workbook

# 加载Excel文件
wb = load_workbook('data.xlsx')

# 获取第一个工作表
ws = wb.active

def merge_adjacent_cells(sheet):
    for row in sheet.iter_rows(min_row=1, max_row=sheet.max_row, min_col=1, max_col=sheet.max_column):
        for cell in row:
            if cell.value:
                if cell.offset(row=0, column=1).value == cell.value + 1:
                    sheet.merge_cells(start_row=cell.row, start_column=cell.column, end_row=cell.row, end_column=cell.column + 1)

merge_adjacent_cells(ws)

# 保存修改后的Excel文件
wb.save('merged_data.xlsx')

效果展示

通过以上代码,我们成功地将Excel表格中相邻的单元格合并在一起。现在,让我们来看一下处理前后的效果对比:

处理前:

A B C
1 2 3
4 5 6
7 8 9

处理后:

A B C
1-2 3
4-5 6
7-8 9

总结

本文介绍了如何使用Python和openpyxl库来合并Excel表格中相邻的单元格。通过简单的代码实现,我们可以方便地处理Excel数据,使之更加易读和美观。希望本文对您有所帮助,谢谢阅读!

附录

甘特图

gantt
    title Python Excel 合并相邻单元格示例
    section 代码编写
    学习openpyxl: done, 2022-09-20, 3d
    编写合并函数: done, 2022-09-24, 2d