编程小白的自学笔记二(用python处理表格文件)

169 阅读5分钟

#编程小白的自学笔记二(用python处理表格文件)

系列文章目录

文章目录

前言

昨天我学习了表格的创建、写入和读取,今天又学习了新的内容,具体如下:

提示:以下是本篇文章正文内容,下面案例可供参考

一、查找表格内容

当我自学到这个内容的时候,我想到之前已经学了表格的读取,那么在没有专门的函数调用情况下,查找只需要做一个判断就行,然而书上确实就是加了一个循环判断而已。具体代码如下:

import xlrd
workbook = xlrd.open_workbook('new.xls')
table = workbook.sheet_by_index(0)
for rownum in range(table.nrows):
    row = table.row_values(rownum)
    if row[0]=='python':
        print(row[1])
        Break

通过open_workbook函数打开new.xls表格文件,再通过sheet_by_index打开工作表,最后通过循环遍历第一列元素,这时的表格可以看成是一个字典,查找key,取出值。    

如果需要遍历全部元素,难道要嵌套循环?row_values返回的是一个列表,是否可以用index函数,我提出问题,并进行了代码编写。结果是可行的。具体代码如下:

import xlrd
workbook = xlrd.open_workbook('new.xls')
table = workbook.sheet_by_index(0)
for rownum in range(table.nrows):
    row = table.row_values(rownum)
    a = row.index('java')
    if a >= 0:
        print('元素位置为第%d行第%d列'%(rownum,a))
        Break

 输出结果为:元素位置为第0行第1列

二、合并表格

题目的要求是将一个有姓名和体重的表和一个有姓名和升高的合并成一个新表,新表包含姓名、身高、体重,两张原表的顺序是不一致的。看到此处,总算感觉学了python能有点用处用到工作上了。

书上提供的方案是将两个表的数据按行读取到两个列表里,相当于列表里嵌套列表,在进行比较,利用两个循环将第二个列表的元素,添加到第一个列表的子列表里。具体代码如下:

import xlrd,xlwt
workbook = xlrd.open_workbook('new.xls')
table =  workbook.sheet_by_index(0)
data = []
for rownum in range(table.nrows):
    row = table.row_values(rownum)
    data.append(row)

table = workbook.sheet_by_index(1)
for rownum in range(table.nrows):
    row = table.row_values(rownum)
    for d_row in data:
        if d_row[0] == row[0]:
            d_row.append(row[1])

book = xlwt.Workbook()
sheet1=book.add_sheet('sheet1')
r = 0
for row in data :
    c = 0
    for cell in row :
        sheet1.write(r,c,cell)
        c += 1
    r +=1
book.save('new1.xls')

这里说明一下代码的流程,第一个for循环将第一个工作表的内容保存到data列表里,data列表的每一个数据也是一个列表,是工作表的每一行数据。

第二个for循环,读取第二个工作表的每一行数据,并将每一行的第一个数据与data的子列表的第一个元素比较,如果相同,就添加到子列表里面。

全部循环完毕后,data列表里每个子列表都有三个元素。最后,创建新表格,将data里面元素一个个输入到表格内。

三、表格修改

表格修改比较简单,只需要找到你要修改的地方,然后进行输入操作,将原来的内容覆盖即可。这里就不用代码展示了。

总结

xlrd是Python的一个库,用于读取和解析Microsoft Excel文件。以下是xlrd库中一些常用方法的详细解析:

  1. open_workbook(filename):打开Excel文件并返回一个Workbook对象。 2. sheet_by_index(index):根据索引号获取工作表,索引号从0开始。 3. sheet_by_name(name):根据名称获取工作表,名称为字符串类型。 4. nrows():获取工作表中的行数。 5. ncols():获取工作表中的列数。 6. cell_value(row, col):获取指定单元格的值,其中row和col分别表示行号和列号。 7. row_values(row):获取指定行的所有单元格的值,返回一个列表。 8. col_values(col):获取指定列的所有单元格的值,返回一个列表。 9. cell_type(row, col):获取指定单元格的数据类型,返回一个整数。 10. cell_is_date(row, col):判断指定单元格是否为日期格式,返回一个布尔值。 11. cell_is_numeric(row, col):判断指定单元格是否为数字格式,返回一个布尔值。 12. cell_is_string(row, col):判断指定单元格是否为字符串格式,返回一个布尔值。 13. cell_bool(row, col):获取指定单元格的布尔值。 14. cell_error(row, col):获取指定单元格的错误信息。 15. save(workbook):将Workbook对象保存到文件中。 以上是xlrd库中一些常用方法的详细解析,使用这些方法可以方便地读取和处理Excel文件。

xltx是Python的一个库,用于创建和修改Microsoft Excel文件。以下是xltx库中一些常用方法的详细解析:

  1. Workbook():创建一个新的Workbook对象。 2. add_sheet(sheet):向Workbook对象中添加一个新的工作表。 3. write(row, col, value):在指定单元格中写入数据。 4. set_column(col, width):设置指定列的宽度。 5. set_row(row, height):设置指定行的高度。 6. merge_range(first_row, first_col, last_row, last_col):合并指定范围的单元格。 7. insert_rows(num_rows):在工作表中插入指定数量的空行。 8. delete_rows(num_rows):删除指定数量的行。 9. insert_cols(num_cols):在工作表中插入指定数量的空列。 10. delete_cols(num_cols):删除指定数量的列。 11. save(workbook):将Workbook对象保存到文件中。 12. close():关闭Workbook对象并释放资源。 以上是xltx库中一些常用方法的详细解析,使用这些方法可以方便地创建和修改Excel文件。需要注意的是,xltx库只能创建Excel 2007及以上版本的文件,无法创建早期版本的Excel文件。