文章目錄
- 安裝
- 安裝Python3
- 安裝 openpyxl
- 基礎操作
- 1. 引入
- 2. 創建工作簿和工作表
- 3. 寫入數據
- 4. 保存工作簿
- 5. 加載已存在的Excel
- 6. 讀取單元格的值
- 7. 選擇工作表
- 樣式和格式化
- 1. 引入
- 2. 設置字體
- 3. 設置邊框
- 4. 填充
- 5. 設置數字格式
- 6. 數據驗證
- 7. 公式操作
- 性能優化
- 1. read_only/write_only
- 2. 遍歷單元格
openpyxl 是一個用于在 Python 中讀取和寫入 Excel 文件的優秀庫。
它支持 .xlsx 和 .xlsm 格式,非常適合在 Ubuntu 系統上進行 Excel 數據處理和自動化操作。
本篇博客將介紹一些常用的 openpyxl 命令。
安裝
安裝Python3
首先,你需要安裝 openpyxl 和 Python。在 Ubuntu 上,可以通過以下命令安裝:
sudo apt install python3
安裝 openpyxl
pip3 install openpyxl
基礎操作
1. 引入
from openpyxl import Workbook # 新建文件的引入
from openpyxl import load_workbook # 加載已存在文件的引入
2. 創建工作簿和工作表
wb = Workbook() # 創建一個新的工作簿
ws = wb.active # 獲取活動工作表wb.create_sheet("Sheet2") # 創建一個新的工作表并命名
ws.title = "NewSheet" # 修改工作表名
3. 寫入數據
ws['A1'] = 'Hello, World!'
ws['B1'] = 42
ws['C1'] = 3.14
cell = ws.cell(row=1, column=1, value="New Value")
4. 保存工作簿
wb.save('example.xlsx')
5. 加載已存在的Excel
wb = load_workbook('example.xlsx')
ws = wb.active
6. 讀取單元格的值
cell_a1 = ws['A1'].value
cell_b1 = ws['B1'].value
cell_c1 = ws['C1'].valueprint(f"A1: {cell_a1}, B1: {cell_b1}, C1: {cell_c1}")
7. 選擇工作表
ws1 = wb.worksheets[0] # 通過索引選擇工作表
ws2 = wb["Sheet2"] # 通過名稱選擇工作表
樣式和格式化
1. 引入
from openpyxl.styles import Font, Alignment # 樣式操作的引入
2. 設置字體
font = Font(name='Arial', size=14, bold=True, italic=False)
ws['A1'].font = font
3. 設置邊框
border = Border(left=Side(border_style='thin'),right=Side(border_style='thin'),top=Side(border_style='thin'),bottom=Side(border_style='thin'))
ws['A1'].border = border
4. 填充
fill = PatternFill(start_color="FF0000", end_color="FF0000", fill_type="solid")
ws['A1'].fill = fill
5. 設置數字格式
ws['B1'].number_format = '0.00%' # 百分比格式
ws['C1'].number_format = 'YYYY-MM-DD' # 日期格式
6. 數據驗證
from openpyxl.worksheet.datavalidation import DataValidationdv = DataValidation(type="list", formula1='"Apple,Banana,Cherry"', allow_blank=True) # 創建數據驗證對象ws.add_data_validation(dv)
dv.add('A1') # 將數據驗證應用到單元格
7. 公式操作
可以在單元格中插入公式:
ws['D1'] = "=SUM(A1:A3)"
性能優化
1. read_only/write_only
對于大的 Excel 文件,可以使用read_only來提高讀取效率, 使用 write_only 來優化寫入性能
from openpyxl import load_workbookwb = load_workbook('example.xlsx', read_only=True) # 使用只讀模式加載工作簿
from openpyxl import Workbookwb = Workbook(write_only=True) # 使用寫入模式創建工作簿
ws = wb.create_sheet()
2. 遍歷單元格
可以使用 .rows 和 .columns 遍歷工作表中的行和列:
for row in ws.iter_rows(min_row=1, max_row=5, min_col=1, max_col=3):for cell in row:print(cell.value, end=" ")