Python中对 Excel 的相关详细操作(读取、写入、指定行、指定列、新增sheet工作表)

工作中用到这点,就简单的整理了一下

目录

一、准备cateContent.xlsx工作簿

二、Python中关于Excel表格常用操作总结:

2.1  读取相关的操作

2.2  写入的相关操作:

三、读取Excel工作簿中对应工作表的信息(简单抽取)

四、写入操作:从一个表中读取内容的同时写入到另一个新表中

4.1  具体的写入操作

4.2  向新文件中执行写入操作:

五、向原有的工作簿中新增一个新的sheet工作表:

5.1 新增sheet工作表方法一(使用 xlutils.copy 模块)

5.2  新增sheet工作表方法二( 使用openpyxl 模块)


一、准备cateContent.xlsx工作簿

工作簿中已有两个工作表如下:

工作表一:(关于一个美食的相关内容)

工作表二:(成绩表)

二、Python中关于Excel表格常用操作总结:

2.1  读取相关的操作

"""
-*- coding:utf-8 -*-
Group       : Sirius
Author      : xiao66guo
Time        : 2020-04-21 16:27
Software    : PyCharm
ProjectName : ReadExcel
FileName    : readexcel.py
E-mail      : XXXXXX@163.com
"""

import xlrd

'''打开要读取的excel表格'''
xl = xlrd.open_workbook('./cateContent.xlsx')

'''通过索引获取要操作的工作表'''
table = xl.sheets()[0]
print('获取到的工作表名称为:%s' % table)

'''获取共有的行数'''
rows = table.nrows
print('Sheet1工作表中共有< %d >行数据' % rows)

'''获取指定行的内容,从索引为0处开始(第0行对应的内容就是每一列的标题)'''
row = table.row_values(0)
print(row)

'''获取指定列的整列内容'''
col = table.col_values(1)
print(col)

'''获取指定单元格的值(索引从0开始,获取第几行第几列对应坐标所在单元格中的值)'''
content = table.cell(4, 0).value
print(content)

2.2  写入的相关操作:

"""
-*- coding:utf-8 -*-
Group       : Sirius
Author      : xiao66guo
Time        : 2020-04-21 16:32
Software    : PyCharm
ProjectName : ReadExcel
FileName    : write_excel.py
E-mail      : XXXXXX@163.com
"""

import xlsxwriter

'''创建excel文件'''
xl = xlsxwriter.Workbook('./write_excel.xlsx')

'''添加工作表'''
sheet = xl.add_worksheet('新表')

'''向单元格cell中添加数据,写入索引(标题)'''
sheet.write_string(0, 0, 'user_name')

'''将内容写入到指定的单元格'''
sheet.write_string('B1', 'comment')

'''设置单元格宽度(列宽)大小'''
sheet.set_column('A:B', 30)

三、读取Excel工作簿中对应工作表的信息(简单抽取)

"""
-*- coding:utf-8 -*-
Group       : Sirius
Author      : xiao66guo
Time        : 2020-04-21 16:27
Software    : PyCharm
ProjectName : ReadExcel
FileName    : readexcel.py
E-mail      : XXXXXX@163.com
"""

import xlrd

'''
读取Excel中对应工作表中的信息
file_path: 要读取的工作簿文件的路径
sheet_index: 工作簿中对应的工作表索引,从 0 开始
'''
def read_excel_data(file_path, sheet_index):
    '''空列表用来存放后面读取到的内容'''
    table_content = []
    '''打开要操作的工作簿'''
    xl = xlrd.open_workbook(file_path)
    '''通过索引获取要操作的工作表'''
    table = xl.sheets()[sheet_index]
    '''循环取出工作表中对应行的内容'''
    for i in range(0, table.nrows):
        '''根据索引取出对应行的内容'''
        row_content = table.row_values(i)
        '''将读取到的信息添加到列表中'''
        table_content.append(row_content)
    return table_content

print(read_excel_data('./cateContent.xlsx', 1))

执行结果:

四、写入操作:从一个表中读取内容的同时写入到另一个新表中

4.1  具体的写入操作

"""
-*- coding:utf-8 -*-
Group       : Sirius
Author      : xiao66guo
Time        : 2020-04-21 16:32
Software    : PyCharm
ProjectName : ReadExcel
FileName    : write_excel.py
E-mail      : XXXXXX@163.com
"""

import xlsxwriter, readexcel

'''
向表中写入操作
new_table: 要写入内容的新的工作表
datas: 要写入的内容列表
'''
def write_sheet(new_table, datas):
    '''循环取出内容列表中的元素对应的信息'''
    for i in range(len(datas)):
        '''通过索引取出对应的信息'''
        row_content = datas[i]
        print(row_content)
        '''循环取出列表中每个元素中子元素的内容,用于后面写入到指定的单元格中'''
        for j in range(len(row_content)):
            '''将取出的子元素写入到指定的单元格中(i: 第几行, j: 第几列)'''
            new_table.write(i, j, row_content[j])
            print(i, j, row_content[j])

4.2  向新文件中执行写入操作:

第一步:创建新的Excel文件

第二步:调用readexcel.py文件中的读取操作

第三步:调用具体的写入操作

'''
将数据写入到excel文件
file_path: 要进行写入操作的工作表文件所在路径
sheet_name: 要写入新内容的新的工作表名字
'''
def write_excel_data(file_path, sheet_name):
    ''' 创建工作簿 '''
    xl = xlsxwriter.Workbook(file_path)
    ''' 创建工作表 '''
    table = xl.add_worksheet(sheet_name)
    ''' 读取另一个源表中的数据 '''
    datas = readexcel.read_excel_data('./cateContent.xlsx', 1)
    '''调用具体的写入操作'''
    write_sheet(table, datas)
    '''关闭工作表'''
    xl.close()

write_excel_data('./write_excel.xlsx', '成绩表')

五、向原有的工作簿中新增一个新的sheet工作表:

提示:如果使用 xlutils.copy 模块进行新增sheet工作表操作的话,原有的文件的格式是 .xlsx 扩展名,执行操作后的文件会报一下的错误

进入到copy的文件内会看到如下内容:

到这里应该明白是什么情况了

5.1 新增sheet工作表方法一(使用 xlutils.copy 模块

先看下原有的工作簿中有几个工作表:

具体操作:

"""
-*- coding:utf-8 -*-
Group       : Sirius
Author      : xiao66guo
Time        : 2020-04-22 22:38
Software    : PyCharm
ProjectName : ReadExcel
FileName    : copyExcel.py
E-mail      : XXXXXX@163.com
"""

import xlrd
from xlutils.copy import copy as xg_copy

'''打开要新增sheet工作表的工作簿'''
xl = xlrd.open_workbook('write_excel.xls')
'''可以查看原有工作簿中有几个工作表'''
print(xl.sheets())
'''
copy源工作簿
这一步的操作就是将源工作簿连同里面的内容信息完整的复制出来一份
'''
new_table = xg_copy(xl)

'''执行新增sheet工作表操作'''
new_table.add_sheet('新增工作表')
new_table.save('write_excel.xls')

再次查看是否新增成功:

5.2  新增sheet工作表方法二( 使用openpyxl 模块)

"""
-*- coding:utf-8 -*-
Group       : Sirius
Author      : xiao66guo
Time        : 2020-04-21 22:59
Software    : PyCharm
ProjectName : ReadExcel
FileName    : indexExcel.py
E-mail      : XXXXXX@163.com
"""

import openpyxl

'''打开要新增sheet工作表的工作簿'''
xl = openpyxl.load_workbook('cateContent.xlsx')
'''向指定索引位置新增sheet工作表'''
xl.create_sheet(title='娃哈哈', index=1)

xl.save('cateContent.xlsx')

这次使用的是事先准备的 cateContent.xlsx 工作簿,执行后进行查看验证:

 

 

©️2020 CSDN 皮肤主题: 游动-白 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值