处理Excel使用的 openpyxl
第三方库,使用 pip3 install openpyxl
安装;
‘ | Python | openpyxl |
---|---|---|
Version | 3.6.2 | 2.5.0 |
先明确几个对象:文档对象Workbook
、工作表对象、单元格对象
;
名称 | 含义 |
---|---|
openpyxl.Workbook() | 创建工作簿 |
openpyxl.load_workbook() | 打开工作簿 |
workbook.save() | 文档的保存 |
workbook.sheetnames | 获取工作簿中的所有工作表名称list |
workbook.create_sheet() | 工作表的创建 |
workbook.remove() | 工作表的删除 |
workbook[‘sheet_name’] | 获取工作表 |
workbook.active | 获取当前选中的工作表 |
sheet.title | 获取工作表的名称 |
sheet[‘A1’] sheet.cell(row=m, column=n) |
单元格的获取 |
sheet.max_row | 获取当前最大的行数 |
sheet.max_column | 获取当前最大的列数 |
sheet.coordinate | 单元格的位子坐标 |
column_index_from_string(‘letter’) | 列字母转换成数字 |
get_column_letter(num) | 列数字转换成字母 |
sheet[‘A1’:’C3’] | 单元格的块选中 |
sheet.dimensions | 表的大小 |
cell.value | 获取单元格的值 |
cell.row | 获取指定单元格的行坐标 |
cell.column | 获取指定单元格的列坐标 |
import openpyxl
import os
from openpyxl.utils import get_column_letter, column_index_from_string
#1.加载工作簿
wb = openpyxl.load_workbook('example.xlsx')
print('xlsx type: ', type(wb))
#2.获取工作簿中所有表名的列表
sheet_names = wb.sheetnames
print(sheet_names)
#3.获取指定的工作表Sheet1
sheet = wb['Sheet1']
print('sheet type: ', type(sheet))
#4.获取工作表名
print('Sheet title: ', sheet.title)
#5.获取当前选中的工作表
active_sheet = wb.active
print('active_sheet: ', active_sheet.title)
#6.单元格的获取(方法一)
A1 = sheet['A1']
print(A1)
print('value: ', A1.value)
print('coordinate =', A1.coordinate, '; row =', A1.row, '; column =', A1.column)
#7.单元格的获取(方法二)
B1 = sheet.cell(row=1, column=2)
print('B1: ', B1)
print('B1: ', B1.value)
#8. 表格的大小
max_row = sheet.max_row #数字
max_column = sheet.max_column #数字
dimensions = sheet.dimensions
print('dimensions =', dimensions, ' max_row =', max_row, ' max_column =', max_column)
#9.字母转换到数字
letter = get_column_letter(3)
print(letter)
#10.数字转换到字母
index = column_index_from_string('C')
print(index)
#11.打印全表
cells = [get_column_letter(column) + str(row) for column in range(1, max_column) for row in range(1, max_row) ]
print(cells)
#12.从表中取得行跟列(切片)
tuple = sheet['A1':'C3']
print(tuple)
print(type(list)) #tuple
for rowOfCellObjects in sheet['A1':'C3']:
print(rowOfCellObjects)
#13.访问特定行或列的单元格的值
rows = sheet.rows #rows是一个生成器
print(list(rows)[1]) #rows通过list转换
columns = sheet.columns
print(list(columns)[2][:5]) #取第3列前5个元素
#14.创建工作簿
workbook = openpyxl.Workbook()
workbook.save('test.xlsx')
#15.创建工作表
workbook.create_sheet()
workbook.create_sheet(index=0, 'table1')
print(workbook.sheetnames)
#16.删除工作表
workbook.remove(workbook[workbook.sheetnames[0]])
print('remove sheet: ', workbook.sheetnames)
#17.工作表重命名
sheet.title = 'rename_table1'
print('rename sheet: ', workbook.sheetnames)
#18.设置表格的列宽
sheet.column_dimensions['B'].width = 20
#19.设置表的行高
sheet.row_dimensions[2].height = 30