我的第一篇Blog!本来想在520发的!
动动手,记录一下学习过程!
心之所向,无问西东!
一、读取Excel工作簿
-准备
1.pip安装+import导入 第三方库 xlrd、xlwt
#安装 xlrd、xlwt
pip install xlrd
pip install xlwt
#导入 xlrd、xlwt
import xlrd #(读取)
import xlwt #(写入)
- 基础知识
1.读取工作薄
import xlrd
wb = xlrd.open_workbook("工作簿.xls")
#读取工作簿
2.读取工作薄下所有工作表
wsobj=wb.sheets()
#读取工作薄下所有工作表对象
wsname=wb.sheet_names()
#读取工作薄下所有工作表标名称
3.读取指定工作表对象
ws1=wb.sheet_by_name('工作表名')
#按指定名称,读取工作表对象-方法一 (常用)
ws2=wb.sheet_by_index(1)
#按指定序号,读取工作表对象-方法二
ws3=wb.sheet()[1]
#按指定序号,读取工作表对象-方法三
- 实例引入
以该Excel为例,理解上述内容
#打印test工作薄下所有工作表名称
import xlrd
wb = xlrd.open_workbook("test.xls")
ws = wb.sheets()
wsname = wb.sheet_names()
print(wsname)
打印结果:
['数据1', '数据2', '数据3']
1.打印test工作薄下所有工作表对象及其名称
import xlrd
wb = xlrd.open_workbook("test.xls")
wsobj = wb.sheets()
wsname = wb.sheet_names()
print(wsobj)
print(wsname)
打印结果:
[<xlrd.sheet.Sheet object at 0x10aaf1e90>, <xlrd.sheet.Sheet object at 0x10bd0cc10>, <xlrd.sheet.Sheet object at 0x10bd0ced0>]
['数据1', '数据2', '数据3']
2.三种方法打印指定工作表对象及名称
import xlrd
wb = xlrd.open_workbook("test.xls")
ws = wb.sheets()
wsname = wb.sheet_names()
ws1 = wb.sheet_by_name("数据1")
ws2=wb.sheet_by_index(0)
ws3=wb.sheets()[0]
print(ws1)
#打印结果
#<xlrd.sheet.Sheet object at 0x10bc0da50>
print(ws2)
print(ws2.name)
#打印结果
#<xlrd.sheet.Sheet object at 0x10bc98cd0>
#数据1
print(ws3)
print(ws3.name)
#打印结果:
#<xlrd.sheet.Sheet object at 0x10bcba710>
#数据1
二、读取excel行和列
-基础知识
import xlrd
ws = xlrd.open_workbook('工作簿名.xls').sheet_by_name('工作表名')#获取工作表对象
crow = ws.nrows#获取行数
ccol = ws.ncools#获取列数
row_date = ws.row_values(行号)#获取指定行数据
col_date = ws.col_values(列号)#获取指定列数据
cell_date_1 = ws.cell_value(行号,列号)#获取单元格数据
cell_date_2 = ws.cell(行号,列号).value#获取单元格数据
-实例引入
- 代码实现
import xlrd
ws = xlrd.open_workbook('test.xls').sheet_by_name('数据1')#获取工作表对象
crow = ws.nrows#获取行数
ccol = ws.ncols#获取列数
print("该表有",crow,"行")
print("该表有",ccol,"列")
打印结果
该表有 6 行
该表有 3 列
import xlrd
ws = xlrd.open_workbook('test.xls').sheet_by_name('数据1')#获取工作表对象
row_date = ws.row_values(0)#获取指定行数据
print(row_date)
打印结果
[1.0, ‘张三’, 19990101.0]
import xlrd
ws = xlrd.open_workbook('test.xls').sheet_by_name('数据1')#获取工作表对象
col_date = ws.col_values(1)#获取指定行数据
print(col_date)
打印结果
[‘张三’, ‘李四’, ‘王二’, ‘麻子’, ‘周五’, ‘郑王’]
#写法
import xlrd
ws = xlrd.open_workbook('test.xls').sheet_by_name('数据1')#获取工作表对象
cell_date_1 = ws.cell_value(0,1)#获取单元格数据
print(cell_date_1)
#张三
cell_date_2 = ws.cell(0,1).value#获取单元格数据
print(cell_date_2)
#张三
三、创建工作薄、工作表和写入单元格
-基础知识
import xlwt
nwb = xlwt.Workbook(encoding="UTF-8")#新建工作簿
nws = nwb.add_sheet('工作表名')#添加工作表
nws.write(1,2,'要写入的值')#写入单元格
nwb.save('工作簿名.xls')
import xlwt
nwb = xlwt.Workbook(encoding="UTF-8")#新建工作簿
nws = nwb.add_sheet('成绩表')#添加工作表
nws.write(1,2,'9999')#写入单元格
nwb.save('成绩表.xls')
四、for 循环
-基础知识
for s in range(10,20,1):
print(s)
打印结果
10
11
12
13
14
15
16
17
18
19
#拓展
score = int(input("请输入分数:"))
if score >= 90:
print('good')
else:
print('not bad')
#展示
>请输入分数:93
>good
-实例引入
案例一
import xlrd,xlwt
wb = xlrd.open_workbook('成绩表.xls')
ws = wb.sheet_by_name('成绩表')
n = 0
while n < ws.nrows-1:
n+=1
#print(ws.cell_value(n,0),ws.cell_value(n,1))
if ws.cell_value(n,0) == "李四":
print(ws.cell_value(n,1))
#打印结果
58.0
案例二
import xlrd,xlwt
wb = xlrd.open_workbook('成绩表.xls')
ws = wb.sheet_by_name('成绩表')
nwb = xlwt.Workbook(encoding = "UTF-8")
nws = nwb.add_sheet('成绩表')
n,m = 0,0
while n < ws.nrows-1:
n+=1
if ws.cell_value(n,1)>=60 and ws.cell_value(n,2)>=60:
m+=1
nws.write(m,0,ws.cell_value(n,0))
nws.write(m,1,ws.cell_value(n,1))
nws.write(m,2,ws.cell_value(n,2))
nwb.save('筛选结果.xls')
五、字符串
-字符串的切片
字符串