python-⽂件⽬录操作之file⽂件读写-openpyxl操作excel
1.简介
Python官⽅库⼀般使⽤xlrd库来读取Excel⽂件,使⽤xlwt库来⽣成Excel⽂件,使⽤xlutils库复制和修改Excel⽂件,这三个库只⽀持到Excel2003。
第三⽅库openpyxl(可读写excel表),专门处理Excel2007及以上版本产⽣的xlsx⽂件,xls和xlsx之间转换容易。
注意:如果⽂字编码是“gb2312” 读取后就会显⽰乱码,请先转成Unicode
2.openpyxl基本操作
# openpyxl中有三个不同层次的类,Workbook是对⼯作簿的抽象,Worksheet是对表格的抽象,Cell是对单元格的抽象,每⼀个类都包含了许多属性和⽅法。
# 创建workbook对象:
import openpyxl
wb = openpyxl.Workbook('/Users/juvo/hello.xlxs')
(1)Workbook提供的部分常⽤属性如下:
# active: 获取当前活跃的Worksheet
# worksheets:以列表的形式返回所有的Worksheet(表格)
# read_only: 判断是否以read_only模式打开Excel⽂档
# write_only:判断是否以write_only模式打开Excel⽂档
# encoding: 获取⽂档的字符集编码
# properties:获取⽂档的元数据,如标题,创建者,创建⽇期等
# sheetnames:获取⼯作簿中的表(列表)
(2)Workbook提供的部分常⽤⽅法如下:
# get_sheet_names: 获取所有表格的名称(新版已经不建议使⽤,通过Workbook的sheetnames属性即可获取)
# get_sheet_by_name:通过表格名称获取Worksheet对象(新版也不建议使⽤,通过Worksheet[‘表名‘]获取)
# get_active_sheet: 获取活跃的表格(新版建议通过active属性获取)
# remove_sheet: 删除⼀个表格
# create_sheet: 创建⼀个空的表格
# copy_worksheet: 在Workbook内拷贝表格
(3)Worksheet提供的部分常⽤属性如下:
# title:表格的标题
# dimensions:表格的⼤⼩,这⾥的⼤⼩是指含有数据的表格的⼤⼩,即:左上⾓的坐标:右下⾓的坐标# max_row:表格的最⼤⾏
# min_row:表格的最⼩⾏
# max_column:表格的最⼤列
# min_column:表格的最⼩列
# rows:按⾏获取单元格(Cell对象) - ⽣成器
# columns:按列获取单元格(Cell对象) - ⽣成器
# freeze_panes:冻结窗格
# values:按⾏获取表格的内容(数据) - ⽣成器
(4)Workbook提供的部分常⽤⽅法如下:
# iter_rows:按⾏获取所有单元格,内置属性有(min_row,max_row,min_col,max_col)
# iter_columns:按列获取所有的单元格
# append:在表格末尾添加数据
# merged_cells:合并多个单元格
# unmerged_cells:移除合并的单元格
(5)cell对象知识点总结
# Cell对象⽐较简单,常⽤的属性如下:
# row:单元格所在的⾏
# column:单元格坐在的列
# value:单元格的值
# coordinate:单元格的坐标
⼀:写⼊excel⽂件
from openpyxl import Workbook
from openpyxl.utils import get_column_letter
# 在内存中创建⼀个workbook对象,⽽且会⾄少创建⼀个 worksheet
wb = Workbook()
#获取当前活跃的worksheet,默认就是第⼀个worksheet
ws = wb.active
#设置单元格的值,A1等于6(测试可知openpyxl的⾏和列编号从1开始计算),B1等于ll(row=1, column=1).value = 6
#从第2⾏开始,写⼊9⾏10列数据,值为对应的列序号A、B、C、D...
for row in range(2,11):
for col in range (1,11):
#可以使⽤append插⼊⼀⾏数据
ws.append(["我","你","她"])
#保存
wb.save(filename="/Users/budong/Desktop/a.xlsx")
⼆:读取excel⽂件
#实例:
from openpyxl import load_workbook
from openpyxl.styles import numbers
#读取Excel⽂件
file_path='/Users/juvo/sales.xlsx'
wb = load_workbook(filename = file_path)
#输出每个sheet的名字
print(wb.sheetnames)
#读取指定sheet的内容
# sheet1 = wb.get_sheet_by_name('201911')
sheet1 = wb['201911']
#输出指定sheet中指定单元格的内容
print(sheet1["C3"].value)
# _cell = ll('C3')
python怎么读入excelfor row in sheet1.iter_rows():
for cell in row:
# cell.number_format = '0.00E+00'
print(cell.number_format)
例1:
from openpyxl import load_workbook
#读取Excel⽂件
inwb = load_workbook("Auto1.xlsx")
#输出每个sheet的名字
print(inwb.sheetnames)
#读取指定sheet的内容
# sheet = _sheet_by_name('New shit')
sheet = inwb['New shit']
#输出指定sheet中指定单元格的内容
print(sheet["C3"].value)
#循环修改固定单元格的内容,不会修改其它单元格的内容
for sheetname _sheet_names():
sheet = inwb[sheetname]
#例2
from openpyxl import load_workbook
#打开⼀个workbook
wb = load_workbook(filename="/Users/budong/Desktop/a.xlsx") #获取当前活跃的worksheet,默认就是第⼀个worksheet
#ws = wb.active
#当然也可以使⽤下⾯的⽅法
#获取所有表格(worksheet)的名字
sheets = wb.get_sheet_names()
#第⼀个表格的名称
sheet_first = sheets[0]
#获取特定的worksheet
ws = wb.get_sheet_by_name(sheet_first)
#获取表格所有⾏和列,两者都是可迭代的
rows = ws.rows
columns = ws.columns
#迭代所有的⾏
for row in rows:
line = [col.value for col in row]
print line
#通过坐标读取值
ll('A1').value # A表⽰列,1表⽰⾏
ll(row=1, column=1).value
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论