openpyxl 基礎操做

特別提醒:
openpyxl不支持對xls文件的處理,且對原文件的樣式保存很是不友好,若是你有保存原文件樣式要求的話,建議使用xlwings替代openpyxlsegmentfault

基礎操做:

直接複製代碼到編輯器,邊看邊運行,理解起來估計還快些~app

from openpyxl import load_workbook
from openpyxl import Workbook

# ===============  第一部分,建立並寫入數據 =====================
# 建立一個test.xlsx表,並寫入數據
# wb = Workbook()
# ws = wb.active
# for row in range(1,4):
#     ws.append([row*10+1,row*10+2,row*10+3])
# wb.save('data/test.xlsx')
# exit()

# 導入一個已存在的test.xlsx
load_wb = load_workbook('data/test.xlsx')
# 打開活動的工做薄的活動工做簿,或者指定的工做簿
load_ws = load_wb.active
# load_ws = load_wb.get_sheet_by_name("Sheet")

# ============== 第二部分,插入、刪除行和列 ========================
# 1-①在第二行前插入1行
# load_ws.insert_rows(2,1)
# 1-②從第二行開始刪除1行
# load_ws.delete_rows(2,1)
# 2-①在第二列前插入2列
# load_ws.insert_cols(2,2)
# 2-②從第二列開始刪除1列
# load_ws.delete_cols(2,1)

# 獲取總行數(存在數據)
# load_wb.save('data/test.xlsx')
# rows = load_ws.max_row
# cols = load_ws.max_column
# print('該表格總共有:'+str(rows)+' 行')
# print('該表格總共有:'+str(cols)+' 列')
# exit()

# ============== 第三部分,獲取單元格的值 ========================
# 獲第三行第一列的值,兩種方法都行
# 方法一,根據單元格名稱獲取
# v = load_ws['A3'].value
# 方法二,根據橫縱座標值來獲取
# v = load_ws.cell(3,1).value
# print(v)
# 獲取所有的單元格
# rows = load_ws.rows
# for row in rows:
#     for cell in row:
#         if(cell.value==21):
#             print(dir(cell))
#             #可用屬性 col_idx、column、row、value
#             print(cell.col_idx)
#             print(cell.column)
#             print(cell.row)


# ============== 第三部分,修改指定單元格的值 ========================
# load_ws['A2'] = 'xx'
# load_wb.save('data/test.xlsx')
# exit()

# ============== 第四部分,合併單元格 ========================
# load_ws.merge_cells('A2:B2')
# load_wb.save('data/test.xlsx')
# exit()

# ============== 第五部分,設置樣式(文字居左) ========================
# from openpyxl.styles import Alignment
# # 水平居右,垂直居中,自動換行
# load_ws['A2'].alignment = Alignment(horizontal='right',vertical='center',wrap_text=True)
# # 自動換行
# load_ws['G1'].alignment = Alignment(wrap_text=True)
#
# from openpyxl.styles import Font
# # 設置字體爲「宋體」,大小爲11,bold爲加粗,italic爲斜體,strike爲刪除線,顏色爲黑色
# font = Font(u'宋體',size = 11,bold=True,italic=True,strike=True,color='000000')
# load_ws['A1'].font = font

# from openpyxl.styles import PatternFill
# # 設置背景色爲 #1874CD
# fill = PatternFill("solid", fgColor="1874CD")
# load_ws['C3'].fill = fill

# 第2行行高
load_ws.row_dimensions[2].height = 40
# C列列寬
load_ws.column_dimensions['C'].width = 30

load_wb.save('data/test.xlsx')
exit()


# ============== 第六部分,其它 ========================
# # 打印設置
# load_ws.print_options.horizontalCentered = True
# load_ws.print_options.verticalCentered = True
# load_ws.print_area = 'A1:I5'
# load_wb.save('data/test.xlsx')

from openpyxl.utils import get_column_letter, column_index_from_string
# 根據列的數字返回字母
print(get_column_letter(2))  # B
# 根據字母返回列的數字
print(column_index_from_string('D'))  # 4
相關文章
相關標籤/搜索