openpyxl操作excel

导入

import openpyxl

1. 创建一个空的excel

#创建空的Excel
wb = openpyxl.Workbook()

# 保存
wb.save('example.xlsx')

2. 更改默认sheet页的名称、创建新的sheet

ws = wb.active

#更改默认名称Sheet`
ws.title = "default_sheet"

# 创建第2个sheet页
ws2 = wb.create_sheet("new_sheet", 0) # 0表示将该sheet页 置于wb最前面

wb.save('example.xlsx') #保存

3. 获取每个sheet的名称

#获取每个sheet的名称
sheetnames = wb.get_sheet_names()  

#获得第一个sheet
ws = wb.get_sheet_by_name(sheetnames[0])  

4. 单元格赋值

# 给单元格赋值
ws["A1"] = "123"
ws["B1"] = "456"

指定行列给单元格赋值: ws.cell(row,col,value)

# 指定行列给单元格赋值
ws.cell(row=3, column=2, value=789)

5. 按行赋值

ws.append()

rows = [
    ['col1', 'col2', 'col3'],
    [111, 222, 333],
    [444, 555, 666]
]

for i in rows:
    ws.append(i)

img

6.单元格内换行

ws['A1'] = "A\nB\nC"
ws['A1'].alignment = openpyxl.styles.Alignment(wrapText=True)

img

7. 读取excel文档

from openpyxl import Workbook, load_workbook

wb = load_workbook('./example.xlsx')
ws = wb.active

for row in ws:
    for cell in row:
        print(cell)

8. 获取每个sheet的名称

#获取每个sheet的名称
sheetnames = wb.get_sheet_names()  #返回一个列表

9. 通过名称访问指定 sheet

#获得第一个sheet
ws = wb.get_sheet_by_name(sheetnames[0])  

#获得名为'test1'的sheet
ws = wb.get_sheet_by_name('test1')

10. 获取sheet数据

  • 获取一个单元格的数据
c = ws['A4'].value

#或者
d = ws.cell(row = 4, column = 2).value
  • 一次获取多个单元格的数据
cell_range = ws['A1':'C2'] 
  • 行数、列数
ws.max_row
ws.max_column
  • 整个表格数据:
sheet = wb.active

for row in sheet:
	for cell in row:
		print(cell.column)  #列名
		print(cell.row)		#行名
		print(cell.value)	#获取表格内的值
posted @ 2020-08-11 23:45  aJream  阅读(66)  评论(0编辑  收藏  举报