首页 > 编程语言 >基于Python对xsl&xslx文件进行操作

基于Python对xsl&xslx文件进行操作

时间:2024-12-15 20:56:02浏览次数:5  
标签:sheet wb Python xslx value print col xsl row

利用python操作表格文件

读取xsl格式文件-源码

import xlrd

# 读取xls文件中的工作对象
wb = xlrd.open_workbook('示例文件/xxx物理学与信息技术学院.xls')
print(wb)

# 获取所有的工作表名称
sheet_names = wb.sheet_names()
# print(sheet_names)

# 选择要读取的具体工作表对象
sheet = wb.sheet_by_name(sheet_names[0])
# print(sheet)

# 查看工作表的行和列数
# print(sheet.nrows,sheet.ncols)  # 329 6

# 通过循环的方式获取工作表中每行和每列的数据
for row in range(sheet.nrows):
    for col in range(sheet.ncols):
        # print(row,col)
        # 通过cell对象中的value属性获取具体单元格式中的数据
        value = sheet.cell(row, col).value
        # print(value)
'''
        # 将第一行以外的数据进行格式化处理
        if row > 0:
            # 将第一列的数据转化为年月日的格式
            if col == 0:
                value = xlrd.xldate_as_tuple(value,0)
                # print(value)
                # :>2d 表示月份和日期保留两位数
                value = f'{value[0]}年{value[1]:>02d}月{value[2]:>02d}日'
                # print(value)
            else:
                # 将除了第一列的数据之外的数据保留两位小数
                value = f'{value:.2f}'
            print(value,end='\t')
        print()  # 实现换行的效果
'''

读取xsl格式文件-源码解析

这段代码使用 xlrd 库来读取和处理一个名为 xxx物理学与信息技术学院.xls 的 Excel 文件。以下是对代码的详细分析:

1. 导入库

import xlrd
  • xlrd 是一个用于读取 Excel 文件的 Python 库。

2. 打开工作簿

wb = xlrd.open_workbook('示例文件/xxx物理学与信息技术学院.xls')
print(wb)
  • xlrd.open_workbook 函数用于打开一个 Excel 文件,并返回一个工作簿对象 wb

  • print(wb) 打印工作簿对象,通常会显示文件路径和一些元数据。

3. 获取所有的工作表名称

sheet_names = wb.sheet_names()
# print(sheet_names)
  • wb.sheet_names() 返回一个包含所有工作表名称的列表。

4. 选择要读取的具体工作表对象

sheet = wb.sheet_by_name(sheet_names[0])
# print(sheet)
  • wb.sheet_by_name(sheet_names[0]) 根据工作表名称获取第一个工作表对象 sheet

5. 查看工作表的行和列数

# print(sheet.nrows, sheet.ncols)  # 329 6
  • sheet.nrows 返回工作表的行数。

  • sheet.ncols 返回工作表的列数。

6. 通过循环的方式获取工作表中每行和每列的数据

for row in range(sheet.nrows):
    for col in range(sheet.ncols):
        value = sheet.cell(row, col).value
        # 将第一行以外的数据进行格式化处理
        if row > 0:
            # 将第一列的数据转化为年月日的格式
            if col == 0:
                value = xlrd.xldate_as_tuple(value, 0)
                value = f'{value[0]}年{value[1]:>02d}月{value[2]:>02d}日'
            else:
                # 将除了第一列的数据之外的数据保留两位小数
                value = f'{value:.2f}'
            print(value, end='\t')
        print()  # 实现换行的效果
  • 外层循环 for row in range(sheet.nrows) 遍历每一行。

  • 内层循环 for col in range(sheet.ncols) 遍历每一列。

  • sheet.cell(row, col).value 获取指定单元格的值。

  • 如果当前行不是第一行(即 row > 0),则对数据进行格式化处理:
    • 如果当前列是第一列(即 col == 0),则将日期格式化为 年月日 的形式。

    • 否则,将数值保留两位小数。

  • print(value, end='\t') 打印格式化后的值,并使用制表符 \t 分隔。

  • print() 打印一个空行,实现换行的效果。

总结

这段代码的主要功能是读取一个 Excel 文件,并对其中的数据进行格式化处理:

  • 将第一列的日期格式化为 年月日 的形式。

  • 将其他数值保留两位小数。

  • 使用制表符分隔每列的数据,并在每行结束后换行。

通过这种方式,代码能够有效地处理和展示 Excel 文件中的数据。

向xsl文件写入数据-源码

import xlwt
import random

# 创建工作薄对象
wb = xlwt.Workbook()

# 创建工作表对象
sheet = wb.add_sheet('高一三班')

# 定义学生姓名
students = ['张三','李四','王五','里尔','飞天','闰土']

# 通过列表生成式生成 语数英成绩
scores = [[random.randrange(50,151) for i in range(3)] for j in range(6)]
# print(scores)

# 创建表头数据
titles = ['姓名','语文','数学','英语']

for index,title in enumerate(titles):
    # print(index,title)
    # 将数据添加到sheet工作表中
    # 第一个参数表示工作行 第二个参数表示列 第三个参数表示具体内容
    sheet.write(0,index,title)

# 将学生的姓名成绩依次写入到文件中
for row in range(len(scores)):
    # print(row)
    sheet.write(row+1,0,students[row])  # 从第二行开始写入相关的数据
    for col in range(len(scores[row])):
        sheet.write(row+1,col+1,scores[row][col])
# 将数据写入到工作薄当中
wb.save('示例文件/考试成绩.xls')

向xsl文件写入数据-源码解析

这段代码使用了 xlwt 库来创建一个 Excel 文件,并在其中写入学生的姓名和随机生成的语文、数学、英语成绩。以下是对代码的详细分析:

1. 导入库

import xlwt
import random
  • xlwt 是一个用于创建和写入 Excel 文件的 Python 库。

  • random 库用于生成随机数。

2. 创建工作簿对象

wb = xlwt.Workbook()
  • xlwt.Workbook() 创建一个新的工作簿对象 wb

3. 创建工作表对象

sheet = wb.add_sheet('高一三班')
  • wb.add_sheet('高一三班') 在工作簿中添加一个名为 '高一三班' 的工作表,并返回该工作表对象 sheet

4. 定义学生姓名

students = ['张三', '李四', '王五', '里尔', '飞天', '闰土']
  • students 列表包含了六个学生的姓名。

5. 生成成绩数据

scores = [[random.randrange(50, 151) for i in range(3)] for j in range(6)]
  • 使用列表生成式生成一个包含 6 个学生的语文、数学、英语成绩的二维列表 scores

  • random.randrange(50, 151) 生成一个 50 到 150 之间的随机整数。

6. 创建表头数据

titles = ['姓名', '语文', '数学', '英语']
  • titles 列表包含了表头信息。

7. 写入表头数据

for index, title in enumerate(titles):
    sheet.write(0, index, title)
  • 使用 enumerate(titles) 遍历 titles 列表,同时获取索引 index 和标题 title

  • sheet.write(0, index, title) 将表头数据写入工作表的第一行。

8. 写入学生姓名和成绩

for row in range(len(scores)):
    sheet.write(row + 1, 0, students[row])  # 从第二行开始写入相关的数据
    for col in range(len(scores[row])):
        sheet.write(row + 1, col + 1, scores[row][col])
  • 外层循环遍历 scores 列表的每一行。

  • sheet.write(row + 1, 0, students[row]) 将学生姓名写入工作表的第二行及之后的每一行的第一列。

  • 内层循环遍历 scores[row] 列表的每一个元素。

  • sheet.write(row + 1, col + 1, scores[row][col]) 将成绩写入工作表的第二行及之后的每一行的相应列。

9. 保存工作簿

wb.save('示例文件/考试成绩.xls')
  • wb.save('示例文件/考试成绩.xls') 将工作簿保存为名为 '考试成绩.xls' 的文件。

总结

这段代码的主要功能是创建一个 Excel 文件,并在其中写入学生的姓名和随机生成的语文、数学、英语成绩。通过使用 xlwt 库,代码能够方便地创建和操作 Excel 文件,实现对数据的存储和管理。

读取xslx格式文件-源码

import openpyxl

# 加载工作薄
wb = openpyxl.load_workbook(r'示例文件\xx硕士信息.xlsx')

# 获取工作表名称
print(wb.sheetnames)  # ['Sheet1', 'Sheet2', 'Sheet3']

# 获取要操作的工作表
sheet = wb.worksheets[0]

# 获取工作表中单元格的范围
# print(sheet.dimensions)  # A1:E64814

# 获取行数和列数
# print(sheet.max_row,sheet.max_column)  # 64814 5

# 获取指定单元格的值
# print(sheet.cell(3,3).value)

# 获取多个单元格的值
# print(sheet['A2:C5'])

# 获取单元格中所有的数据
for row in range(2,69):
    for col in "ABCDE":
        value = sheet[f"{col}{row}"].value
        print(value,end='\t')
    print()  # 换行

读取xslx格式文件-源码解析

这段代码使用了 openpyxl 库来加载和操作一个名为 xx硕士信息.xlsx 的 Excel 文件。以下是对代码的详细分析:

1. 导入库

import openpyxl
  • openpyxl 是一个用于读取和写入 Excel 文件的 Python 库。

2. 加载工作簿

wb = openpyxl.load_workbook(r'示例文件\清华硕士信息.xlsx')
  • openpyxl.load_workbook(r'示例文件\xx硕士信息.xlsx') 加载指定的 Excel 文件,并返回一个工作簿对象 wb

3. 获取工作表名称

print(wb.sheetnames)  # ['Sheet1', 'Sheet2', 'Sheet3']
  • wb.sheetnames 返回一个包含所有工作表名称的列表。

4. 获取要操作的工作表

sheet = wb.worksheets[0]
  • wb.worksheets[0] 获取工作簿中的第一个工作表对象 sheet

5. 获取工作表中单元格的范围

# print(sheet.dimensions)  # A1:E64814
  • sheet.dimensions 返回工作表中单元格的范围,例如 A1:E64814

6. 获取行数和列数

# print(sheet.max_row,sheet.max_column)  # 64814 5
  • sheet.max_row 返回工作表中的最大行数。

  • sheet.max_column 返回工作表中的最大列数。

7. 获取指定单元格的值

# print(sheet.cell(3,3).value)
  • sheet.cell(3,3).value 获取第 3 行第 3 列单元格的值。

8. 获取多个单元格的值

# print(sheet['A2:C5'])
  • sheet['A2:C5'] 获取从 A2 到 C5 的矩形区域内的所有单元格的值。

9. 获取单元格中所有的数据

for row in range(2,69):
    for col in "ABCDE":
        value = sheet[f"{col}{row}"].value
        print(value,end='\t')
    print()  # 换行
  • 外层循环 for row in range(2,69) 遍历从第 2 行到第 68 行。

  • 内层循环 for col in "ABCDE" 遍历从 A 到 E 的列。

  • sheet[f"{col}{row}"].value 获取指定单元格的值。

  • print(value,end='\t') 打印单元格的值,并使用制表符 \t 分隔。

  • print() 打印一个空行,实现换行的效果。

总结

这段代码的主要功能是加载一个 Excel 文件,并从中读取数据。通过使用 openpyxl 库,代码能够方便地访问和操作 Excel 文件中的单元格数据,实现对数据的读取和处理。

向xslx文件写入数据-源码

import random
import openpyxl

# 创建工作薄
wb = openpyxl.Workbook()

# 添加工作表
sheet = wb.active
sheet.title = '测试成绩'

# 写入数据 定义标题
titles = ("姓名", "射箭", "射击", "足球")

# 将标题写入到文件中
for col_index, title in enumerate(titles):
    sheet.cell(1, col_index + 1, title)

# 定义学生姓名
students = ("echo", "时针", "小梦", "大盒", "小羽", "snowy", "辰辰", "痞老板", "Gscsed")

# 将姓名和成绩写入到文件中
for row_index, student in enumerate(students):
    sheet.cell(row_index + 2, 1, student)
    for col_index in range(2, 5):
        sheet.cell(row_index + 2, col_index, random.randrange(50, 101))
# 将数据保存到工作薄中
wb.save('示例文件\测试成绩.xlsx')

向xslx文件写入数据-源码解析

这段代码使用了 openpyxl 库来创建一个 Excel 文件,并在其中写入学生的姓名和随机生成的射箭、射击、足球成绩。以下是对代码的详细分析:

1. 导入库

import random
import openpyxl
  • random 库用于生成随机数。

  • openpyxl 是一个用于创建和写入 Excel 文件的 Python 库。

2. 创建工作簿

wb = openpyxl.Workbook()
  • openpyxl.Workbook() 创建一个新的工作簿对象 wb

3. 添加工作表

sheet = wb.active
sheet.title = '测试成绩'
  • wb.active 获取活动工作表对象。

  • sheet.title = '测试成绩' 将活动工作表的标题设置为 '测试成绩'。

4. 写入数据 定义标题

titles = ("姓名", "射箭", "射击", "足球")
  • titles 元组包含了列标题。

5. 将标题写入到文件中

for col_index, title in enumerate(titles):
    sheet.cell(1, col_index + 1, title)
  • 使用 enumerate(titles) 遍历 titles 元组,同时获取索引 col_index 和标题 title

  • sheet.cell(1, col_index + 1, title) 将标题写入工作表的第一行。

6. 定义学生姓名

students = ("echo", "时针", "小梦", "大盒", "小羽", "snowy", "辰辰", "痞老板", "Gscsed")
  • students 元组包含了学生的姓名。

7. 将姓名和成绩写入到文件中

for row_index, student in enumerate(students):
    sheet.cell(row_index + 2, 1, student)
    for col_index in range(2, 5):
        sheet.cell(row_index + 2, col_index, random.randrange(50, 101))
  • 外层循环遍历 students 元组的每一个元素。

  • sheet.cell(row_index + 2, 1, student) 将学生姓名写入工作表的第二行及之后的每一行的第一列。

  • 内层循环遍历射箭、射击、足球这三列。

  • sheet.cell(row_index + 2, col_index, random.randrange(50, 101)) 将随机生成的成绩写入工作表的第二行及之后的每一行的相应列。

8. 将数据保存到工作簿中

wb.save('示例文件\测试成绩.xlsx')
  • wb.save('示例文件\测试成绩.xlsx') 将工作簿保存为名为 '测试成绩.xlsx' 的文件。

总结

这段代码的主要功能是创建一个 Excel 文件,并在其中写入学生的姓名和随机生成的射箭、射击、足球成绩。通过使用 openpyxl 库,代码能够方便地创建和操作 Excel 文件,实现对数据的存储和管理。

标签:sheet,wb,Python,xslx,value,print,col,xsl,row
From: https://blog.csdn.net/m0_74907475/article/details/144477200

相关文章

  • Python小区物业报修管理系统_78ahx-
    文章目录项目介绍具体实现截图开发技术设计思路开发与测试:核心代码部分展示文章目录/协作提纲源码/演示视频获取方式项目介绍管理员用例图依据管理员的权限需求以及对系统的管理需求进行分析,主要包括了个人中心、物业管理、业主管理、维修员管理、小区公告管理、小......
  • 【C#脚本】C#调用Python脚本的方式(一),以PaddleOCR-GUI为例
    以下文章来源于mingupup的学习记录,作者DotNet学习交流前言每种语言都有每种语言的优势,Python由于其强大的生态,很多任务通过调用包就可以实现,那么学会从C#项目中调用Python脚本完成任务就很重要。C#调用Python代码有多种方式,如果Python那边内容比较多,可以考虑起一个WebApi进行......
  • (免费领源码)python#Django#mysql餐厅点餐管理系统06940-计算机毕设 原创
                                              目 录摘要1绪论1.1研究背景与意义1.2开发现状1.3Django框架介绍1.3论文结构与章节安排2 餐厅点餐管理系统系统分析2.1可......
  • 计算机课程设计+毕业设计作品+python/django/vue的毕业设计/课程设计选题集锦
    项目列表计算机课程设计/毕业设计作品计算机课程设计/毕业设计指南,为计算机相关专业毕业生提供源码、数据库安装、远程调试等相关服务,提供功能讲解视频,下面是50个基于python/django/vue的毕业设计/课程设计。如需java毕业设计/课程设计,请移步至这里在这里插入图片描述网......
  • Python 中乱码问题
    1问题本文主要探究Python中进行写文件并输入学生信息。如果要以列表形式输入多个信息要如何做?乱码了又要怎么去解决?2方法注意代码乱码的情况,一定要记住用常用的字符集‘UTF-8’它可以表示大多数语言中的字符。它采用可变长度的编码方式,能够有效的表示各种字符。如代码......
  • 学生成绩管理--Python
    定义学生类Student:(1)定义构造函数,有学号、姓名、三门课成绩,并在此构造函数中计算三门课的平均分。(2)重写方法_lt_(),根据平均成绩排序降序,平均成绩相同,按第一门课成绩降序。(3)重写方法_str_(),设置输出格式,输出数据顺序:学号姓名第一门课成绩第二门课成绩平均成绩......
  • Python OCR文字识别api接口
     一.引言文字识别,也称为光学字符识别(OpticalCharacterRecognition,OCR),是一种将不同形式的文档(如扫描的纸质文档、PDF文件或数字相机拍摄的图片)中的文字转换成可编辑和可搜索的数据的技术。随着技术的发展,文字识别技术已经成为信息管理、自动化办公和智能系统的关键组成部......
  • CPython调试和性能分析
    cpython解释器在源码ceval.c的_PyEval_EvalFrameDefault函数有一个大的switch(opcdoe)就是字节码解释器的主要部分,示例代码如下:switch(opcode){caseLOAD_FAST://实现LOAD_FAST操作的代码break;caseSTORE_FAST://实现STORE_F......
  • 简单上手Python爬虫实战:QQ邮箱收件箱信息爬取
        本次Python爬虫实战运用到的技术比原来多了一个selenium,如果有小伙伴不知道selenium是什么的话,这边建议你们出门左拐去搜一下,毕竟山海君也不会讲原理,怕误人子弟。这个实战本来是我们实验报告里的,但是感觉实战专栏里没有涉及到selenium这一部分,就放到这里了。(邮箱涉......
  • Python3虚拟机和对象
    2024年最推荐的python3版本为3.11python虚拟机和对象Python对象和虚拟机_v4.pdfPython虚拟机的原理•字节码生成•虚拟机运行Python对象的实现•数据结构•类型系统•内存管理Python虚拟机字节码和机器码有什么区别字节码和机器码是计算机程序执行的两种不同形......