網(wǎng)站首頁(yè) Python教程 正文
學(xué)習(xí)完如何生成一個(gè) excel 文件之后,接下來我們繼續(xù)學(xué)習(xí)一下如何在 excel 文件中寫入一個(gè)比較簡(jiǎn)單的圖表,先來看一下所需要的幾個(gè)函數(shù)(這些函數(shù)都是通過工作簿執(zhí)行出來的)。
函數(shù)名 | 說明 | 參數(shù) |
---|---|---|
add_chart() | 創(chuàng)建圖表對(duì)象 | {type:樣式} |
add_series() | 定義需要展示的數(shù)據(jù) | 字典 |
set_title() | 定義圖表title | 字符串 |
add_series 參數(shù)
參數(shù) | 說明 | 值 |
---|---|---|
categories | 展示的標(biāo)題 | ?=Sheet1!$A$1:$A$4 Shert1:工作簿名稱 $A1 : 1:1:A$4 表示從第A行的第一個(gè)值到第四個(gè)值去展示標(biāo)題 |
values | 展示的數(shù)據(jù) | =Sheet1!$B1 : 1:1:B$4 Shert1:工作簿名稱 $B1 : 1:1:B$4 表示從第A行的第一個(gè)值到第四個(gè)值去展示標(biāo)題 |
name | 表名 | ? |
$A$1:$A$4 表示從第A行的第一個(gè)值到第四個(gè)值去展示標(biāo)題
圖表的樣式
樣式名 | 說明 |
---|---|
area | 區(qū)域樣式表 |
bar | 條形樣式表 |
column | 柱狀樣式表 |
line | 線條樣式表 |
pie | 餅圖樣式表 |
doughnut | 圓環(huán)樣式表 |
scatter | 散點(diǎn)樣式表 |
stock | 庫(kù)存樣式表 |
rader | 雷達(dá)樣式表 |
結(jié)合 study.xlsx 文件 將學(xué)生成績(jī)以表圖形式展示
這里繼續(xù)使用上一章節(jié)的 “將項(xiàng)目中的 study.xlsx 文件的內(nèi)容寫入 write.xlsx” 的案例;
代碼示例如下:
# coding:utf-8
import xlsxwriter
import xlrd
# excel = xlsxwriter.Workbook('write.xlsx') # 初始化 excel 對(duì)象
# book = excel.add_worksheet('study') # 添加工作簿
#
# title = ['姓名', '性別', '年齡', '成績(jī)', '等級(jí)'] # 定義 write.xlsx 的首行內(nèi)容
#
# for index, data in enumerate(title): # for循環(huán) 利用枚舉函數(shù)將 title 的內(nèi)容寫入 "write.xlsx" 的首行
# book.write(0, index, data)
# excel.close()
def read(): # 定義一個(gè) read 函數(shù)讀取 "study.xlsx" 文件
result = []
excel = xlrd.open_workbook('study.xlsx')
book = excel.sheet_by_name('學(xué)生手冊(cè)')
for i in book.get_rows():
content = []
for j in i:
content.append(j.value)
result.append(content)
return result
def write(content): # 定義一個(gè) write 函數(shù) 將讀取到 "study.xlsx" 的內(nèi)容寫入到 "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('學(xué)生等級(jí)') # 定義 "學(xué)生等級(jí)" 工作簿
data = [ # 定義 data 列表 用以存放學(xué)生成績(jī)所處等級(jí)與數(shù)量
['優(yōu)秀', '良好', '中', '差'],
[15, 25, 55, 5]
]
book1.write_column('A1', data[0]) # write_column() 函數(shù),按行添加(即 A1 行添加 data 列表的 0 索引的內(nèi)容)
book1.write_column('B1', data[1])
chart = excel.add_chart({'type': 'column'}) # 定義圖表樣式為 柱狀樣式表
chart.add_series({ # 添加需要展示的數(shù)據(jù)
'categories': '=學(xué)生等級(jí)!$A1:$A4',
'values': '=學(xué)生等級(jí)!$B1:$B4',
'name': '成績(jī)占比'
})
chart.set_title({'name': '成績(jī)占比圖表'}) # 定義圖表title
book1.insert_chart('A10', chart) # 將 chart 放在 excel 表格對(duì)應(yīng)工作簿的 A10 位置
excel.close()
if __name__ == '__main__':
result = read()
write(result)
運(yùn)行結(jié)果如下:
拓展:再試試餅狀圖與條形樣式圖
代碼示例如下:
# coding:utf-8
import xlsxwriter
import xlrd
# excel = xlsxwriter.Workbook('write.xlsx') # 初始化 excel 對(duì)象
# book = excel.add_worksheet('study') # 添加工作簿
#
# title = ['姓名', '性別', '年齡', '成績(jī)', '等級(jí)'] # 定義 write.xlsx 的首行內(nèi)容
#
# for index, data in enumerate(title): # for循環(huán) 利用枚舉函數(shù)將 title 的內(nèi)容寫入 "write.xlsx" 的首行
# book.write(0, index, data)
# excel.close()
def read(): # 定義一個(gè) read 函數(shù)讀取 "study.xlsx" 文件
result = []
excel = xlrd.open_workbook('study.xlsx')
book = excel.sheet_by_name('學(xué)生手冊(cè)')
for i in book.get_rows():
content = []
for j in i:
content.append(j.value)
result.append(content)
return result
def write(content): # 定義一個(gè) write 函數(shù) 將讀取到 "study.xlsx" 的內(nèi)容寫入到 "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('學(xué)生等級(jí)') # 定義 "學(xué)生等級(jí)" 工作簿
data = [ # 定義 data 列表 用以存放學(xué)生成績(jī)所處等級(jí)與數(shù)量
['優(yōu)秀', '良好', '中', '差'],
[15, 25, 55, 5]
]
book1.write_column('A1', data[0]) # write_column() 函數(shù),按行添加(即 A1 行添加 data 列表的 0 索引的內(nèi)容)
book1.write_column('B1', data[1])
chart = excel.add_chart({'type': 'column'}) # 定義圖表樣式為 柱狀樣式表
chart.add_series({ # 添加需要展示的數(shù)據(jù)
'categories': '=學(xué)生等級(jí)!$A1:$A4',
'values': '=學(xué)生等級(jí)!$B1:$B4',
'name': '成績(jī)占比'
})
chart.set_title({'name': '成績(jī)占比圖表'}) # 定義圖表title
book1.insert_chart('A10', chart) # 將 chart 放在 excel 表格對(duì)應(yīng)工作簿的 A10 位置
chart = excel.add_chart({'type': 'bar'})
chart.add_series({
'categories': '=學(xué)生等級(jí)!$A1:$A4',
'values': '=學(xué)生等級(jí)!$B1:$B4',
'name': '成績(jī)占比'
})
chart.set_title({'name': '成績(jī)占比圖表'})
book1.insert_chart('A25', chart)
chart = excel.add_chart({'type': 'pie'})
chart.add_series({
'categories': '=學(xué)生等級(jí)!$A1:$A4',
'values': '=學(xué)生等級(jí)!$B1:$B4',
'name': '成績(jī)占比'
})
chart.set_title({'name': '成績(jī)占比圖表'})
book1.insert_chart('A40', chart)
excel.close()
if __name__ == '__main__':
result = read()
write(result)
運(yùn)行結(jié)果如下:
原文鏈接:https://blog.csdn.net/weixin_42250835/article/details/124872483
相關(guān)推薦
- 2022-03-07 C語(yǔ)言中的rand()和rand_r()詳解_C 語(yǔ)言
- 2023-02-07 python正則表達(dá)式實(shí)現(xiàn)自動(dòng)化編程_python
- 2022-11-06 pytorch簡(jiǎn)單實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)功能_python
- 2022-12-25 sql中的if和else使用及說明_MsSql
- 2023-10-15 webrtc 測(cè)試video_loopback
- 2022-10-26 C#實(shí)現(xiàn)文件與字符串互轉(zhuǎn)的方法詳解_C#教程
- 2021-12-05 Linux系統(tǒng)運(yùn)行級(jí)別詳細(xì)介紹_Linux
- 2023-03-26 Redis?分片集群的實(shí)現(xiàn)_Redis
- 欄目分類
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支