溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python讀取Excel中的數據以及將輸入寫入Excel的方法

發布時間:2021-09-13 01:15:35 來源:億速云 閱讀:530 作者:chen 欄目:開發技術
# Python讀取Excel中的數據以及將輸入寫入Excel的方法

## 目錄
1. [引言](#引言)
2. [常用庫介紹](#常用庫介紹)
   - [openpyxl](#openpyxl)
   - [pandas](#pandas)
   - [xlrd/xlwt](#xlrdxlwt)
3. [讀取Excel數據](#讀取excel數據)
   - [使用openpyxl讀取](#使用openpyxl讀取)
   - [使用pandas讀取](#使用pandas讀取)
4. [寫入Excel數據](#寫入excel數據)
   - [使用openpyxl寫入](#使用openpyxl寫入)
   - [使用pandas寫入](#使用pandas寫入)
5. [高級操作](#高級操作)
   - [處理多個工作表](#處理多個工作表)
   - [樣式設置](#樣式設置)
6. [實戰案例](#實戰案例)
7. [總結](#總結)

---

## 引言
Excel是日常辦公中最常用的數據處理工具之一,而Python作為強大的編程語言,能夠高效地操作Excel文件。本文將詳細介紹如何使用Python讀取和寫入Excel數據,并對比不同庫的優缺點。

---

## 常用庫介紹

### openpyxl
- **特點**:支持`.xlsx`格式,讀寫操作全面,支持樣式修改
- **適用場景**:需要精細控制Excel文件(如樣式、公式等)
- **安裝**:`pip install openpyxl`

### pandas
- **特點**:基于DataFrame的便捷操作,適合數據分析
- **適用場景**:快速讀寫結構化數據
- **依賴庫**:需配合`openpyxl`或`xlrd`使用
- **安裝**:`pip install pandas`

### xlrd/xlwt
- **特點**:傳統庫(xlrd讀,xlwt寫),僅支持舊版`.xls`
- **注意**:xlrd 2.0+已取消對`.xls`以外的支持
- **安裝**:`pip install xlrd xlwt`

---

## 讀取Excel數據

### 使用openpyxl讀取
```python
from openpyxl import load_workbook

# 加載工作簿
wb = load_workbook('example.xlsx')
# 獲取活動工作表
sheet = wb.active

# 讀取單元格數據
print(sheet['A1'].value)  # 讀取A1單元格
print(sheet.cell(row=2, column=1).value)  # 讀取第2行第1列

# 遍歷所有行
for row in sheet.iter_rows(values_only=True):
    print(row)

注意事項: - values_only=True可直接獲取值而非單元格對象 - 大文件建議使用read_only模式

使用pandas讀取

import pandas as pd

# 讀取整個文件
df = pd.read_excel('example.xlsx', sheet_name='Sheet1')

# 讀取特定列
data = pd.read_excel('example.xlsx', usecols=['Name', 'Age'])

# 查看前5行
print(df.head())

優勢: - 自動處理表頭 - 支持條件過濾:df[df['Age'] > 20]


寫入Excel數據

使用openpyxl寫入

from openpyxl import Workbook

# 創建工作簿
wb = Workbook()
sheet = wb.active

# 寫入數據
sheet['A1'] = "姓名"
sheet.cell(row=1, column=2, value="年齡")

# 批量寫入
data = [['張三', 25], ['李四', 30]]
for row in data:
    sheet.append(row)

# 保存文件
wb.save('output.xlsx')

高級功能

# 合并單元格
sheet.merge_cells('A1:B1')

# 設置樣式
from openpyxl.styles import Font
sheet['A1'].font = Font(bold=True, color="FF0000")

使用pandas寫入

import pandas as pd

# 創建DataFrame
df = pd.DataFrame({
    'Name': ['張三', '李四'],
    'Age': [25, 30]
})

# 寫入文件
df.to_excel('output.xlsx', index=False, sheet_name='人員信息')

# 多sheet寫入
with pd.ExcelWriter('multi_sheet.xlsx') as writer:
    df.to_excel(writer, sheet_name='Sheet1')
    df.describe().to_excel(writer, sheet_name='統計信息')

參數說明: - index=False 不寫入行索引 - engine='openpyxl' 可指定寫入引擎


高級操作

處理多個工作表

# 獲取所有sheet名
print(pd.ExcelFile('example.xlsx').sheet_names)

# 讀取特定sheet
df = pd.read_excel('example.xlsx', sheet_name=1)  # 第二個sheet

# openpyxl操作多sheet
wb = load_workbook('example.xlsx')
print(wb.sheetnames)
sheet2 = wb['Sheet2']

樣式設置(openpyxl)

from openpyxl.styles import Alignment, Border, Side

# 設置對齊方式
sheet['A1'].alignment = Alignment(horizontal='center')

# 設置邊框
thin_border = Border(left=Side(style='thin'), 
                    right=Side(style='thin'),
                    top=Side(style='thin'),
                    bottom=Side(style='thin'))
sheet['B2'].border = thin_border

實戰案例

場景:處理學生成績單

import pandas as pd

# 讀取原始數據
df = pd.read_excel('grades.xlsx')

# 計算平均分
df['平均分'] = df[['語文', '數學', '英語']].mean(axis=1)

# 添加等級評價
df['等級'] = pd.cut(df['平均分'], 
                   bins=[0, 60, 80, 100],
                   labels=['C', 'B', 'A'])

# 保存結果
df.to_excel('processed_grades.xlsx', index=False)

總結

讀取速度 寫入速度 功能完整性 推薦場景
openpyxl 中等 中等 ★★★★★ 需要精細控制Excel文件
pandas ★★★★☆ 快速處理結構化數據
xlrd/xlwt ★★☆☆☆ 僅需處理舊版.xls文件

最佳實踐建議: 1. 優先使用pandas進行常規數據處理 2. 需要樣式調整時結合openpyxl 3. 處理大文件時啟用read_only/write_only模式

通過靈活運用這些工具,Python可以成為Excel自動化處理的超級助手,大幅提升工作效率。 “`

注:本文實際約2100字,可根據需要補充具體案例細節或擴展特定庫的深度用法。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女