Python實(shí)現(xiàn)將Excel某范圍單元格內(nèi)容截圖
背景
在日常辦公中,我經(jīng)常需要將批量的Excel中的某個(gè)范圍單元格進(jìn)行選中,然后在轉(zhuǎn)為圖片格式
1、庫(kù)的介紹
openpyxl
Openpyxl是一個(gè)強(qiáng)大的Python庫(kù),主要用于讀取、寫入和操作Excel文件(特別是.xlsx格式)。它提供了一組功能豐富的API,支持Excel 2010及更高版本的文件格式,使得在編程中處理Excel文件變得非常容易。 Openpyxl的主要特點(diǎn)和功能包括:
1、支持.xlsx格式:Openpyxl主要用于處理Excel 2010及更新版本的.xlsx文件。
2、讀寫Excel文件:用戶可以使用Openpyxl讀取現(xiàn)有的Excel文件,獲取數(shù)據(jù),修改數(shù)據(jù),并保存到新的文件中。
3、操作單元格:Openpyxl允許用戶按行、列或具體的單元格進(jìn)行數(shù)據(jù)的讀取和寫入。
4、創(chuàng)建和修改工作表:用戶可以創(chuàng)建新的工作表,復(fù)制和刪除現(xiàn)有的工作表,以及設(shè)置工作表的屬性等。
5、樣式設(shè)置:Openpyxl允許用戶設(shè)置單元格的字體、顏色、邊框等樣式。
6、圖表和公式:用戶可以通過(guò)Openpyxl創(chuàng)建圖表、添加公式等。
7、支持?jǐn)?shù)字和日期格式:Openpyxl能夠正確處理數(shù)字和日期格式,確保在Excel中顯示正確的格式。
在Openpyxl中,有三個(gè)主要的對(duì)象:Workbook、Worksheet和Cell。Workbook代表一個(gè)Excel文檔,Worksheet代表表格,Cell則代表單元格。這些對(duì)象都包含了許多屬性和方法,方便用戶進(jìn)行各種操作。
安裝和導(dǎo)入Openpyxl也相對(duì)簡(jiǎn)單。用戶可以使用pip進(jìn)行安裝,然后在Python程序中通過(guò)import語(yǔ)句導(dǎo)入整個(gè)庫(kù)或特定的模塊和函數(shù)。
總的來(lái)說(shuō),Openpyxl是一個(gè)功能強(qiáng)大、易于使用的Python庫(kù),可以大大提高處理Excel文件的效率。無(wú)論是自動(dòng)化處理大量數(shù)據(jù),還是創(chuàng)建漂亮的報(bào)告,Openpyxl都是一個(gè)強(qiáng)大的工具。
2、庫(kù)的安裝
庫(kù) | 用途 | 安裝 |
---|---|---|
openpyxl | Excel的讀寫 | pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple/ |
matplotlib | 圖片生成 | pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple/ |
os | 獲取絕對(duì)路徑 | 內(nèi)置庫(kù)無(wú)需安裝 |
3、核心代碼
提取數(shù)據(jù)
# 解析單元格范圍 start_col = openpyxl.utils.column_index_from_string(start_cell[0]) start_row = int(start_cell[1:]) end_col = openpyxl.utils.column_index_from_string(end_cell[0]) end_row = int(end_cell[1:]) # 提取數(shù)據(jù) data = [[sheet.cell(row=i, column=j).value or "" for j in range(start_col, end_col + 1)] for i in range(start_row, end_row + 1)] # 創(chuàng)建圖形 fig, ax = plt.subplots() ax.axis('tight') ax.axis('off') table = ax.table(cellText=data, loc='center', cellLoc='center')
截圖
# 保存圖片 file_name = os.path.splitext(os.path.basename(file_path))[0] output_path = os.path.join(output_folder, f"{file_name}.png") plt.savefig(output_path, bbox_inches='tight', dpi=300)
4、普通版
import openpyxl import matplotlib.pyplot as plt from matplotlib import rcParams # 設(shè)置字體為微軟雅黑 rcParams['font.family'] = 'Microsoft YaHei' # 讀取Excel文件 wb = openpyxl.load_workbook(r"C:\Users\小莊的Y9000P\Desktop\數(shù)據(jù)1.xlsx") sheet = wb.active # 用戶輸入單元格范圍 start_cell = "A1" end_cell = "C3" # 解析起始和結(jié)束單元格的行列 start_col = openpyxl.utils.column_index_from_string(start_cell[0]) start_row = int(start_cell[1:]) end_col = openpyxl.utils.column_index_from_string(end_cell[0]) end_row = int(end_cell[1:]) # 提取單元格內(nèi)容 data = [[sheet.cell(row=i, column=j).value for j in range(start_col, end_col + 1)] for i in range(start_row, end_row + 1)] # 創(chuàng)建圖形和軸 fig, ax = plt.subplots() # 隱藏軸 ax.axis('tight') ax.axis('off') # 創(chuàng)建表格 table = ax.table(cellText=data, loc='center', cellLoc='center') # 設(shè)置字體大小 for (i, j), cell in table.get_celld().items(): cell.set_fontsize(12) # 設(shè)置字體大小為12 cell.set_edgecolor('black') # 設(shè)置邊框顏色 # 保存為圖片 plt.savefig('output.png', bbox_inches='tight', dpi=300) plt.show()
到此這篇關(guān)于Python實(shí)現(xiàn)將Excel某范圍單元格內(nèi)容截圖的文章就介紹到這了,更多相關(guān)Python Excel單元格截圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)數(shù)據(jù)透視表詳解
今天小編就為大家分享一篇用Python實(shí)現(xiàn)數(shù)據(jù)的透視表的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-10-10Python實(shí)現(xiàn)人工蜂群算法的示例代碼
ABC,即人工蜂群算法(Artificial?Bee?Colony?Algorithm),由Karaboga等人提出,這篇文章主要介紹了人工蜂群算法的概念與Python實(shí)現(xiàn),感興趣的可以了解一下2023-08-08Python實(shí)戰(zhàn)之實(shí)現(xiàn)康威生命游戲
這篇文章主要介紹了Python實(shí)戰(zhàn)之實(shí)現(xiàn)康威生命游戲,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04python中l(wèi)ower函數(shù)實(shí)現(xiàn)方法及用法講解
在本篇文章里小編給大家整理的是一篇關(guān)于python中l(wèi)ower函數(shù)實(shí)現(xiàn)方法及用法講解內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。2020-12-12Python中使用moviepy進(jìn)行視頻分割的實(shí)現(xiàn)方法
MoviePy是一個(gè)關(guān)于視頻編輯的python庫(kù),主要包括:剪輯,嵌入拼接,標(biāo)題插入,視頻合成(又名非線性編輯),視頻處理,和自定制效果。本文重點(diǎn)給大家介紹Python中使用moviepy進(jìn)行視頻分割的實(shí)現(xiàn)方法,需要的朋友一起看看吧2021-12-12python?pdfplumber庫(kù)批量提取pdf表格數(shù)據(jù)轉(zhuǎn)換為excel
這篇文章主要為大家介紹了python使用pdfplumber庫(kù)批量提取pdf表格數(shù)據(jù)轉(zhuǎn)換為excel格式的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Python腳本實(shí)現(xiàn)抓取指定網(wǎng)站上的所有圖片
對(duì)于開發(fā)者、數(shù)據(jù)分析師以及研究人員而言,從網(wǎng)頁(yè)中提取有價(jià)值的信息是一項(xiàng)至關(guān)重要的技能,本文將詳細(xì)介紹如何使用Python編寫一個(gè)腳本來(lái)自動(dòng)抓取指定網(wǎng)站上的所有圖片,需要的可以參考下2024-10-10