用Python自动化处理Excel表格详解

用Python自动化处理Excel表格详解_第1张图片


 

Excel表格基础知识

Excel表格可以帮助用户创建、编辑、格式化和计算数据,并生成各种图表和报表。Excel表格通常用于商业、金融、科学、教育等领域。

 

Excel表格的常用操作

Excel表格的常用操作包括插入、删除、移动、复制、粘贴、排序和筛选、图表等。这些操作可以帮助用户快速有效地处理数据,并生成各种报表和图表。

Excel表格的文件格式

Excel表格的文件格式有多种,常见的有xls、xlsx、xlsm、xlsb等。其中,xls格式是Excel 97-2003所使用的二进制格式,而xlsx格式是Excel 2007及以上版本所使用的XML格式。xlsm格式与xlsx格式类似,但支持宏和VBA代码。xlsb格式是一种二进制格式,通常用于处理大型数据集。

Python自动化处理Excel表格

在Python中,我们可以使用pandas和openpyxl等库来自动化处理Excel表格。

pandas库

pandas是一个开源的数据分析库,具有高效、灵活、易用等特点。它可以帮助用户处理各种数据类型,包括Excel表格。在pandas中,我们可以使用read_excel和to_excel等函数来读取和写入Excel表格。

示例代码

import pandas as pd

# 读取Excel表格
df = pd.read_excel('data.xlsx')

# 处理数据
# ...

# 写入Excel表格
df.to_excel('output.xlsx', index=False)

openpyxl库

openpyxl是一个开源的Python库,用于读取和写入Excel表格。它可以帮助用户处理各种数据类型,包括Excel表格。在openpyxl中,我们可以使用load_workbook和save_workbook等函数来读取和写入Excel表格。

示例代码

from openpyxl import load_workbook

# 读取Excel表格
wb = load_workbook('data.xlsx')
ws = wb.active

# 处理数据
# ...

# 写入Excel表格
wb.save('output.xlsx')

Python自动化处理Excel表格的常见问题

在使用Python自动化处理Excel表格时,常见的问题包括读取数据、写入数据、格式化数据、筛选数据等。下面,我们将针对这些问题进行详细讲解。

如何读取Excel表格?

在Python中,我们可以使用pandas和openpyxl等库来读取Excel表格。其中,pandas库常用于读取较大的Excel表格,而openpyxl库常用于读取较小的Excel表格。

使用pandas读取Excel表格

import pandas as pd

# 读取Excel表格
df = pd.read_excel('data.xlsx')

使用openpyxl读取Excel表格

from openpyxl import load_workbook

# 读取Excel表格
wb = load_workbook('data.xlsx')
ws = wb.active

# 获取数据
data = []
for row in ws.iter_rows(values_only=True):
    data.append(row)

如何写入Excel表格?

在Python中,我们可以使用pandas和openpyxl等库来写入Excel表格。其中,pandas库常用于写入较大的Excel表格,而openpyxl库常用于写入较小的Excel表格。

使用pandas写入Excel表格

import pandas as pd

# 写入Excel表格
df.to_excel('output.xlsx', index=False)

使用openpyxl写入Excel表格

from openpyxl import Workbook

# 写入Excel表格
wb = Workbook()
ws = wb.active

for row in data:
    ws.append(row)

wb.save('output.xlsx')

如何格式化Excel表格?

在Python中,我们可以使用openpyxl等库来格式化Excel表格。其中,openpyxl库提供了各种格式化工具,可以帮助用户对Excel表格进行格式化。

示例代码

from openpyxl.styles import Font, Alignment

# 设置字体和对齐方式
font = Font(name='Arial', size=12, bold=True)
alignment = Alignment(horizontal='center', vertical='center')

# 格式化表头
for cell in ws[1]:
    cell.font = font
    cell.alignment = alignment

# 格式化数据
for row in ws.iter_rows(min_row=2):
    for cell in row:
        cell.number_format = '0.00'

如何筛选Excel表格?

在Python中,我们可以使用pandas和openpyxl等库来筛选Excel表格。其中,pandas库常用于筛选较大的Excel表格,而openpyxl库常用于筛选较小的Excel表格。

使用pandas筛选Excel表格

import pandas as pd

# 筛选数据
df_filtered = df[df['column_name'] == 'value']

使用openpyxl筛选Excel表格

from openpyxl.utils import column_index_from_string

# 筛选数据
for row in ws.iter_rows(min_row=2):
    if row[column_index_from_string('A')-1].value == 'value':
        # 处理数据
        # ...

筛选和修改数据

使用 pandas 和 openpyxl 可以方便地筛选和修改 Excel 文件中的数据。以下是一个简单的示例代码:

import pandas as pd
from openpyxl import load_workbook

# 读取 Excel 文件并加载工作表
file = 'example.xlsx'
workbook = load_workbook(file)
sheet = workbook['Sheet1']

# 将工作表中的数据读取到 pandas DataFrame 中
data = sheet.values
df = pd.DataFrame(data, columns=['姓名', '年龄', '性别'])

# 筛选出年龄大于等于 30 岁的人员信息
df_filtered = df[df['年龄'] >= 30]

# 将年龄小于 20 岁的人员信息删除
df.drop(df[df['年龄'] < 20].index, inplace=True)

# 在 DataFrame 中添加一列数据
df['职业'] = ['学生', '教师', '医生']

# 将修改后的 DataFrame 写入 Excel 文件
with pd.ExcelWriter(file, engine='openpyxl', mode='a') as writer:
    writer.book = workbook
    df.to_excel(writer, sheet_name='Sheet1', index=False)

在这个代码中,先使用 openpyxl 库读取 Excel 文件并加载工作表。然后,使用 pandas 库将工作表中的数据读取到 DataFrame 中:

  • 使用条件表达式筛选出年龄大于等于 30 岁的人员信息,并将其存储在 df_filtered 变量中。

  • 使用 drop() 方法删除年龄小于 20 岁的人员信息。

  • 在 DataFrame 中添加一列职业信息。

最后将修改后的 DataFrame 写回到 Excel 文件中。

创建图表

使用 pandas 和 openpyxl 可以方便地在 Excel 文件中创建各种类型的图表。以下是一个简单的示例代码:

import pandas as pd
from openpyxl import load_workbook
from openpyxl.chart import BarChart, Reference

# 读取 Excel文件并加载工作表
file = 'example.xlsx'
workbook = load_workbook(file)
sheet = workbook['Sheet1']

# 将工作表中的数据读取到 pandas DataFrame 中
data = sheet.values
df = pd.DataFrame(data, columns=['姓名', '年龄', '性别'])

# 创建一个柱形图并添加到 Excel 文件中
chart = BarChart()
chart.title = '人员年龄分布'
chart.x_axis.title = '姓名'
chart.y_axis.title = '年龄'

xdata = Reference(sheet, min_col=1, min_row=2, max_row=len(df))
ydata = Reference(sheet, min_col=2, min_row=2, max_row=len(df))
chart.add_data(ydata)
chart.set_categories(xdata)

sheet.add_chart(chart, 'D1')

# 保存 Excel 文件
workbook.save(file)

在这个示例代码中,先使用 openpyxl 库读取 Excel 文件并加载工作表。然后使用 pandas 库将工作表中的数据读取到 DataFrame 中。

创建一个柱形图并将其添加到 Excel 文件中的步骤:

  • 创建一个 BarChart 对象,并设置标题、X 轴标题和 Y 轴标题。

  • 使用 Reference 方法创建一个数据范围对象,并将其指定为图表的 X 轴和 Y 轴数据。

  • 使用 add_data() 方法将 Y 轴数据添加到图表中。

  • 使用 set_categories() 方法将 X 轴数据添加到图表中。

  • 使用 add_chart() 方法将图表添加到工作表中。

好了,今天的分享就到这里,欢迎点赞收藏转发,感谢

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(python,自动化,excel)