本章经过整理与比对梳理了相关的常用第三方库,对其中重要的常用第三方库,例如 xlrd 库、xlwt 库、xlutils 库、xlwings 库、pandas 库、openpyxl 库、matplotlib.pyplot 库和 numpy 库,都给出了相应的详细介绍与功能展示。
题目:打开D:盘abc 文件夹下的工作簿“例题锦集.xlsx”,输出所有工作表名称。
- import xlrd
- data = xlrd.open_workbook('d://abc//例题锦集.xlsx') #打开文件
- sheet_name = data.sheet_names() #获取所有sheet名称
- print(sheet_name) #输出所有工作表名称
教学视频:
/Upload/image/20220807220159_4418.mp4
题目:打开D:盘abc 文件夹下的工作簿“例题锦集.xlsx”,输出工作表名称。
- import xlrd
- data = xlrd.open_workbook('d://abc//例题锦集.xlsx') #打开文件
- sheet_name = data.sheet_names()[1] #打开工作表
- print(sheet_name) #输出工作表名称
教学视频:
/Upload/image/20220807220336_7277.mp4
题目:打开D:盘abc 文件夹下的工作簿“例题锦集.xlsx”及指定工作表,输出工作表名称、工作表中的行数和列数。
- import xlrd
- data = xlrd.open_workbook('d://abc//例题锦集.xlsx') #打开文件
- sheet= data.sheet_by_index(1) #打开工作表
- print(sheet.name) #输出sheet名称
- print(sheet.nrows) #输出sheet行数
- print(sheet.ncols) #输出sheet列数
教学视频:
/Upload/image/20220807220503_8325.mp4
题目:打开D:盘abc 文件夹下的工作簿“例题锦集.xlsx”及指定工作表,输出工作表中指定行数的内容和指定列数的内容。
- import xlrd
- data = xlrd.open_workbook('d://abc//例题锦集.xlsx') #打开文件
- sheet = data.sheet_by_name('饮料全表') #打开工作表
- print(sheet.row_values(3)) #输出整行信息
- print(sheet.col_values(3)) #输出整列信息
教学视频:
/Upload/image/20220807220800_3448.mp4
题目:打开D:盘abc 文件夹下的工作簿“例题锦集.xlsx”及指定工作表,输出工作表中指定单元格的内容。
- import xlrd
- data = xlrd.open_workbook('d://abc//例题锦集.xlsx') #打开文件
- sheet = data.sheet_by_name('饮料全表') #打开工作表
- print(sheet.cell(1,0).value) #输出指定单元格的内容
- print(sheet.cell_value(1,0)) #输出指定单元格的内容
- print(sheet.row(1)[0].value) #输出指定单元格的内容
教学视频:
/Upload/image/20220807220926_3890.mp4
实例06:获取单元格内容的数据类型
题目:打开D:盘abc 文件夹下的工作簿“饮料销售情况.xls”及指定工作表,输出工作表中指定单元格的数据类型。
- import xlrd
- data = xlrd.open_workbook('d://abc//饮料销售情况.xls') #打开文件
- sheet = data.sheet_by_name('sheet1') #打开工作表
- print(sheet.cell(1,0).ctype) #输出单元格内容的数据类型
- print(sheet.cell(3,4).ctype) #输出单元格内容的数据类型
教学视频:
/Upload/image/20220814101905_0913.mp4
题目:创建工作簿及工作表,将工作表命名为“第5章”,在指定单元格中输入“星期一”,将工作簿以“521.xls”为名进行保存。
- import xlwt
- workbook = xlwt.Workbook() #创建工作簿
- worksheet = workbook.add_sheet('第5章') #创建工作表
- worksheet.write(0, 0,'星期一') #添加数据
- workbook.save(r'd:\abc\521.xls') #保存文件
教学视频:
/Upload/image/20220814102019_3370.mp4
- import xlwt
- workbook = xlwt.Workbook() #创建工作簿
- worksheet = workbook.add_sheet('第5章') #创建工作表
- worksheet.write(0, 0,'星期一') #添加数据
- worksheet.col(0).width = 3333 #设置单元格宽度
- workbook.save(r'd:\abc\522.xls') #保存文件
教学视频:
/Upload/image/20220814102135_2265.mp4
题目:创建工作簿及工作表,在指定单元格中输入日期,将工作簿以“523.xls”为名进行保存。
- import xlwt
- import datetime
- workbook=xlwt.Workbook() #创建工作簿
- worksheet=workbook.add_sheet('第5章') #创建工作表
- style=xlwt.XFStyle() #初始化样式
- style.num_format_str = 'M/D/YY' #设置时间格式
- worksheet.write(0,0,datetime.datetime.now(),style) #添加数据
- workbook.save(r'd:\abc\523.xls') #保存文件
教学视频:
/Upload/image/20220814102243_1152.mp4
题目:创建工作簿及工作表,在指定单元格中输入公式,将工作簿以“524.xls”为名进行保存。
- import xlwt
- workbook=xlwt.Workbook() #创建工作簿
- worksheet=workbook.add_sheet('第5章') #创建工作表
- worksheet.write(0,0,5) #写入数据
- worksheet.write(0,1,2) #写入数据
- worksheet.write(1,0,xlwt.Formula('A1*B1')) #写入公式
- worksheet.write(1,1,xlwt.Formula('SUM(A1,B1)')) #写入公式
- workbook.save(r'd:\abc\524.xls') #保存文件
教学视频:
/Upload/image/20220814102352_6196.mp4
题目:创建工作簿及工作表,在指定单元格中添加超链接,将工作簿以“525.xls”为名进行保存。
- import xlwt
- workbook=xlwt.Workbook() #创建工作簿
- worksheet=workbook.add_sheet('第5章') #创建工作表
- worksheet.write(0,0,xlwt.Formula('HYPERLINK("http://www.baidu.com";"baidu")')) #添加超链接
- workbook.save(r'd:\abc\525.xls') #保存文件
教学视频:
/Upload/image/20220814102503_0286.mp4
题目:创建工作簿及工作表,合并指定的单元格,将工作簿以“526.xls”为名进行保存。
- import xlwt
- workbook=xlwt.Workbook() #创建工作簿
- worksheet=workbook.add_sheet('第5章') #创建工作表
- worksheet.write_merge(0,0,0,3,'第1节') #合并单元格
- worksheet.write_merge(2,4,2,4,'第2节') #合并单元格
- workbook.save(r'd:\abc\526.xls')
教学视频:
/Upload/image/20220814102618_2246.mp4
题目:创建工作簿及工作表,对指定单元格设置对齐属性,将工作簿以“527.xls”为名进行保存。
- import xlwt
- workbook=xlwt.Workbook() #创建工作簿
- worksheet=workbook.add_sheet('第5章') #创建工作表
- alignment=xlwt.Alignment() #创建对齐属性
- alignment.horz=xlwt.Alignment.HORZ_CENTER #设置水平居中
- alignment.vert=xlwt.Alignment.VERT_CENTER #设置垂直居中
- style=xlwt.XFStyle() #初始化样式
- style.alignment=alignment #将设置好的属性对象赋值给style对应的属性
- worksheet.write(0,0,'第1节',style) #输入数据并使用style对象
- workbook.save(r'd:\abc\527.xls')
教学视频:
/Upload/image/20220814102725_0799.mp4
题目:创建工作簿及工作表,对指定单元格设置边框属性,将工作簿以“528.xls”为名进行保存。
- import xlwt
- workbook=xlwt.Workbook() #创建工作簿
- worksheet=workbook.add_sheet('第5章') #创建工作表
- borders=xlwt.Borders() #创建边框属性
- borders.left=xlwt.Borders.DASHED #设置虚线
- borders.right=xlwt.Borders.DASHED #设置虚线
- borders.top=xlwt.Borders.DASHED #设置虚线
- borders.bottom=xlwt.Borders.DASHED #设置虚线
- style=xlwt.XFStyle() #初始化样式
- style.borders=borders #添加边框
- worksheet.write(1,1,'第1节',style) #输入数据并使用style对象
- workbook.save(r'd:\abc\528.xls')
教学视频:
/Upload/image/20220814102844_2366.mp4
题目:创建工作簿及工作表,对指定单元格设置背景色,将工作簿以“529.xls”为名进行保存。
- import xlwt
- workbook=xlwt.Workbook() #创建工作簿
- worksheet=workbook.add_sheet('第5章') #创建工作表
- pattern=xlwt.Pattern() #创建背景属性
- pattern.pattern=xlwt.Pattern.SOLID_PATTERN #设置模式
- pattern.pattern_fore_colour=5 #设置颜色
- style=xlwt.XFStyle() #初始化样式
- style.pattern=pattern #将设置好的属性对象赋值给style对应的属性
- worksheet.write(1,1,'第1节',style) #输入数据并使用style对象
- workbook.save(r'd:\abc\529.xls')
教学视频:
/Upload/image/20220814102954_3326.mp4
题目:打开工作簿“饮料销售情况.xls”并复制,将复制生成的新工作簿以“531.xls”为名进行保存。
- import xlrd
- from xlutils.copy import copy
- workbook=xlrd.open_workbook(r'd:\abc\饮料销售情况.xls') #打开工作簿
- new_workbook=copy(workbook) #复制
- new_workbook.save(r'd:\abc\531.xls') #保存工作簿
教学视频:
/Upload/image/20220814103058_6334.mp4
题目:打开工作簿“饮料销售情况.xls”,获取工作簿中所有工作表的名字、第1个工作表的名称及其中数据的行数。
- import xlrd
- workbook = xlrd.open_workbook(r'd:\abc\饮料销售情况.xls') #打开工作簿
- sheets = workbook.sheet_names() #获取所有工作表名称并形成列表元素
- worksheet = workbook.sheet_by_name(sheets[0]) #获取第1个工作表
- rows_old = worksheet.nrows #获取第1个工作表中数据的行数
- print("工作表的列标签为:")
- print(sheets)
- print()
- print("工作表的名称为:",end="")
- print(sheets[0])
- print()
- print("工作表的行数为:",end="")
- print(worksheet.nrows)
教学视频:
/Upload/image/20220814103208_7140.mp4
题目:打开工作簿“饮料销售情况.xls”,先复制生成一个新的工作簿,并修改新工作簿中第1个工作表中的内容,将新的工作簿以“533.xls”为名进行保存。
- import xlrd
- import xlwt
- from xlutils.copy import copy
- old_excel = xlrd.open_workbook(r'd:\abc\饮料销售情况.xls')
- new_excel = copy(old_excel) #复制工作表
- ws = new_excel.get_sheet(0) #获取第1个工作表
- ws.write(0, 0, '第1行,第1列') #写入数据
- ws.write(0, 1, '第1行,第2列')
- ws.write(0, 2, '第1行,第3列')
- ws.write(1, 0, '第2行,第1列')
- ws.write(1, 1, '第2行,第2列')
- ws.write(1, 2, '第2行,第3列')
- new_excel.save(r'd:\abc\533.xls') #保存文件
教学视频:
/Upload/image/20220814103314_3515.mp4
题目:打开工作簿“饮料销售情况.xls”及其第1个工作表,将第1行
数据及第4列数据加上索引并输出,同时输出第4列中500ml数据所在的行索引和列索引。
- import xlrd
- workbook=xlrd.open_workbook(r'd:\abc\饮料销售情况.xls')
- sheet1=workbook.sheets()[0] #打开工作表
- col4=sheet1.col_values(3) #取出第4列
- row={str(i):col4[i] for i in range(0,len(col4))} #设置行索引
- row1=sheet1.row_values(0) #取出第1行
- col={str(i):row1[i] for i in range(0,len(row1))} #设置列索引
- print("行索引内容为:",end=" ")
- print(list(enumerate(row))) #输出行索引
- print("列索引内容为:",end=" ")
- print(list(enumerate(col))) #输出列索引
- mtitle="容量"
- mname="500ml"
- a="".join([i for i in row if row[i]==mname]) #获取“容量”所在行索引
- b="".join([i for i in col if col[i]==mtitle]) #获取500ml所在列索引
- print("500ml的行索引与列索引分别为:",end=" ")
- print(a,b) #输出行索引和列索引
教学视频:
/Upload/image/20220814103425_4486.mp4
题目:打开工作簿“饮料销售情况.xls”及其第1个工作表,将其中的
数据500ml修改为“修改内容”,并将工作簿以“535.xls”为名进行保存。
- import xlrd
- import xlwt
- from xlutils.copy import copy
- workbook=xlrd.open_workbook(r'd:\abc\饮料销售情况.xls')
- sheet=workbook.sheets()[0]
- row1=sheet.row_values(0) #取出第1行
- cols={str(i):row1[i] for i in range(0,len(row1))} #设置行索引
- col4=sheet.col_values(3) #取出第4列,
- rows={str(i):col4[i] for i in range(0,len(col4))} #设置列索引
- mtitle="容量"
- mname="500ml"
- rindex="".join([i for i in rows if rows[i]==mname]) #获取行索引
- cindex="".join([i for i in cols if cols[i]==mtitle]) #获取列索引
- rindex=int(rindex) #转换数据类型
- cindex=int(cindex) #转换数据类型
- old_excel=xlrd.open_workbook(r'd:\abc\饮料销售情况.xls')
- new_excel=copy(old_excel) #复制文件
- ws=new_excel.get_sheet(0) #获取工作表
- ws.write(rindex,cindex, '修改内容') #写入(修改)数据
- new_excel.save(r'd:\abc\535.xls') #保存文件
教学视频:
/Upload/image/20220814103539_9432.mp4
实例21:综合实例
题目:设置单元格的字体对齐方式、字体大小、边框样式并对单元格进行合并。
- import xlwings as xw
- app=xw.App(visible=True, add_book=False)
- wb=app.books.add()
- sht=wb.sheets.active
- sht.range(2,4).value="中国"
- fw=sht.range('B2:E3')
- """设置单元格大小"""
- sht.autofit() #自动调整单元格大小
- sht.range(1,4).column_width=20 #设置第4列列宽,(1,4)表示第1行第4列的单元格
- sht.range(2,4).row_height=60 #设置第2行行高
- """设置单元格字体格式"""
- fw.color=255,200,255 #设置单元格的填充颜色
- fw.api.Font.ColorIndex=3 #设置字体的颜色
- fw.api.Font.Size=24 #设置字体的大小
- fw.api.Font.Bold=True #设置字体为粗体
- fw.api.HorizontalAlignment=-4108 #-4108表示水平居中
- fw.api.VerticalAlignment=-4108 #-4108表示垂直居中
- fw.api.NumberFormat="0.00" #设置单元格内数字的格式
- """设置边框"""
- fw=sht.range('B5')
- fw.api.Borders(9).LineStyle=1 #Borders(9)表示底部边框,LineStyle=1表示实线
- fw.api.Borders(9).Weight=3 #设置边框粗细
- fw=sht.range('D5')
- fw.api.Borders(7).LineStyle=2 #Borders(7)表示左边框,LineStyle=2表示虚线
- fw.api.Borders(7).Weight=3
- fw=sht.range('C5')
- fw.api.Borders(8).LineStyle=5 #Borders(8)表示顶部框,LineStyle=5表示双点划线
- fw.api.Borders(8).Weight=3
- fw=sht.range('E5')
- fw.api.Borders(10).LineStyle=4 #Borders(10)表示右边框,LineStyle=4表示点划线
- fw.api.Borders(10).Weight=3
- fw=sht.range('B7:C10')
- fw.api.Borders(5).LineStyle = 1 #Borders(5)表示从单元格左上角到右下角
- fw.api.Borders(5).Weight = 3
- fw=sht.range('D7:E10')
- fw.api.Borders(6).LineStyle=1 #Borders(6)表示从单元格左下角到右上角
- fw.api.Borders(6).Weight=3
- fw=sht.range('B12:D15')
- fw.api.Borders(11).LineStyle=1 #Borders(11)表示内部垂直中线
- fw.api.Borders(11).Weight=3
- fw=sht.range('E12:G15')
- fw.api.Borders(12).LineStyle=1 #Borders(12)表示内部水平中线
- fw.api.Borders(12).Weight=3
- """合并、拆分单元格"""
- sht.range('G5:H6').api.Merge() #合并单元格
- sht.range('G7:H8').api.Merge()
- sht.range('G7:H8').api.UnMerge() #拆分单元格
- """插入、读取公式"""
- sht.range('F1').formula='=sum(D1+E1)' #插入公式
- print(sht.range('F1').formula) #读取公式
- wb.save(r'd:\abc\5419.xlsx')
- wb.close()
- app.quit()
教学视频:
/Upload/image/20220815110528_5302.mp4
题目:创建一个Series,并将其数据打印出来。
- import pandas as pd
- import numpy as np
- import matplotlib.pyplot as plt
- s=pd.Series([1,3,5,np.nan,6,8])
- print(s)
教学视频:
/Upload/image/20220815110653_9565.mp4
题目:创建一个DataFrame,先给出一个时间范围,然后基于这个时间范围创建了一个DataFrame,DataFrame的行标签即刚刚创建的时间范围,而列标签为A、B、C、D。
- import pandas as pd
- import numpy as np
- df=pd.DataFrame(np.random.randn(6,4),columns=['A','B','C','D'])
- print(df)
教学视频:
/Upload/image/20220815110757_2150.mp4
题目:创建一个DataFrame,其中输入的参数是一个字典,字典的每个键值对的值可以转换成一个DataFrame。
- import pandas as pd
- import numpy as np
- df=pd.DataFrame({'A':1.,'B':pd.Timestamp('20200101'),
- 'C':pd.Series(1,index=range(4),dtype='float32'),
- 'D':np.array([3]*4,dtype='int32'),
- 'E':pd.Categorical(['test1',' test2','test3',' test4']),
- 'F':'foo'})
- print(df)
教学视频:
/Upload/image/20220815110904_4244.mp4
题目:查看DataFrame数据信息。
- import pandas as pd
- import numpy as np
- df=pd.DataFrame({'A':1.,'B':pd.Timestamp('20200101'),
- 'C':pd.Series(3,index=range(4)),
- 'D':np.array([3]*4),
- 'E':pd.Categorical(['test1','test2','test3','test4']),
- 'F':'foo'})
- print(df.head(2)) #显示前2行信息
- print(df.tail(2)) #显示后2行信息
- print("行索引:",end=" ")
- print(df.index) #显示行索引
- print("列索引:",end=" ")
- print(df.columns) #显示列索引
- print("各列数据类型:")
- print(df.dtypes) #显示各个列的数据类型
- print(df.values) #显示DataFrame的值
教学视频:
/Upload/image/20220815111140_9078.mp4
题目:对DataFrame进行标签排序。axis=1时,沿着列方向,对各个列标签进行排序;axis=0时,沿着行方向,对行标签进行排序。
- import pandas as pd
- import numpy as np
- df=pd.DataFrame({'A':1.,'B':pd.Timestamp('20200101'),
- 'C':pd.Series(1,index=range(4),dtype='float32'),
- 'D':np.array([3]*4,dtype='int32'),
- 'E':pd.Categorical(['test1','test2','test3','test4']),
- 'F':'foo'})
- df=df.sort_index(axis=1,ascending=False) #对列索引进行排序
- print(df)
教学视频:
/Upload/image/20220815111259_8267.mp4
题目:根据E列数据对DataFrame进行排序。
- import pandas as pd
- import numpy as np
- df=pd.DataFrame({'A':1.,'B':pd.Timestamp('20200101'),
- 'C':pd.Series(1,index=range(4),dtype='float32'),
- 'D':np.array([3]*4,dtype='int32'),
- 'E':pd.Categorical(['test2','test4','test3','test1']),
- 'F':'foo'})
- print(df) #原始数据
- df=df.sort_values(by='E') #根据E列数据进行排序
- print(df) #排序后的数据
教学视频:
/Upload/image/20220815111358_2290.mp4
题目:提取DataFrame的一个数据列。
- import pandas as pd
- import numpy as np
- df=pd.DataFrame({'A':1.,'B':pd.Timestamp('20200101'),
- 'C':pd.Series(1,index=range(4),dtype='float32'),
- 'D':np.array([3]*4,dtype='int32'),
- 'E':pd.Categorical(['test1','test2','test3','test4']),
- 'F':'foo'})
- print(df['E']) #提取E列数据
教学视频:
/Upload/image/20220815111447_6585.mp4
题目:提取DataFrame的若干数据行。
- import pandas as pd
- import numpy as np
- df=pd.DataFrame({'A':1.,'B':pd.Timestamp('20200101'),
- 'C':pd.Series(1,index=range(4),dtype='float32'),
- 'D':np.array([3]*4,dtype='int32'),
- 'E':pd.Categorical(['test1','test2','test3','test4']),
- 'F':'foo'})
- print(df[0:3]) #提取多行数据
教学视频:
/Upload/image/20220815111539_1402.mp4
题目:通过条件过滤提取DataFrame的若干数据行。
- import pandas as pd
- import numpy as np
- df=pd.DataFrame({'A':1.,'B':pd.Timestamp('20200101'),
- 'C':pd.Series(1,index=range(4),dtype='float32'),
- 'D':np.array([3]*4,dtype='int32'),
- 'E':pd.Categorical(['test1','test2','test3','test4']),
- 'F':'foo'})
- print(df[df.E=="test2"])
教学视频:
/Upload/image/20220815111629_2820.mp4
实例31:创建文件
题目:创建Excel文件,将其以“561.xlsx”为名进行保存。
- from openpyxl import Workbook
- wb = Workbook() #创建文件
- wb.save(r"d:\abc\561.xlsx") #保存文件
教学视频:
/Upload/image/20220817104424_5922.mp4
题目:打开D:盘abc文件夹中的“例题锦集.xlsx”文件,并输出其所有工作表名称。
- from openpyxl import load_workbook
- wb=load_workbook(r'd:\abc\例题锦集.xlsx') #打开工作簿
- print(wb.sheetnames) #输出工作簿中所有工作表名称
教学视频:
/Upload/image/20220817104524_6240.mp4
题目:在D:盘abc文件夹中创建工作簿“563.xlsx”并创建工作表“第5章”(在最后位置)。
- from openpyxl import Workbook
- wb=Workbook() #创建工作簿
- ws=wb.create_sheet("第5章") #创建工作表
- wb.save(r"d:\abc\563.xlsx") #保存文件
教学视频:
/Upload/image/20220817104617_3675.mp4
题目:在D:盘abc文件夹中创建工作簿“564.xlsx”并创建工作表“第5章”(在开始位置)。
- from openpyxl import Workbook
- wb=Workbook() #创建工作簿
- ws2=wb.create_sheet("第5章", 0) #创建工作表
- wb.save(r"d:\abc\564.xlsx") #保存文件
教学视频:
/Upload/image/20220817104707_7131.mp4
题目:打开D:盘abc文件夹中的“例题锦集.xlsx”文件并选择工作表“销售数量”,输出工作表名称。
- from openpyxl import load_workbook
- wb=load_workbook(r'd:\abc\例题锦集.xlsx') #打开工作簿
- ws=wb["销售数量"]
- print(ws.title) #输出工作表名称
教学视频:
/Upload/image/20220817104758_1520.mp4
题目:打开D:盘abc文件夹中的“例题锦集.xlsx”文件,输出其所有工作表名称。
- from openpyxl import load_workbook
- wb=load_workbook(r'd:\abc\例题锦集.xlsx') #打开工作簿
- print(wb.sheetnames) #输出所有工作表名称
教学视频:
/Upload/image/20220817104901_9733.mp4
题目:打开D:盘abc文件夹中的“例题锦集.xlsx”文件及其“销售数量”工作表,输出相应单元格中的内容。
- from openpyxl import load_workbook
- wb=load_workbook(r'd:\abc\例题锦集.xlsx') #打开工作簿
- ws=wb["销售数量"] #打开工作表
- c1=ws['A4'] #访问单元格
- print(c1,end=":")
- print(c1.value) #输出单元格中的内容
- c2=ws.cell(row=4,column=2) #访问单元格
- print(c2,end=":")
- print(c2.value) #输出单元格中的内容
- for i in range(1,4): #访问单元格
- for j in range(1,4):
- c3=ws.cell(row=i,column=j)
- print(c3.value,end=":") #输出单元格中的内容
- print("") #换行
教学视频:
/Upload/image/20220817105004_1676.mp4
题目:打开D:盘abc文件夹中的“例题锦集.xlsx”文件及其“班级成绩”工作表,访问相应的行。
- from openpyxl import load_workbook
- wb=load_workbook(r'd:\abc\例题锦集.xlsx') #打开工作簿
- ws=wb["班级成绩"] #打开工作表
- row10=ws[10] #访问行
- print(row10)
- print('=============================')
- row_range=ws[2:3] #访问多个行
- print(row_range)
教学视频:
/Upload/image/20220817105104_4350.mp4
题目:打开D:盘abc文件夹中的“例题锦集.xlsx”文件及其“班级成绩”工作表,访问相应的列。
- from openpyxl import load_workbook
- wb=load_workbook(r'd:\abc\例题锦集.xlsx') #打开工作簿
- ws=wb["班级成绩"] #打开工作表
- colC=ws['C'] #访问列
- print(colC)
- print('=============================')
- col_range=ws['C:D'] #访问多个列
- print(col_range)
教学视频:
/Upload/image/20220817105156_0199.mp4
题目:打开D:盘abc文件夹中创建工作簿及工作表“第5章”,输入数据,将工作簿以“5610.xlsx”为名进行保存。
- from openpyxl import Workbook
- import datetime
- wb=Workbook() #创建工作簿
- ws=wb.create_sheet("第5章") #创建工作表
- ws['A1']=42 #输入数据(公式)
- ws.append([1, 2, 3]) #按行(多行)输入数据
- ws['A3']=datetime.datetime.now().strftime("%Y-%m-%d") #Python数据类型自动转换
- wb.save(r"d:\abc\5610.xlsx") #保存文件
教学视频:
/Upload/image/20220817105245_9421.mp4
实例41:获取工作表总行数和总列数
题目:打开D:盘abc文件夹中的“例题锦集.xlsx”文件并选择“销售数量”工作表,输出工作表的总行数和总列数。
- from openpyxl import load_workbook
- wb=load_workbook(r'd:\abc\例题锦集.xlsx') #打开工作簿
- ws=wb["销售数量"]
- print("工作表总行数为:",end=" ")
- print(ws.max_row) #输出工作表最大行
- print("工作表总列数为:",end=" ")
- print(ws.max_column) #输出工作表最大列
教学视频:
/Upload/image/20220820095309_0931.mp4
题目:打开D:盘abc文件夹中的“例题锦集.xlsx”文件并选择“班级成绩”工作表,输出工作表中的数据。
- from openpyxl import load_workbook
- wb=load_workbook(r'd:\abc\例题锦集.xlsx') #打开工作簿
- ws=wb["班级成绩"]
- for row in ws.rows: #按行输出数据
- for cell in row:
- print(cell.value,end=";")
- print("")
- print('===================')
- for column in ws.columns: #按列输出数据
- for cell in column:
- print(cell.value,end=";")
- print("")
教学视频:
/Upload/image/20220820095417_7627.mp4
题目:打开D:盘abc文件夹中的“例题锦集.xlsx”文件并选择“班级成绩”工作表,对其单元格的字体、居中方式、行高、列宽进行设置,并将工作簿以“5613.xlsx”为名进行保存。
- from openpyxl import load_workbook
- from openpyxl.styles import Font,colors,Alignment
- wb=load_workbook(r'd:\abc\例题锦集.xlsx') #打开工作簿
- ws=wb["班级成绩"]
- zt=Font(size=24,italic=True,color='9c0006',bold=True)
- ws['C1'].font=zt #设置字体
- ws['C1'].alignment=Alignment(horizontal='center', vertical='center') #设置居中方式(水平和垂直)
- ws.row_dimensions[1].height=60 #设置行高
- ws.column_dimensions['C'].width = 20 #设置列宽
- wb.save(r"d:\abc\5613.xlsx") #保存文件
教学视频:
/Upload/image/20220820095516_6035.mp4
题目:在D:盘abc文件夹中创建工作簿并在其中创建工作表“第5章”,分别对其中的一行和一个矩形区域进行单元格合并,并将工作簿以“5614.xlsx”为名进行保存。
- from openpyxl import Workbook
- wb=Workbook() #创建工作簿
- ws=wb.create_sheet("第5章") #创建工作表
- ws.merge_cells('C2:E2') #合并行
- ws.merge_cells('C5:E7') #合并矩形区域
- ws.merge_cells('A1:A6')
- ws.unmerge_cells('A1:A6') #拆分单元格
- wb.save(r"d:\abc\5614.xlsx") #保存文件
教学视频:
/Upload/image/20220820095618_1184.mp4
题目:打开D:盘abc文件夹中的“例题锦集.xlsx”文件,同时打开“班级成绩”工作表,对其中单元格的字体、居中方式、行高、列宽进行设置,将工作簿以“5615.xlsx”为名进行保存。
- from openpyxl import load_workbook
- wb=load_workbook(r'd:\abc\例题锦集.xlsx') #打开工作簿
- ws=wb["饮料简介"]
- ws.sheet_properties.tabColor = "9c0006" #设置工作表标签颜色
- wb.save(r"d:\abc\5615.xlsx") #保存文件
教学视频:
/Upload/image/20220820095712_9915.mp4
题目:创建figure窗口。
- import matplotlib.pyplot as plt
- fig=plt.figure()
- plt.show()
教学视频:
/Upload/image/20220820095825_8025.mp4
题目:在figure窗口建立子图。
- import matplotlib.pyplot as plt
- fig=plt.figure()
- ax=fig.add_subplot(111)
- plt.show()
教学视频:
/Upload/image/20220820095925_9714.mp4
题目:为figure窗口中的子图设置坐标轴边界。
- import matplotlib.pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei']
- plt.rcParams['axes.unicode_minus']=False
- fig=plt.figure()
- ax=fig.add_subplot(111)
- ax.set(xlim=[0.5, 4.5], ylim=[-2, 8], title='标题',ylabel='y轴', xlabel='x轴')
- plt.show()
教学视频:
/Upload/image/20220820100020_5581.mp4
题目:在figure窗口中建立多个子图。
- import matplotlib.pyplot as plt
- fig=plt.figure()
- ax1 = fig.add_subplot(221)
- ax2 = fig.add_subplot(222)
- ax3 = fig.add_subplot(224)
- plt.show()
教学视频:
/Upload/image/20220820100114_6465.mp4
题目:在figure窗口中生成所有axes。
- import matplotlib.pyplot as plt
- fig, axes=plt.subplots(nrows=2, ncols=2)
- axes[0,0].set(title='Upper Left')
- axes[0,1].set(title='Upper Right')
- axes[1,0].set(title='Lower Left')
- axes[1,1].set(title='Lower Right')
- plt.show()
教学视频:
/Upload/image/20220820100208_5701.mp4
实例51:绘制一条直线
题目:创建画布,同时绘制一条直线。
- import matplotlib.pyplot as plt
- plt.figure() #创建绘图区域
- plt.plot([0,5],[2,7],linewidth=5,linestyle='solid') #绘制直线
- plt.show()
教学视频:
/Upload/image/20220823085338_0521.mp4
题目:创建画布,同时绘制多条直线。
- import matplotlib.pyplot as plt
- plt.figure() #创建绘图区域
- plt.plot([0,5],[1,6],[0,5],[8,13],linewidth=5,linestyle='solid') #绘制直线
- plt.show()
教学视频:
/Upload/image/20220823085449_4739.mp4
题目:在figure窗口中生成子图并画线。
- import numpy as np
- import matplotlib.pyplot as plt
- x=np.linspace(0,np.pi)
- ysin=np.sin(x)
- ycos=np.cos(x)
- fig=plt.figure()
- ax1=fig.add_subplot(221)
- ax2=fig.add_subplot(222)
- ax3=fig.add_subplot(223)
- ax1.plot(x,ysin)
- ax2.plot(x,ysin,'-.',linewidth=2)
- ax3.plot(x,ycos,color='blue',marker='<',linestyle='dashed')
- plt.show()
教学视频:
/Upload/image/20220823085551_2516.mp4
题目:创建artist对象。
- import matplotlib
- import matplotlib.pyplot as plt
- plt.rcParams['font.sans-serif']=['SimHei']
- plt.rcParams['axes.unicode_minus']=False
- fig=plt.figure() #创建一个区域
- ax=fig.add_axes([0.1,0.5,0.8,0.5]) #add_axes()新增子区域
- ax.set_xlabel('x轴') #设置x轴
- ax.set_ylabel('y轴') #设置y轴
- line=ax.plot([0,5],[0,1]) #绘图
- plt.show()
教学视频:
/Upload/image/20220823085647_3480.mp4
题目:通过关键字参数的方式进行绘图。
- import matplotlib.pyplot as plt
- import numpy as np
- x=np.linspace(0,10,200)
- mm={'mean':0.5*x*np.cos(2*x)+2.1*x}
- fig,ax=plt.subplots()
- ax.plot('mean',data=mm) #绘制“中心线”
- plt.show()
教学视频:
/Upload/image/20220823085750_4328.mp4
题目:绘制散点图。
- import matplotlib.pyplot as plt
- import numpy as np
- x=np.arange(10)
- y=np.random.randn(10)
- plt.scatter(x,y,color='red',marker='+')
- plt.show()
教学视频:
/Upload/image/20220823085857_4827.mp4
题目:绘制水平条形图。
- import matplotlib.pyplot as plt
- import numpy as np
- np.random.seed(1) #控制产生的随机数的数值不变
- x=np.arange(5)
- y=np.random.randn(5)
- fig,axes=plt.subplots()
- axes.bar(x,y,color='red') #绘图
- axes.axhline(0,color='black',linewidth=3) #画线
- plt.show()
教学视频:
/Upload/image/20220823090003_9018.mp4
题目:修改条形图的样式。
- import matplotlib.pyplot as plt
- import numpy as np
- np.random.seed(1)
- x=np.arange(5)
- y=np.random.randn(5)
- fig,axes=plt.subplots()
- kk=axes.bar(x,y,color='red',align='center')
- for bar,height in zip(kk,y):
- if height<0:
- bar.set(color='yellow',edgecolor='darkred',linewidth=2)
- plt.show()
教学视频:
/Upload/image/20220823090100_8129.mp4
题目:绘制直方图。
- import matplotlib.pyplot as plt
- import numpy as np
- plt.rcParams['font.sans-serif']=['SimHei']
- plt.rcParams['axes.unicode_minus']=False
- np.random.seed(1) #控制产生的随机数的数值不变
- y=10
- x=np.random.randn(1000,3) #产生1000×3维数组
- fig=plt.figure()
- ax=fig.add_subplot(111)
- colors=['red','tan','lime']
- ax.hist(x,y,density=True,histtype='bar',color=colors,label=colors)
- ax.legend(prop={'size':10}) #加入图例
- ax.set_title('直方图') #加入标题
- plt.show()
教学视频:
/Upload/image/20220823090155_7416.mp4
题目:绘制饼图。
- import matplotlib.pyplot as plt
- import numpy as np
- plt.rcParams['font.sans-serif']=['SimHei']
- plt.rcParams['axes.unicode_minus']=False
- bj='一班','二班','三班','四班'
- rs=[15,30,45,10]
- fig=plt.figure()
- ax=fig.add_subplot(111)
- ax.pie(rs,labels=bj,autopct='%1.1f%%',shadow=True)
- plt.show()
教学视频:
/Upload/image/20220823090250_4670.mp4
还可以输入200个字
蝈蝈派【海南省教改项目(Hnjg2022-80)支持】 网站版权所有
Python remained the copyright of our website