python -openpyxl练习

1. 1).获取doc里面的文件201901python学员博客整理情况.xlsx, 将作业评分为A的所有学员名称和连接获取;(文件在百度网盘里:python博客里所需要的所有文件)
2). 将获取的信息保存至Excel表格或者文件中;

201901python学员博客整理情况.xlsx,这个文件被我放在/home/kiosk/Documents/python/python0116/day18/doc里。
python -openpyxl练习_第1张图片
思路:
1.遍历每一行,遍历每一行中每一个单元格
2.把每一行的单元格的内容放在列表中
3.按照索引把是A的筛选出来
4. 在筛选出来的里面,利用索引把需要的姓名和网址值提取出来放到一个列表里
5. 把这个列表存储到新的excel表中

import openpyxl

def data(filename):
    wb = openpyxl.load_workbook(filename=filename)
    sheet = wb.active
    datasInfo = []
    for row in sheet.rows:
        rowValues = [cell.value for cell in row]
        # ['钟瑾', None, 'https://blog.csdn.net/King15229085063', None, None, None, 'A', None, None, '作业完成,笔记整理详细,有自我学习的内容']
        # 把这一行的信息存储在rowValues里,因为有合并单元格,合并的单元格在python里只有第一个单元存储数据,其他为None
        # 根据表格可以看出列表索引6为成绩,0是姓名,2是博客网址
        if rowValues[6]=='A':
            # 打印姓名和博客地址
            print('姓名:%s 博客:%s' %(rowValues[0],rowValues[2]))
            # 每次循环都把姓名、博客地址放在一个列表里[姓名,博客地址],便于后面放进新表格中
            dataInfo=[rowValues[0],rowValues[2]]
            datasInfo.append(dataInfo)
    return datasInfo



def creat_excel(wbname,sheetname,data):

    print("正在创建excel表格%s" %(wbname))
    wb = openpyxl.Workbook()
    sheet = wb.active
    sheet.title = sheetname
    print('正在写入数据')
    for row,item in enumerate(data):
        for column,cellValue in enumerate(item):
            cell = sheet.cell(row = row+1,column=column+1,value=cellValue)
    wb.save(wbname)
    print('保存工作簿%s成功' %(wbname))

if __name__ == '__main__':
    datasInfo = data('/home/kiosk/Documents/python/python0116/day18/doc/201901python学员博客整理情况.xlsx')
    creat_excel('/home/kiosk/Documents/python/python0116/day18/doc/博客成绩为A的学员博客.xlsx','sheet1',datasInfo)
    
    
    

输出:
python -openpyxl练习_第2张图片
生成的表格:
python -openpyxl练习_第3张图片2.每一行代表一次单独的销售。列分别是销售产品的类型(A)、产品每磅的价格(B)、销售的磅数©,以及这次销售的总收入。TOTAL 列设置为 Excel 公式,将每磅的成本乘以销售的磅数,
并将结果取整到分。有了这个公式,如果列 B 或 C 发生变化,TOTAL 列中的单元格将自动更新.
需要更新的价格如下:
Celery 1.19
Garlic 3.07
Lemon 1.27
现在假设 Garlic、 Celery 和 Lemons 的价格输入的不正确。这让你面对一项无聊
的任务:遍历这个电子表格中的几千行,更新所有 garlic、celery 和 lemon 行中每磅
的价格。你不能简单地对价格查找替换,因为可能有其他的产品价格一样,你不希
望错误地“更正”。对于几千行数据,手工操作可能要几小时。
下载文件: produceSales.xlsx
(文件在百度网盘里:python博客里所需要的所有文件)

produceSales.xlsx被我放在/home/kiosk/Documents/python/python0116/day18/doc里。
python -openpyxl练习_第4张图片
思路
1.打开表格
2.遍历每个单元格,到需要改变价格的销售类型时进行判断
3.改变价格。这里是我自己定义计数的行和列,如有更好的办法希望能跟我交流~~
4.保存

import openpyxl
def writewb(wbname,sheetname):
    wb = openpyxl.load_workbook(filename=wbname)
    sheet = wb.active
    sheet.title = sheetname
    row_1=0	#行数
    for row in sheet.rows: #遍历每一行
        row_1 += 1
        column_1 = 0	 #列数,每遍历一行列就从0开始一次
        for cell in row:	#遍历每一行单元格
            column_1 += 1
            if cell.value == 'Celery':	#当单元格的值为指定的三个销售产品的类型时,改变其价格
                cell = sheet.cell(row=row_1,column=column_1+1,value=1.19)
                print('更改Gelery成功')
            elif cell.value == 'Garlic':
                cell = sheet.cell(row=row_1,column=column_1+1,value=3.07)
                print('更改Garlic成功')
            elif cell.value == 'Lemon':
                cell = sheet.cell(row=row_1,column=column_1+1,value=1.27)
                print('更改Lemon成功')


    wb.save(wbname)
    print('保存工作簿%s成功' %(wbname))

if __name__ == '__main__':
    writewb('/home/kiosk/Documents/python/python0116/day18/doc/produceSales.xlsx','sheet')
    

输出:
python -openpyxl练习_第5张图片
produceSales.xlsx文件更改成功。比一次一次替换快很多~
python -openpyxl练习_第6张图片

你可能感兴趣的:(python,openpyxl,linux)