Python 处理 Excel 文件

Python 处理 Excel 文件

Python 处理 Excel 文件

1. 引言

Excel 是一种非常常用的办公软件,常用于数据的存储、分析和展示。Python 提供了多种库可以读写 Excel 文件,方便数据处理和分析。本文将详细介绍如何使用 Python 处理 Excel 文件,包括读取、写入数据、修改数据、合并、拆分等操作。

2. 安装相关库

在进行 Excel 文件处理之前,我们需要安装相应的库。常用的 Python 处理 Excel 的库有 openpyxlxlrdxlwt,可以通过以下命令进行安装:

pip install openpyxl xlrd xlwt
Bash

3. 读取 Excel 文件

Python 提供了不同的库读取不同格式的 Excel 文件。常见的 Excel 文件格式有 .xls.xlsx,下面将分别介绍如何读取这两种格式的文件。

3.1 读取 .xls 文件

.xls 是一种较早的 Excel 文件格式,可以使用 xlrd 库来读取该格式的文件。以下是读取 .xls 文件的示例代码:

import xlrd

# 打开 Excel 文件
workbook = xlrd.open_workbook('data.xls')

# 获取第一个 Sheet
sheet = workbook.sheet_by_index(0)

# 获取总行数、总列数
num_rows = sheet.nrows
num_cols = sheet.ncols

# 逐行读取数据
for row in range(num_rows):
    for col in range(num_cols):
        cell_value = sheet.cell_value(row, col)
        print(cell_value)
Python

运行以上代码,可以逐行读取 .xls 文件中的数据。

3.2 读取 .xlsx 文件

.xlsx 是一种较新的 Excel 文件格式,在读取时可以使用 openpyxl 库。以下是读取 .xlsx 文件的示例代码:

import openpyxl

# 打开 Excel 文件
workbook = openpyxl.load_workbook('data.xlsx')

# 获取第一个 Sheet
sheet = workbook.active

# 获取总行数、总列数
num_rows = sheet.max_row
num_cols = sheet.max_column

# 逐行读取数据
for row in sheet.iter_rows():
    for cell in row:
        cell_value = cell.value
        print(cell_value)
Python

运行以上代码,可以逐行读取 .xlsx 文件中的数据。

4. 写入 Excel 文件

除了读取数据,Python 也可以将数据写入 Excel 文件中。以下将介绍如何写入数据到 Excel 文件。

4.1 写入到 .xls 文件

写入到 .xls 文件可以使用 xlwt 库。以下是写入到 .xls 文件的示例代码:

import xlwt

# 创建一个工作簿
workbook = xlwt.Workbook()

# 创建一个工作表
sheet = workbook.add_sheet('Sheet1')

# 写入数据
sheet.write(0, 0, 'Hello')
sheet.write(0, 1, 'World')

# 保存文件
workbook.save('output.xls')
Python

运行以上代码,将会创建一个 output.xls 文件,并写入数据 ‘Hello’ 和 ‘World’ 到第一个 Sheet。

4.2 写入到 .xlsx 文件

写入到 .xlsx 文件可以使用 openpyxl 库。以下是写入到 .xlsx 文件的示例代码:

import openpyxl

# 创建一个工作簿
workbook = openpyxl.Workbook()

# 获取第一个 Sheet
sheet = workbook.active

# 写入数据
sheet['A1'] = 'Hello'
sheet['B1'] = 'World'

# 保存文件
workbook.save('output.xlsx')
Python

运行以上代码,将会创建一个 output.xlsx 文件,并写入数据 ‘Hello’ 和 ‘World’ 到第一个 Sheet。

5. 修改 Excel 文件

除了读取和写入数据,Python 也可以对 Excel 文件进行修改。以下是一些常见的修改操作。

5.1 修改某个单元格的值

要修改指定单元格的值,可以通过单元格的坐标进行操作。以下是修改 .xlsx 文件的示例代码:

import openpyxl

# 打开 Excel 文件
workbook = openpyxl.load_workbook('data.xlsx')

# 获取第一个 Sheet
sheet = workbook.active

# 修改 A1 单元格的值
sheet['A1'] = 'New Value'

# 保存文件
workbook.save('data_new.xlsx')
Python

运行以上代码,将会修改 data.xlsx 文件中的 A1 单元格的值为 ‘New Value’。

5.2 修改整行或整列的值

如果要修改整行或整列的值,可以使用循环进行操作。以下是修改 .xlsx 文件整列的示例代码:

import openpyxl

# 打开 Excel 文件
workbook = openpyxl.load_workbook('data.xlsx')

# 获取第一个 Sheet
sheet = workbook.active

# 修改第一列的值
for row in sheet.iter_rows(min_row=1, max_row=sheet.max_row, min_col=1, max_col=1):
    for cell in row:
        cell.value = 'New Value'

# 保存文件
workbook.save('data_new.xlsx')
Python

运行以上代码,将会修改 data.xlsx 文件中的第一列的值为 ‘New Value’。

6. 合并和拆分 Excel 文件

有时候我们需要将多个 Excel 文件合并成一个,或者将一个 Excel 文件拆分成多个。Python 提供了很多方法可以实现这些操作,下面将介绍一些常见的操作方式。

6.1 合并多个 Excel 文件

要合并多个 Excel 文件,可以使用 pandasopenpyxl 库。以下是使用 openpyxl 库合并 .xlsx 文件的示例代码:

import openpyxl

# 创建一个新的工作簿
merged_workbook = openpyxl.Workbook()
merged_sheet = merged_workbook.active

# 遍历要合并的文件
files = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx']
for file in files:
    workbook = openpyxl.load_workbook(file)
    sheet = workbook.active

    # 逐行读取数据
    for row in sheet.iter_rows():
        row_values = [cell.value for cell in row]
        merged_sheet.append(row_values)

# 保存合并后的文件
merged_workbook.save('merged.xlsx')
Python

运行以上代码,将会合并 file1.xlsxfile2.xlsxfile3.xlsx 中的数据到一个新的文件 merged.xlsx

6.2 拆分 Excel 文件

要拆分一个 Excel 文件,可以使用 pandasxlrd 库。以下是使用 xlrd 库拆分 .xlsx 文件的示例代码:

import xlrd
import xlwt

# 读取 Excel 文件
workbook = xlrd.open_workbook('data.xlsx')
sheet = workbook.sheet_by_index(0)

# 获取总行数
num_rows = sheet.nrows

# 定义拆分文件的行数
split_size = 100

# 获取文件名
file_name_template = 'split_{0}.xls'

# 计算拆分文件的数量
num_files = (num_rows // split_size) + 1

# 拆分文件
for i in range(num_files):
    start_row = i * split_size
    end_row = min((i+1) * split_size, num_rows)

    # 创建一个新的工作簿
    split_workbook = xlwt.Workbook()
    split_sheet = split_workbook.add_sheet('Sheet1')

    # 拷贝数据
    for row in range(start_row, end_row):
        for col in range(sheet.ncols):
            cell_value = sheet.cell_value(row, col)
            split_sheet.write(row - start_row, col, cell_value)

    # 保存拆分文件
    split_workbook.save(file_name_template.format(i))
Python

运行以上代码,将会将 data.xlsx 文件中的数据拆分成以 split_{n}.xls 命名的多个文件,每个文件包含100行数据(最后文件可能少于100行)。

7. 结论

本文介绍了如何使用 Python 处理 Excel 文件,包括读取、写入数据、修改数据以及合并、拆分文件的操作。通过掌握这些技巧,你可以更加灵活地处理和分析 Excel 数据,在日常工作和数据处理中发挥更大的作用。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册