1. 程式人生 > >Python 操作 excel

Python 操作 excel

一、概述

操作 excel 是程式設計師經常要遇到的場景。因為產品、運營的資料都是以這種格式儲存。所以,當程式設計師拿到這些資料肯定要解析,甚至需要把結果輸出成 excel 檔案。

下面就介紹如果用 Python 方面的讀、寫 excel 檔案。

二、openpyxl

A Python library to read/write Excel 2010 xlsx/xlsm files

藉助 Python 的三方庫 openpyxl ,讓操作 excel 變得簡單。

  1. 安裝:pip install openpyxl
  2. 文件:官方文件
  3. 示例程式碼:
# coding=utf-8
from openpyxl import Workbook
wb = Workbook()

# 選擇 sheet
ws = wb.active

# 設定值到某一個單元格(cells)
ws['A1'] = 42

# Python 的資料型別可以自動轉換
import datetime
ws['A2'] = datetime.datetime.now()

# 儲存檔案
wb.save("sample.xlsx") # 預設儲存到當前目錄下。檔名稱為 sample.xlsx

讀資料

from openpyxl import load_workbook

wb = load_workbook('sample.xlsx') # 讀取檔案
sheet = wb.get_sheet_by_name("Sheet") # 根據 sheet 名稱獲取,返回 Worksheet 物件
columns = sheet['A'] # 選擇一列
for fi_column in columns:
    # 遍歷這列的所有行
    print fi_column.value # 每一個fi_column是 Cell 物件

寫資料

from openpyxl import Workbook
wb = Workbook()
# 選擇 sheet
ws = wb.create_sheet()
# result_list ->[[第一行資料], [第二行資料], ...]
for fi_result in result_list:
    ws.append(fi_result) # 每行的資料
# 儲存檔案
wb.save("test.xlsx")

更多 API

  • Worksheet.columns():獲取 sheet 所有列
  • Worksheet.iter_cols():通過列截斷
  • Worksheet.rows():獲取 sheet 所有行
  • Worksheet.iter_rows():通過行截斷
  • Worksheet.cell():操作單元格
  • Workbook.save():儲存檔案
  • workbook.Workbook.create_sheet():建立新的 sheet
  • Workbook.sheetnames():獲取 sheet 名稱