该部分代码较多,详细讲解以注释为准:
#!/bin/usr/env python3
# -*- coding: utf-8 -*-
# operate_excel.py
import xlrd
from xlutils.copy import copy
class OperateExcel:
# 构造函数初始化的时候会加载成员变量和类方法
def __init__(self, file_path=None, sheet_id=None):
# 如果传入了excel文件路径则使用该路径,否则使用默认的excel文件路径
# 如果传入sheet页的值则使用传入的值,否则默认是第一sheet页
if file_path:
self.file_path = file_path
self.sheet_id = sheet_id
else:
self.file_path = '../data/test_data.xlsx'
self.sheet_id = 0
self.table = self.get_sheet()
# 获取excel的sheet页
def get_sheet(self):
# 打开excel文件读取数据
data = xlrd.open_workbook(self.file_path)
table = data.sheets()[self.sheet_id]
return table
# 获取sheet页的行数和列数
def get_lines(self):
sheet_lines = self.table
return sheet_lines.nrows
return sheet_lines.ncols
# 获取单元格的内容
def get_cell(self, row, col):
cell_data = self.table.cell_value(row, col)
return cell_data
# 往 excel 中写入数据
def write_value(self, row, col, value):
file_data = xlrd.open_workbook(self.file_path)
write_data = copy(file_data)
sheet_data = write_data.get_sheet(0)
sheet_data.write(row, col, value)
write_data.save(self.file_path)
if __name__ == "__main__":
operate = OperateExcel()
# operate.get_sheet()
operate.get_lines()
# operate.get_cell(2, 2)