Python学习Python操作excel

python操作excel使用xlrd、xlwt和xlutils模块。

xlrd模块是读取excel的,xlwt模块是写excel的,xlutils是用来修改excel的。这几个模块使用pip安装即可,下面是这几个模块的使用。

一、xlrd模块,读取excel

xlrd用来读excel,只能是xls格式,xlsx不能用这些模块

1、 打开excel: open_workbook('表名')

2、 打开sheet页: 工作簿. sheet_by_index(0)

3、 读取数据

import xlrd #只能读
book = xlrd.open_workbook('nhy.xls') #打开excel,这个表必须存在,否则会报错

print(book.nsheets)#获取到excel里面总共有多少个sheet页
print(book.sheet_names()) #获取所有sheet页的名字,返回一个列表

sheet = book.sheet_by_index(0) #根据sheet页的索引获取sheet页
#sheet = book.sheet_by_name('sheet1')#根据sheet页的名字获取sheet页

print(sheet.cell(0,0).value)  #按照索引,获取某个单元格里面的内容,第一个值为列,第二个值为行
# print(sheet.cell(1,0).value)

print(sheet.row_values(0))#获取第一行的数据
print(sheet.row_values(1))#获取某一行的数据
print(sheet.nrows)#这个就是excel里面总共有多少行

print(sheet.col_values(0))#某一列的数据
print(sheet.col_values(1))#某一列的数据
print(sheet.ncols)#总共有多少列

#打印每行信息
for rownum in range(sheet.nrows):  #循环取每行的数据
    print(sheet.row_values(rownum))#取每行的数据

二、xlwt模块,xlwt模块用来写excel,写一个新的excel

1、新建excel对象

2、添加sheet页:excel对象.add_sheet('xxx')

3、写入表头

4、循环写入每行数据

import xlwt
title = ['姓名', '年龄', '性别', '分数']
stus = [['mary', 20, '', 89.9], ['mary', 20, '', 89.9], ['mary', 20, '', 89.9], ['mary', 20, '', 89.9]]
wbk = xlwt.Workbook() # 新建一个excel对象
sheet = wbk.add_sheet('stu')# 添加一个名为stu的sheet页

for i in range(len(title)):  # 写入表头
    sheet.write(0, i, title[i])  # 写入每行,第一个值是行,第二个值是列,第三个是写入的值   
row = 1  #
for i in stus:
    col = 0  #
    for j in i:
        sheet.write(row, col, j)  # 循环写入每行数据
        col += 1
    row += 1
# 保存数据到‘szz.xls’文件中
wbk.save('szz.xls')  # 保存excel必须使用后缀名是.xls的,不是能是.xlsx的

三、xlutils模块xlutils模块用来修改excel的内容,不能直接修改原来的excel内容,必须得先复制一个新的excel,然后对这个新的excel进行修改,用法如下:

注意:xlutils的导入很特殊,不能用import xlutils,必须用from xlutils import copy

1、 复制工作簿:copy.copy(工作簿) 首先要先用xlrd打开一个工作簿,然后才能复制

2、 获取sheet页:工作簿.get_sheet(0)

3、 修改内容:sheet页.write(行号,列号,内容)

4、保存新的excel,覆盖原来的excel

import xlrd
from xlutils import copy
book1 = xlrd.open_workbook('nhy.xls')#打开原来的excel
new_book = copy.copy(book1)#拷贝一个新的excel
sheet = new_book.get_sheet(0)#获取第一个sheet页
sheet.write(1,3,'20')#写入excel,第一个值是行,第二个值是列
sheet.write(1,1,'张三')
new_book.save('nhy.xls')#保存新的excel,保存excel必须使用后缀名是.xls的,不是能是.xlsx的
原文地址:https://www.cnblogs.com/ddxxn/p/9663686.html