温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python怎么实现在Excel文件中写入图表

发布时间:2022-05-20 13:51:06 来源:亿速云 阅读:230 作者:iii 栏目:开发技术

这篇“Python怎么实现在Excel文件中写入图表”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python怎么实现在Excel文件中写入图表”文章吧。

先来看一下所需要的几个函数(这些函数都是通过工作簿执行出来的)。

函数名说明参数
add_chart()创建图表对象{type:样式}
add_series()定义需要展示的数据字典
set_title()定义图表title字符串

add_series 参数

参数说明
categories展示的标题 =Sheet1!$A$1:$A$4
Shert1:工作簿名称
$A1 : 1:1:A$4 表示从第A行的第一个值到第四个值去展示标题
values展示的数据=Sheet1!$B1 : 1:1:B$4
Shert1:工作簿名称
$B1 : 1:1:B$4 表示从第A行的第一个值到第四个值去展示标题
name表名 

$A$1:$A$4 表示从第A行的第一个值到第四个值去展示标题

图表的样式

样式名说明
area区域样式表
bar条形样式表
column柱状样式表
line线条样式表
pie饼图样式表
doughnut圆环样式表
scatter散点样式表
stock库存样式表
rader雷达样式表

结合 study.xlsx 文件 将学生成绩以表图形式展示

这里继续使用上一章节的 “将项目中的 study.xlsx 文件的内容写入 write.xlsx” 的案例;

代码示例如下:

# coding:utf-8

import xlsxwriter
import xlrd


# excel = xlsxwriter.Workbook('write.xlsx')       # 初始化 excel 对象
# book = excel.add_worksheet('study')             # 添加工作簿
#
# title = ['姓名', '性别', '年龄', '成绩', '等级']   # 定义 write.xlsx 的首行内容
#
# for index, data in enumerate(title):        # for循环 利用枚举函数将 title 的内容写入 "write.xlsx" 的首行
#     book.write(0, index, data)
# excel.close()


def read():             # 定义一个 read 函数读取 "study.xlsx" 文件
    result = []
    excel = xlrd.open_workbook('study.xlsx')
    book = excel.sheet_by_name('学生手册')
    for i in book.get_rows():
        content = []
        for j in i:
            content.append(j.value)
        result.append(content)
    return result


def write(content):     # 定义一个 write 函数 将读取到 "study.xlsx" 的内容写入到 "write.xlsx" 文件
    excel = xlsxwriter.Workbook('write.xlsx')
    book = excel.add_worksheet('study')

    for index, data in enumerate(content):
        print(data)
        for sub_index, sub_data in enumerate(data):
            # print(sub_index, sub_data)
            book.write(index, sub_index, sub_data)

    book1 = excel.add_worksheet('学生等级')     # 定义 "学生等级" 工作簿
    data = [                                   # 定义 data 列表 用以存放学生成绩所处等级与数量
        ['优秀', '良好', '中', '差'],
        [15, 25, 55, 5]
    ]

    book1.write_column('A1', data[0])       # write_column() 函数,按行添加(即 A1 行添加 data 列表的 0 索引的内容)
    book1.write_column('B1', data[1])

    chart = excel.add_chart({'type': 'column'})     # 定义图表样式为 柱状样式表
    chart.add_series({                              # 添加需要展示的数据
        'categories': '=学生等级!$A1:$A4',
        'values': '=学生等级!$B1:$B4',
        'name': '成绩占比'
    })
    chart.set_title({'name': '成绩占比图表'})         # 定义图表title
    book1.insert_chart('A10', chart)                # 将 chart 放在 excel 表格对应工作簿的 A10 位置

    excel.close()


if __name__ == '__main__':
    result = read()
    write(result)

运行结果如下:

Python怎么实现在Excel文件中写入图表

Python怎么实现在Excel文件中写入图表

拓展:再试试饼状图与条形样式图

代码示例如下:

# coding:utf-8

import xlsxwriter
import xlrd


# excel = xlsxwriter.Workbook('write.xlsx')       # 初始化 excel 对象
# book = excel.add_worksheet('study')             # 添加工作簿
#
# title = ['姓名', '性别', '年龄', '成绩', '等级']   # 定义 write.xlsx 的首行内容
#
# for index, data in enumerate(title):        # for循环 利用枚举函数将 title 的内容写入 "write.xlsx" 的首行
#     book.write(0, index, data)
# excel.close()


def read():             # 定义一个 read 函数读取 "study.xlsx" 文件
    result = []
    excel = xlrd.open_workbook('study.xlsx')
    book = excel.sheet_by_name('学生手册')
    for i in book.get_rows():
        content = []
        for j in i:
            content.append(j.value)
        result.append(content)
    return result


def write(content):     # 定义一个 write 函数 将读取到 "study.xlsx" 的内容写入到 "write.xlsx" 文件
    excel = xlsxwriter.Workbook('write.xlsx')
    book = excel.add_worksheet('study')

    for index, data in enumerate(content):
        print(data)
        for sub_index, sub_data in enumerate(data):
            # print(sub_index, sub_data)
            book.write(index, sub_index, sub_data)

    book1 = excel.add_worksheet('学生等级')     # 定义 "学生等级" 工作簿
    data = [                                   # 定义 data 列表 用以存放学生成绩所处等级与数量
        ['优秀', '良好', '中', '差'],
        [15, 25, 55, 5]
    ]

    book1.write_column('A1', data[0])       # write_column() 函数,按行添加(即 A1 行添加 data 列表的 0 索引的内容)
    book1.write_column('B1', data[1])

    chart = excel.add_chart({'type': 'column'})     # 定义图表样式为 柱状样式表
    chart.add_series({                              # 添加需要展示的数据
        'categories': '=学生等级!$A1:$A4',
        'values': '=学生等级!$B1:$B4',
        'name': '成绩占比'
    })
    chart.set_title({'name': '成绩占比图表'})         # 定义图表title
    book1.insert_chart('A10', chart)                # 将 chart 放在 excel 表格对应工作簿的 A10 位置


    chart = excel.add_chart({'type': 'bar'})
    chart.add_series({
        'categories': '=学生等级!$A1:$A4',
        'values': '=学生等级!$B1:$B4',
        'name': '成绩占比'
    })
    chart.set_title({'name': '成绩占比图表'})
    book1.insert_chart('A25', chart)


    chart = excel.add_chart({'type': 'pie'})
    chart.add_series({
        'categories': '=学生等级!$A1:$A4',
        'values': '=学生等级!$B1:$B4',
        'name': '成绩占比'
    })
    chart.set_title({'name': '成绩占比图表'})
    book1.insert_chart('A40', chart)

    excel.close()


if __name__ == '__main__':
    result = read()
    write(result)

运行结果如下:

Python怎么实现在Excel文件中写入图表

Python怎么实现在Excel文件中写入图表

以上就是关于“Python怎么实现在Excel文件中写入图表”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI