記錄一下python對excel數(shù)據(jù)的處理和操作
數(shù)據(jù)讀取
讀取整個(gè)表
# 可以是絕對路徑或相對路徑
work_book = openpyxl.load_workbook('xx.xlsx')
讀取單個(gè)sheet
# 第一個(gè)可用
work_sheet = work_book.active
# sheet name來取
work_sheet2 = work_book.create_sheet('sheet2')
work_sheet3 = work_book['sheet3']
獲取行列,返回?cái)?shù)組(行是數(shù)字。列是字母笑窜,格式與excel相同)
colC = work_sheet['C']
row6 = work_sheet[6]
# A列 到B列
col_range = work_sheet['A:B']
# 2行到6行
row_range = work_sheet[2:6]
獲取某一個(gè)cell以及cell的值
note: 行從1開始
cell_A1 = work_sheet['A1']
cell_A1 = work_sheet.cell(row = 1, column = A)
value = cell_A1.value
獲取最大行列
max_column = work_sheet.max_column
max_row = work_sheet.max_row
列字母和數(shù)字轉(zhuǎn)換
# 用到 openpyxl.utils lib
from openpyxl.utils import get_column_letter, column_index_from_string
get_column_letter(2)
column_index_from_string('A')
數(shù)據(jù)寫入
新建work book
new_work_book = openpyxl.Workbook()
單元格賦值
new_sheet = new_work_book.active
new_sheet['A1'].value = 'value'
寫入本地文件
new_work_book.save('result.xlsx')
其他方法
遍歷全部行或列
for row in range(1, sheet.max_row):
print(sheet[row])
字符串是否包含xx
string.find('xx') >= 0