python学习站 /python_excel读写
阅读主题
正文字体
字体大小

09.旧版xls文件写操作

本节1143字2025-02-27 19:11:42
"""
author:少校
create Time:2025/2/26 11:14
越努力越幸运
"""
import xlwt
import xlrd
import openpyxl
#注意,xlwt只能对新建的文件进行写操作,不能对已经存在的文件进行写操作

#1.新建文件(新建工作簿) - 不会自动创建工作表
wb = xlwt.Workbook()
#2.添加工作表
sheet2 = wb.add_sheet("销售数据",True)

#3.修改单元格中的数据
#工作表.write(行索引,列索引,数据)
#stu_sheet.write(0,0,"姓名")


#练习:在销售数据文件中的data表的后面添加销售额对应的列
wb2 = xlrd.open_workbook("files/2020销售数据老.xls")
sheet1 =wb2["data"]
mr = sheet1.nrows
ml = sheet1.ncols
#第一步复制旧数据,写入新表
for row in range(0,mr):
    for col in range(0,ml):
        shuju = sheet1.cell_value(row,col)
        sheet2.write(row,col,shuju)
#第二步,添加销售额标题
sheet2.write(0,9,"销售额")
#第三步,计算并添加后面的数据
for row in range(1,mr):
    shoujia = sheet1.cell(row,7).value
    shuliang = sheet1.cell(row,8).value
    xiaoshoue = shoujia * shuliang
    sheet2.write(row,9,xiaoshoue)
wb.save("files/data3.xls")

#练习2:将学生信息中所有的不及格分数都替换成"补考"
#新版xlsx文件处理:
wb3 = openpyxl.load_workbook("files/学生信息.xlsx")
sheet3 = wb3["工作表1"]
mr = sheet3.max_row
ml = sheet3.max_column
for row in range(2,mr+1):
    for col in range(4,7):
        if sheet3.cell(row,col).value < 60:
            sheet3.cell(row,col,"补考")
wb3.save("files/学生信息.xlsx")

#旧版xls文件处理:
wb4 = xlrd.open_workbook("files/学生信息.xls")
sheet4 = wb4["sheet1"]
mr = sheet4.nrows
ml = sheet4.ncols

wb5 = xlwt.Workbook()
wb5.add_sheet("工作表")
sheet5 = wb5["工作表"]

for row in range(mr):
    for col in range(ml):
        value = sheet4.cell_value(row,col)
        if row >= 1 and col >= 3 and value < 60:
            sheet5.write(row,col,"补考")
        else:
            sheet5.write(row,col,value)
wb5.save("files/学生信息2.xls")


网友评论

相关作品