python操作Excel
参考如上,
还需要用到面向对象的思想
最后再来个 对象合集。
需要遍历的话
需要打印表格 参考
最终代码:(有个坑最后写入新Excel 还没完善)
import xlrd
xlsx = xlrd.open_workbook('chengji.xls')
class student:
def __init__(self,name,banji,score):
self.name=name
self.banji=banji
self.score=score
def __repr__(self):
return repr(self.__dict__)
# 通过sheet名查找:xlsx.sheet_by_name("sheet1")
# 通过索引查找:xlsx.sheet_by_index(3)
table = xlsx.sheet_by_index(0)
# 获取单个表格值 (2,1)表示获取第3行第2列单元格的值
# value = table.cell_value(2, 1)
# print("第3行2列值为", value)
# 获取表格行数
nrows = table.nrows
print("表格一共有", nrows, "行")
students=list()
# 获取学生对象对应的列所有值(列表生成式)
yibans=list()
erbans=list()
sanbans=list()
sibans=list()
for i in range(1,nrows):
student_i=student([str(table.cell_value(i, 3))],[str(table.cell_value(i, 4))],[str(table.cell_value(i, 8))])
# student_i.name= [str(table.cell_value(i, 3))]
# student_i.banji = [str(table.cell_value(i, 4))]
# student_i.score = [str(table.cell_value(i, 8))]
# print(student_i.banji)
students.append(student_i)
for student_i in students:
if student_i.banji==['1班']:
yibans.append(student_i)
elif student_i.banji=='二班':
erbans.append(student_i)
elif student_i.banji=='三班':
sanbans.append(student_i)
else:
sibans.append(student_i)
#再给批量写进去一个新的Excel
for student_i in yibans:
print(student_i.banji+student_i.name+student_i.score)



