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

举报
踏破千重浪 发表于 2023/07/26 22:41:37 2023/07/26
【摘要】 xltx是Python的一个库,用于创建和修改Microsoft Excel文件,xltx库只能创建Excel 2007及以上版本的文件,无法创建早期版本的Excel文件。

文章目录

前言

一、查找表格内容

二、合并表格

三、表格修改

总结


前言

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

一、查找表格内容

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

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里面元素一个个输入到表格内。

三、表格修改

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


总结

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文件。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。