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…