Python(应用) — Excel操作(一)

目录

  1. Excel文档的读写
    1. 工作簿的创建
    2. 工作表的获取
    3. 从表中获取单元格
    4. 列字母和数字之间的转换
    5. 从表中获取行和列
    6. 工作表的创建和删除
    7. 文档的保存
  2. 单元格的拆分、合并
  3. 冻结窗口
  4. 公式
  5. 图表
  6. 样式
    1. 字体
    2. 颜色
    3. 背景
    4. 行高和列宽

背景

处理Excel使用的 openpyxl 第三方库,使用 pip3 install openpyxl 安装;

Python openpyxl
Version 3.6.2 2.5.0

Excel文档的读写

先明确几个对象:文档对象Workbook、工作表对象、单元格对象

常用Api

名称 含义
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

你可能感兴趣的:(Python,&,爬虫)