从零基础开始用python处理excel数据(xlrd、xlwt)

我的第一篇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为例,理解上述内容
以该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')

五、字符串

-字符串的切片

字符串

  • 5
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值