Python實現將Excel某范圍單元格內容截圖
背景
在日常辦公中,我經常需要將批量的Excel中的某個范圍單元格進行選中,然后在轉為圖片格式
1、庫的介紹
openpyxl
Openpyxl是一個強大的Python庫,主要用于讀取、寫入和操作Excel文件(特別是.xlsx格式)。它提供了一組功能豐富的API,支持Excel 2010及更高版本的文件格式,使得在編程中處理Excel文件變得非常容易。 Openpyxl的主要特點和功能包括:
1、支持.xlsx格式:Openpyxl主要用于處理Excel 2010及更新版本的.xlsx文件。
2、讀寫Excel文件:用戶可以使用Openpyxl讀取現有的Excel文件,獲取數據,修改數據,并保存到新的文件中。
3、操作單元格:Openpyxl允許用戶按行、列或具體的單元格進行數據的讀取和寫入。
4、創(chuàng)建和修改工作表:用戶可以創(chuàng)建新的工作表,復制和刪除現有的工作表,以及設置工作表的屬性等。
5、樣式設置:Openpyxl允許用戶設置單元格的字體、顏色、邊框等樣式。
6、圖表和公式:用戶可以通過Openpyxl創(chuàng)建圖表、添加公式等。
7、支持數字和日期格式:Openpyxl能夠正確處理數字和日期格式,確保在Excel中顯示正確的格式。
在Openpyxl中,有三個主要的對象:Workbook、Worksheet和Cell。Workbook代表一個Excel文檔,Worksheet代表表格,Cell則代表單元格。這些對象都包含了許多屬性和方法,方便用戶進行各種操作。
安裝和導入Openpyxl也相對簡單。用戶可以使用pip進行安裝,然后在Python程序中通過import語句導入整個庫或特定的模塊和函數。
總的來說,Openpyxl是一個功能強大、易于使用的Python庫,可以大大提高處理Excel文件的效率。無論是自動化處理大量數據,還是創(chuàng)建漂亮的報告,Openpyxl都是一個強大的工具。
2、庫的安裝
庫 | 用途 | 安裝 |
---|---|---|
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 | 獲取絕對路徑 | 內置庫無需安裝 |
3、核心代碼
提取數據
# 解析單元格范圍 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:]) # 提取數據 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 # 設置字體為微軟雅黑 rcParams['font.family'] = 'Microsoft YaHei' # 讀取Excel文件 wb = openpyxl.load_workbook(r"C:\Users\小莊的Y9000P\Desktop\數據1.xlsx") sheet = wb.active # 用戶輸入單元格范圍 start_cell = "A1" end_cell = "C3" # 解析起始和結束單元格的行列 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:]) # 提取單元格內容 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') # 設置字體大小 for (i, j), cell in table.get_celld().items(): cell.set_fontsize(12) # 設置字體大小為12 cell.set_edgecolor('black') # 設置邊框顏色 # 保存為圖片 plt.savefig('output.png', bbox_inches='tight', dpi=300) plt.show()
到此這篇關于Python實現將Excel某范圍單元格內容截圖的文章就介紹到這了,更多相關Python Excel單元格截圖內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python?pdfplumber庫批量提取pdf表格數據轉換為excel
這篇文章主要為大家介紹了python使用pdfplumber庫批量提取pdf表格數據轉換為excel格式的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06