python操作excel的方法(xlsxwriter包的使用)

  • Post category:Python

下面是详细讲解Python操作Excel的方法(xlsxwriter包的使用)的完整实例教程。

1. 前言

Excel在日常工作中是一种非常常见的数据分析和处理工具。Python作为一种高效的编程语言,可以通过xlsxwriter库来实现对Excel文件的读写操作。xlsxwriter是一个强大的Python库,它可以创建和写入Excel的xlsx格式工作簿。

在学习本文时需要先确保已经具备Python的基础知识,如基本语法、类型和函数等,也需要了解Excel的基本概念和操作。

2. 安装xlsxwriter库

在使用xlsxwriter库之前,我们需要先安装它。使用pip可以完成xlsxwriter的安装:

pip install xlsxwriter

3. 创建Excel文件

3.1 创建Excel文件的基本结构

以下是用xlsxwriter创建Excel文件的基本结构:

import xlsxwriter

# 创建一个新的Excel文件
workbook = xlsxwriter.Workbook('test.xlsx')

# 创建工作表worksheet
worksheet = workbook.add_worksheet()

# 写入内容
worksheet.write('A1', 'Hello world!')

# 关闭Excel文件
workbook.close()

以上代码中,首先导入xlsxwriter库,然后通过xlsxwriter.Workbook函数创建一个新的Excel文件,并将其保存到本地。然后,使用workbook.add_worksheet函数创建一个名为worksheet的工作表。接着,使用worksheet.write函数在表格的A1单元格中写入字符串’Hello world!’。最后,使用workbook.close()关闭Excel文件。

3.2 向工作表写入数据

向工作表中写入数据是我们最常用的操作之一。使用worksheet.write()函数可以很容易地实现数据的写入,其语法为:

worksheet.write(row, col, data)

其中,rowcol表示要写入数据的行数和列数,data表示要写入的数据。下面是一个例子:

import xlsxwriter

# 创建一个新的Excel文件
workbook = xlsxwriter.Workbook('test.xlsx')

# 创建工作表worksheet
worksheet = workbook.add_worksheet()

# 写入内容
worksheet.write('A1', 'Name')
worksheet.write('B1', 'Age')
worksheet.write('A2', 'Tom')
worksheet.write('B2', 18)

# 关闭Excel文件
workbook.close()

以上代码中,我们首先创建了一个新的Excel文件,并创建了一个名为worksheet的工作表。然后,我们使用worksheet.write()函数向工作表中写入数据。注意,在第四行中,我们使用了worksheet.write()函数写入数字18,这表明xlsxwriter可以自动地将数字存储为数字类型,而不是字符串类型。

3.3 写入格式化文本

我们可以使用格式化文本来使Excel文件更加美观和易读。在xlsxwriter中,我们可以使用格式化工具对象来设置格式。下面是一个例子:

import xlsxwriter

# 创建一个新的Excel文件
workbook = xlsxwriter.Workbook('test.xlsx')

# 创建工作表worksheet
worksheet = workbook.add_worksheet()

# 设置格式
bold = workbook.add_format({'bold': True})
money = workbook.add_format({'num_format': '$#,##0'})

# 写入内容
worksheet.write('A1', 'Name', bold)
worksheet.write('B1', 'Age', bold)
worksheet.write('C1', 'Salary', bold)
worksheet.write('A2', 'Tom')
worksheet.write_number('B2', 18)
worksheet.write_number('C2', 25000, money)

# 关闭Excel文件
workbook.close()

以上代码中,我们使用workbook.add_format()函数先定义加粗和货币格式的格式化工具对象,然后使用worksheet.write()函数在表格中将其应用到文本。在第七行中,我们使用worksheet.write_number()函数用于写入数字。这样可以让xlsxwriter自动地将数字存储为数字类型而不是字符串类型。

4. 示例

下面是一个根据学生年龄筛选出不同区间人数并绘制成图表的示例:

import xlsxwriter

# 数据
data = [
    {'name': 'Tom', 'age': 18},
    {'name': 'Jerry', 'age': 20},
    {'name': 'John', 'age': 25},
    {'name': 'Mike', 'age': 28},
    {'name': 'Jack', 'age': 30},
    {'name': 'Alex', 'age': 35},
    {'name': 'David', 'age': 22},
    {'name': 'Peter', 'age': 32},
    {'name': 'Frank', 'age': 19},
    {'name': 'Jason', 'age': 29},
]

# 创建一个新的Excel文件
workbook = xlsxwriter.Workbook('students.xlsx')

# 创建工作表worksheet
worksheet = workbook.add_worksheet()

# 设置格式
bold = workbook.add_format({'bold': True})
money = workbook.add_format({'num_format': '$#,##0'})

# 写入内容
worksheet.write('A1', 'Name', bold)
worksheet.write('B1', 'Age', bold)
worksheet.write('A2', 'Tom')
worksheet.write_number('B2', 18)

# 统计人数
age_range = [(0, 20), (21, 25), (26, 30), (31, 100)]
counts = [0] * len(age_range)
for d in data:
    for i, (start, end) in enumerate(age_range):
        if start <= d['age'] <= end:
            counts[i] += 1

# 写入统计结果
worksheet.write('C1', 'Age Range', bold)
worksheet.write('D1', 'Number of Students', bold)
for i, r in enumerate(age_range):
    worksheet.write('C%d' % (i+2), '%d-%d' % r)
    worksheet.write_number('D%d' % (i+2), counts[i])

# 创建图表
chart = workbook.add_chart({'type': 'column'})
chart.add_series({'values': '=Sheet1!$D$2:$D$5'})
chart.set_title({'name': 'Student Ages'})
chart.set_x_axis({'name': 'Age Ranges'})
chart.set_y_axis({'name': 'Number of Students'})

# 插入图表
worksheet.insert_chart('F1', chart)

# 关闭Excel文件
workbook.close()

以上代码中,我们首先定义了一个名为data的学生数据列表。然后,我们创建了一个名为students.xlsx的Excel文件和一个名为worksheet的工作表。接着,我们使用worksheet.write()函数和格式化工具对象,将数据写入到表格中。在第19到26行中,我们统计了不同年龄段的学生人数。最后,我们使用workbook.add_chart()worksheet.insert_chart()函数,创建并插入一个以年龄段为横轴、学生人数为纵轴的柱形图。

5. 结论

这篇教程向你介绍了如何使用Python操作Excel表格。我们学习了如何使用xlsxwriter库来创建Excel文件,向工作表中写入数据,并使用格式化工具对象为文本设置格式。我们还展示了一个示例,该示例演示了如何使用xlsxwriter库统计不同年龄段的学生人数,并绘制成图表。我们希望本文可以帮助你学习如何在Python中操作Excel,提高数据分析和处理的效率。