Python使用xlwt和xlrd库读写Excel文件详解
本文详细介绍如何利用Python的xlwt和xlrd库实现Excel文件的自动化读写。通过xlwt.Workbook创建文件,add_sheet添加工作表,write写入数据,save保存文件;结合xlrd读取指定行列内容,实现从源文件提取数据并生成新Excel的完整流程。
Python Excel处理库简介
在Python中处理Excel文件时,主要依赖两个第三方库:xlrd和xlwt。
其中,xlrd库专门用于读取Excel文件,而xlwt库则用于创建和写入Excel文件。
xlwt写入Excel操作方法
1)xlwt库的核心操作方法如下:
使用xlwt.Workbook()可以创建一个空白的工作簿对象。
通过调用工作簿对象的.add_sheet()方法,可以在该工作簿中创建一个工作表,该方法会返回新创建的工作表对象。
对于工作表对象,.write(row, col, data)方法用于在指定位置写入数据,其中row表示行号(从0开始,实际保存到第row+1行),col表示列号,data为要写入的具体数据。
最后,调用工作簿对象的.save('文件名.xls')方法将内容保存为Excel文件。
xlrd读取Excel操作方法
2)xlrd库的核心操作方法如下:
首先需要打开目标Excel文件以读取其中的数据。
使用data = xlrd.open_workbook('文件名.xls')语句即可打开指定的Excel文件。
以下是一些常用的代码示例:
# 通过工作表名称获取表格对象:table = data.sheet_by_name(u'Sheet1')
获取整行或整列的数据(返回数组形式):
table.row_values(i) table.col_values(i)
获取表格的行数和列数:
nrows = table.nrows ncols = table.ncols
完整代码实现示例
以下是具体的实现代码示例:
import xlwt
import xlrd
# 一:.Workbook 创建工作簿,目前空白
testbook = xlwt.Workbook(encoding='utf-8')
# 二:创建sheet页即工作表,对象是工作簿
test_sheet = testbook.add_sheet('新新人类')
# 三:写入数据,1、下面是从别的文件读取的数据,所以先打开一个文件
data1 = xlrd.open_workbook('C:\\Users\\ccccc\\Documents\\Python学习笔记\\新新人类模板.xls')
# 2、再打开工作表
table1 = data1.sheet_by_name(u'Sheet1')
# 3、row_values 获取这个工作表第0行的整行数据,返回数组类型
name1 = table1.row_values(0)
# 4、获取这个工作表的列数,返回int
nrows1 = table1.ncols
# 5、下面循环把第0行所有列的数据的依次写入之前创建的工作表test_sheet
for j in range(nrows1):
# 6、写入数据,write(row,col,data)为工作表对象,表示在第row+1行第col列添加data数据
test_sheet.write(0, j, name1[j])
# 四:保存文件名,下面是从别的文件获取文件名
data = xlrd.open_workbook('C:\\Users\\ccccc\\Documents\\Python学习笔记\\新新人类编号.xls')
table = data.sheet_by_name(u'Sheet1')
name = table.col_values(0)
bank = table.col_values(1)
nrows = table.nrows
for i in range(nrows):
bank1 = bank[i]
# 把返回的数组里的每个先赋值变量bank1,再截取字符串的前4个,这里可以先加个判断是否有4位,否则不足4位会报错
bank2 = bank1[0:4]
# 四、save保存文件
testbook.save('C:\\Users\\ccccc\\Documents\\Python学习笔记\\'+'新新-'+name[i]+'-'+bank2+'-.xls')
[/code]


代码中存在一些需要修正的地方,将在后文说明。
原始代码是从两个不同的Excel文件中分别获取数据,实际应用中可以优化为仅操作一个Excel文件,将不同类别的数据分别存放在该文件的不同工作表中。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









