用Python实现Excel文档的读写操作

一、导入第三方库模块:

1.1、使用的第三方库有:

xlrd:读取文件

xlwt:向Excel文件写入内容

pandas:Pandas是一个用于数据分析和数据处理的Python库

1.2、查询库模块(安装下载Jupyter一般会默认帮你安装好第三方库),在终端中通过查询指令检验第三方库是否存在:

pip show xlrd

pip show xlwt

pip show pandas

用Python实现Excel文档的读写操作_第1张图片 

1.3、在终端中安装第三方库:

如果Jupyter没有为你默认安装,则在终端中下载库:

pip install xlwt

pip install xlrd

pip install pandas

如果默认安装的版本太低,还可以使用更新语句:

conda update pandas 

二、 Excel文件的读取和写入

(一)、文件读取 :

2.1、示例1:读取本地工作表并原样输出

#导入模块xlrd
import xlrd

#打开工作簿Book
wb = xlrd.open_workbook('../Stu_pack/school.xls')

#指定工作簿中的工作簿sheet
sheet = wb.sheet_by_index(0)

#根据行列序号读取工作内容
schools = []         #定义一个二维列表存放每行工作表数据
for row in range(sheet.nrows):
    school = []          #定义一个一维列表存放每个单元格的数据
    for col in range(sheet.ncols):
        content = sheet.cell_value(row,col)           #读取每个单元格数据存放在变量content里面
        school.append(content)         #将单元格的数据追加到一维列表school的里面
    schools.append(school)            #将每行的数据追加到二维列表schools里面
    
#读取二维列表里的数据
for school in schools:
    print(school)

输出结果(部分):

用Python实现Excel文档的读写操作_第2张图片

2.2、选择除标题的前十行打印:

for school in schools[1:11]:
    print(school)

用Python实现Excel文档的读写操作_第3张图片 

2.3、用循环语句输出表格的前十行:

i=1
for school in schools:
    if i<12:
        print(school)
        i+=1

用Python实现Excel文档的读写操作_第4张图片

2.4、将Excel文件读取到pandas DataFrame中  :

import pandas as pd   #导入pandas库,并将其别名为pd
data = pd.read_excel('../Stu_pack/school.xls')    #使用pandas库中的read_excel函数读取Excel文件,并将其存储在名为data的变量中
print(data)   #打印变量data的内容。这将显示Excel文件中的数据

用Python实现Excel文档的读写操作_第5张图片

引用变量data,可以看到电脑自动为我们整理了格式:

data

#这行代码没有实际作用,它只是单纯地引用了变量data。在交互式的Python解释器中,输入一个变量名可以显示该变量的值

用Python实现Excel文档的读写操作_第6张图片 

三、Excel文件的写入操作步骤 

3.1、示例2:将示例1读取的Excel文件内容,写入到另一个Excel中并保存在文件夹R&Q_pic里面。对学校所在省份进行简单判断。第一行合并单元格显示标题 

#(1)导入模块:xlwt
import xlrd
import xlwt

#(2)读取工作簿内容:WorkBook
def read_excel(file_name):
    wb = xlrd.open_workbook(file_name)

    #指定工作簿中的工作簿sheet
    sheet = wb.sheet_by_index(0)

    #根据行列序号读取工作内容
    schools = []         #定义一个二维列表存放每行工作表数据
    for row in range(sheet.nrows):
        school = []          #定义一个一维列表存放每个单元格的数据
        for col in range(sheet.ncols):
            content = sheet.cell_value(row,col)           #读取每个单元格数据存放在变量content里面
            school.append(content)         #将单元格的数据追加到一维列表school的里面
        schools.append(school)        #将每行的数据追加到二维列表schools里面
    return schools
    

#(3)写入文件内容
def write_excel(schools):
    
    
    #(2)构造工作簿:WorkBook
    wb = xlwt.Workbook(encoding = 'utf-8')

    #(3)为工作簿添加表单:WorkSheet
    sheet = wb.add_sheet('上海市高校信息表')
    
    #添加文本的样式(字体和对齐)
    font = xlwt.Font()    #字体
    font.blod = True
    font.hetght = 400
    font.underline = True
    font.colour_index = 6           #0:黑,1:白,2:红,3:绿,4:蓝,5:黄,6:紫
    align = xlwt.Alignment()   #对齐
    align.horz = 2   #水平居中 1:左,2:中,3:右
    align.vert = 1   #垂直居中0:上,1:中,2:下
    style= xlwt.XFStyle()    #样式
    style.font = font
    style.alignment = align

    #(4)根据行列序号写入内容
    sheet.write_merge(0,0,0,6,'上海市高校信息表',style)    #在工作表的第一行写入表头内容并合并单元格第一行第一列到第一行第七列
    for col in range(7):              #在工作表的第2行写入列表名称
        sheet.write(1,col,schools[0][col])     #将读取文件的第一行每一列单元格内容写入进去

    row_num = 2    #从第3行开始写数据

    for school in schools:
        if school[2]=='上海市':
            for col in range(7):
                sheet.write(row_num,col,school[col])    #讲对应对的单元格内容写入每一行
            row_num = row_num+1                      #每行内容写完之后自加一

    wb.save('../R&Q_pic/上海市高校信息表.xls')       #将写入的文件保存到指定的路径
#(4)调用函数
schools_list = read_excel('../Stu_pack/school.xls')
write_excel(schools_list)

查看文件夹内工作表:

用Python实现Excel文档的读写操作_第7张图片

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(python,excel)