Python读写excel文件
操作excel相关模块:
- xlrd:读取excel,支持xls和xlsx格式
- xlwt:创建、写入excel,不支持xlsx
- xlutils:在xlrd和xlwt中的,对已存在的文件进行修改
- openpyxl:主要是针对xlsx格式的excel进行读写
操作excel的相关对象:
- WorkBook:工作蒲对象
- Sheet:sheet表对象
- Cell:单元格对象
安装库:
pip install xlrd
pip install xlwt
pip install openpyxl
1、创建并写入
import xlwt
FILENAME = 'test.xls'
# 创建一个Excel表格文档
excel = xlwt.Workbook()
# 添加一个名为sheet1的sheet
sheet = excel.add_sheet('sheet1')
'''sheet.write(arg1,arg2, arg3)参数说明:
arg1:行地址
arg2:列地址
arg3:要写入的数据
'''
# 写入数据
sheet.write(0, 0, '列1')
sheet.write(0, 1, '列2')
sheet.write(0, 2, '列3')
for row in range(1, 10):
for col in range(0, 3):
sheet.write(row, col, row + col)
# 保存文件
excel.save(FILENAME)
2、读取
import xlrd
excel = xlrd.open_workbook(FILENAME) # 打开一个Excel表
excel.sheets() # 得到全部sheet表
sheet = excel.sheets()[0] # 得到第一个sheet表
# 读取第一、二、三行
row_1 = sheet.row_values(0)
row_2 = sheet.row_values(1)
row_3 = sheet.row_values(2)
# 读取第一、二、三列
col_1 = sheet.col_values(0)
col_2 = sheet.col_values(1)
col_3 = sheet.col_values(2)
3、openpyxl
import openpyxl # 导入包
wb = openpyxl.Workbook() # 创建
wb.create_sheet('sheet1') # 创建sheet表
wb.save('test.xlsx') # 保存
wb = openpyxl.load_workbook('helloworld.xlsx') # 打开
ws = wb['sheet1'] # 选取sheet表
print(wb.sheetnames) # 得到所有sheet表名称
print(ws.max_row) # 得到最大行数
print(ws.max_column) # 得到最大列数
print(ws.cell(1, 1).value) # 读取第一行第一列的表格数据,注意cell函数返回的是Cell对象,这个对象中的value元素才是真正的单元格数据
rows = list(ws.rows) # 按行读取数据,读取所有行
cols = list(ws.columns) # 按列读取数据,读取所有列
for line in rows: # 遍历所有行
for item in line: # 遍历一行
print(item.value, end=',')
print()
for col in cols: # 遍历所有列
for item in col: # 遍历一列
print(item.value, end=',')
print()
ws.cell(row=1, column=1, value='abc') # 第一行第一列的单元格写入abc
ws.cell(1, 2, 'abc') # 第一行第二列的单元格写入abc
wb.close() # 如果工作簿文件打开,则关闭。只用于以只读或只写模式打开的文件。
del wb['Sheet1'] # 删除名称为Sheet1这个表
wb.remove(wb['Sheet2']) # 使用函数方式删除Sheet2这个表
wb.save(input_filename) # 如果对excel文件进行了修改,需要保存,否则更改会无效
ends…