Python操作Excel基础

一、使用PythonExcel读写数据

1.模块、包、库概念

  • Module(模块):扩展名为.py的文件就可以称作为模块
  • Package(包):在模块只上的概念,为了方便管理.py模块文件进行打包。包目录下第一个文件必须是_init_.py,否则就是普通的文件夹目录,然后是一些模块文件和子目录,加入子目录中也有_init_.py,那么它就是这个包的子包了
  • Library(库):具有相关功能模块的集合。这也是Python的一大特色,即具有强大的标准库、第三方库以及自定义模块
  • 标准库:就是安装Python是自自带的模块
  • 第三方库:就是由第三方机构发布,具有特定功能的模块,用户也可以自行开发模块供自己和他人使用

2.Excel读取库xlrd

  • 导入模块的格式:import+模块名
  • 导入xlrdimport xlrd,也可以使用别名命名方式import xlrd as xl,后续可以用xl代表xlrd模块
  • 调用的格式为:from+模块名+import+方法名
  • 导入xlrd模块中的open_workbook,写法为:from xlrd import open_workbook as owb,后续可以直接使用owb代表open_workbook工作薄对象
  • ''注意:xlrd只能读取xls格式工作薄数据

3.读取Excel工作薄、工作表信息

  • 在导入读取xls文件的库之后,则需要读取Excel文件的相关信息,以下是一些常见的获取工作薄、工作表对象的方法:
# 导入xlrd模块
import xlrd
# 读取工作薄
wb = xlrd.open_workbook('工作薄名称.xls')
# 读取工作薄下的所有工作表对象
wsobj = wb.sheets()
# 读取工作薄下的所有工作表名称
wsname = wb.sheet_names()
# 按指定名称读取工作表对象-方法1
ws1 = wb.sheet_by_name('工作表名称')
# 按指定序号读取工作表对象-方法2
ws2 = wb.sheet_by_index(1)
# 按指定序号读取工作表对象-方法3
ws3 = wb.sheets()[1]

4.读取Excel行、列信息

  • 常用获取行、列、单元格信息的方法:
# 导入xlrd模块
import xlrd
# 获取工作表对象
ws = xlrd.open_workbook('工作薄名.xls').sheet_by_name('工作表名')
# 获取行号
crow = ws.nrows
# 获取列号
ccol = ws.ncols
# 获取指定行数据
row_data = ws.row_values(行号)
# 获取指定列数据
col_data = ws.col_values(列号)
# 获取单元格数据
cell_data_1	 = ws.cell_value(行号,列号)
# 获取单元格数据
cell_data_2 = ws.cell(行号,列号).value
  • 注意:如果以序号方式获取工作表、单元格的数据,均是从序号0开始的

5.Excel写入库xlwt

  • 使用安装xlwt库,具有创建工作薄、工作表、将数据写入到单元格的功能

6.创建Excel工作薄、工作表和写入单元格

  • xlwt可以创建工作薄、保存工作薄,创建工作表以及将数据写入单元格等常见操作
# 引入xlwt模块
import xlwt
# 新建工作薄
nwb = xlwt.Workbook(encoding = 'utf-8')
# 添加工作表
nws = nwb.add_sheet('工作表名')
# 写入单元格,(第二行,第三列,值)
nws.write(1, 2, '要写入的值')
# 保存工作薄
nwb.save('工作薄名.xls')

7.Excel修改库xlutils

  • xlutils可以修改工作薄,要使用xlutils库就一定要安装xlrd库和xlwt

8.修改工作薄、工作表、单元格

# 导入xlrd模块
import xlrd
# 导入xlutils中的复制模块
from xlutils.copy import copy
# 获取要修改的工作薄
wb = xlrd.open_workbook('工作薄名.xls')
# 复制工作薄
nwb = copy(wb)
# 新建工作表
nws1 = nwb.add_sheet('工作表名')
# 读取工作表
nws2 = nwb.get_sheet(序号)
# 读取工作表
nws3 = nwb.get_sheet('工作表名')
# 将数据写入指定工作表
nws1.write(行号, 列表, '值')
# 保存工作薄
nwb.save('工作薄名.xls')
  • 注意,最后nwb.save保存的工作薄可以和打开时工作薄名一样,也可以不一样,如果一样,则是覆盖原工作薄,不一样则是另存工作薄。代码运行时,被修改的工作薄必须关闭。

二、循环语句与分支语句

1.for...in循环语句

  • 语法格式
for item in iterable:
    do something
(1)循环字符串
  • for循环语句除了遍历指定范围的序列值,也可以遍历向指定的字符串,将字符串中的每个字符逐个输出
for n in 'python':
    print(n)
(2)循环指定范围序列数
  • 如果我们要循环指定范围的数据,可以使用range函数,一般通过使用for循环语句来逐个取得数字
  • range函数语法为:range(start, stop, [step])
    • start:计数从start开始,默认是从0开始
    • stop:技术到stop结束,但不包括stop
    • step:步长,默认是1
for n in range(1, 10, 2):
    print(n)
# 输出1 3 5 7 9
(3)嵌套循环
  • for循环与局可以嵌套使用,但每一层for循环语句注意缩进,下面使用for嵌套循环方式完成九九乘法表的制作
for x in range(1, 10):
    for y in range(1, x+1):
        print('%dx%d=%-5d' % (y, x, y * x), end = '')

2.for...in循环语句应用

(1)批量创建工作薄
  • 实例:使用for循环语句创建1到12月工作薄,每个工作薄中创建一个名为统计表的工作表
import xlwt
for m in range(1, 13):
    # 创建工作薄
    wb = xlwt.Workbook(encoding = 'utf-8')
    # 创建工作表,工作薄中至少要有一个工作表
    wb.add_sheet('统计表')
    wb.save('%02d 月.xls' % m)
(2)制作九九乘法表
  • 实例:将九九乘法表写入Excel表格中,只需要定位好对应的单元格,然后将格式化好的数据写入单元格即可
import xlwt
# 创建工作薄
wb = xlwt.Workbook(encoding = 'utf-8')
# 创建工作表
ws = wb.add_sheet('乘法表')
for x in range(1, 10):
    for y in range(1, x + 1):
        # 将乘法表写入单元格
        ws.write(x, y, '%dx%d=%d' % (x, y, x * y))
# 保存工作薄
wb.save('乘法表.xls')

3.while循环语句

  • 语法格式
while condition:
    do something
  • 循环打印
n = 0
while n < 5:
    n += 1
    print(n)
# 打印1 2 3 4
  • 嵌套语句,制作九九乘法表
x, y = 0, 0
while x < 9:
    x += 1
    while y < x:
        y += 1
        print('%dx%d=%02d\t' % (y, x, x * y)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值