# 一、读取xls——xlrd
# 1.安装
pip install xlrd
# 2.使用示例
import xlrd
# 打开Excel
data = xlrd.open_workbook(file_path)
# 打开第一张表
table = data.sheets()[0]
# 获取表的行数
nrows = table.nrows
# 循环逐行打印
for row_index in range(nrows):
# 跳过第一行(大多数为表头)
if row_index == 0:
continue
# 获取每一行的值,类型为 list
row_value = table.row_values(row_index)
print(row_value)
# 3.常用函数
# ① 表相关
# 通过索引顺序获取表对象
table = data.sheets()[sheet_index]
table = data.sheet_by_index(sheet_index))
# 通过表名称名称获取表对象
table = data.sheet_by_name(sheet_name)
# 返回工作簿中所有工作表的名字
names = data.sheet_names()
# 检查某个sheet是否导入完毕
data.sheet_loaded(sheet_name or sheet_indx)
# ② 行相关
# 返回该表中的有效行数
nrows = table.nrows
# 返回由该行中所有的单元格对象组成的列表
table.row(row_index)
table.row_slice(row_index)
# 返回由该行中所有单元格的数据组成的列表
table.row_values(row_index, start_colx = 0, end_colx = None)
#返回该列的有效单元格长度
table.row_len(row_index)
# ③ 列相关
# 返回列表的有效列数
ncols = table.ncols
#返回由该列中所有的单元格对象组成的列表
table.col(colx, start_rowx=0, end_rowx=None)
table.col_slice(colx, start_rowx=0, end_rowx=None)
# 返回由该列中所有单元格的数据组成的列表
table.col_values(colx, start_rowx = 0, end_rowx = None)
# ④ 单元格相关
# 返回单元格对象
table.cell(rowx,colx)
# 返回单元格中的值
table.cell_value(rowx,colx)
# 二、写入xls——xlwt
# 1.安装
pip install xlwt
# 2.使用示例
import xlwt
# 创建工作簿,默认编码为 ASCII,可自定义为其他编码,如下编码为 utf-8
workbook = xlwt.Workbook(encoding = 'utf-8')
# 添加工作表
worksheet = workbook.add_sheet('sheet1')
# 写入数据
worksheet.write(0, 0, label = 'test')
# 保存文件到 file_path
workbook.save('test.xls')
# 3.常用函数
# 通过表名添加表
worksheet = workbook.add_sheet(sheet_name)
# 保存文件
workbook.save(filename_or_stream)
# 写入数据,r为行数,c为列数,label为数据,style 为该单元格样式
worksheet.write(r, c, label='', style=<xlwt.Style.XFStyle object>)
# 三、读写xlsx——openpyxl
# 1.安装
pip install openpyxl
# 2.使用示例
# ① 读取
from openpyxl import load_workbook
# 打开Excel
wb = load_workbook(file_path)
# 获取当前被激活的工作薄
sheet = wb.active
# 获取表的行数和列数
nrows = sheet.max_row
ncols = sheet.max_cols
# 循环逐个打印
# 下标从1开始计算,从2开始循环略过表头
for row_index in range(2, nrows + 1):
for col_index in range(1,ncols + 1):
cell = sheet.cell(row=row_index, column=col_index).value
print(cell)
# ② 写入
from openpyxl import Workbook
# 创建工作簿
wb = Workbook()
# 创建工作表
sheet = wb.create_sheet('Sheet1', 0)
# 定义标题行(下标从1开始)
sheet.cell(1, 1, 'username')
sheet.cell(1, 2, 'phone')
sheet.cell(1, 3, 'remarks')
# 将数据以行的形式添加到工作薄中,也可以用cell()循环插入
insert_data = [
['test1', '123456', '测试'],
['test2', '123457', '测试'],
['test3', '123458', '测试']
]
for item in insert_data:
sheet.append(row)
# 3. 保存工作表
wb.save('test.xlsx')
# 3.常用函数
# ① 表相关
# 新建工作表
# 默认插入到最后
wb.create_sheet(sheet_name)
# 插入到最前
wb.create_sheet(sheet_name, 0)
# 返回一个工作表对象
wb[sheet_name]
wb.get_sheet_by_name(sheet_name)
# 返回所有表名
wb.sheetnames
# ② 行列相关
# 返回最大行
sheet.max_row
# 返回所有行,可循环访问
sheet.rows
# 返回最大列
sheet.max_column
# 返回所有列行,可循环访问
sheet.columns
# ③ 单元格相关
# 返回单元格的值
sheet.cell(row=row_index, column=col_index).value
# 设置单元格的值
sheet.cell(row_index, col_index).value = 'test'
sheet.cell(row_index, col_index, 'test')
# 四、读写csv——csv
csv 官方文档(python2.7) csv 官方文档(python3.8)
# 1.使用示例
# ① 读取
import csv
# 打开文件
f = open('test.csv', 'r')
with f:
# 读取文件
reader = csv.reader(f)
for row in reader:
for item in row:
print(item)
# ② 写入
import csv
insert_data = [
['test1', '123456', '测试'],
['test2', '123457', '测试'],
['test3', '123458', '测试']
]
# 打开文件
f = open('test2.csv', 'w')
with f:
# 写入数据
writer = csv.writer(f)
for row in insert_data:
writer.writerow(row)
# 2. 常用函数
# 常规读取
reader = csv.reader(f)
# 根据分隔符(如'|')读取
reader = csv.reader(f, delimiter='|')
# 读取后映射成字典
reader = csv.DictReader(f)
for row in reader:
print(row['username'], row['phone'], row['remarks'])
# 常规写入
writer = csv.writer(f)
# 按行写入
writer.writerow(row)
# 一次性写入所有行
writer.writerows(insert_data)
# 用python字典写入 fieldnames 为表头
writer = csv.DictWriter(f, fieldnames=['username', 'phone', 'remarks'])
writer.writeheader()
writer.writerow({'username' : 'test1', 'phone': '123456', 'remarks': '测试'})