Python xlrd/xlwt 创建excel文件及常用操作

yizhihongxing

下面就为您讲解“Pythonxlrd/xlwt创建excel文件及常用操作”的完整实例教程。

1. 准备工作

在使用pythonxlrd/xlwt库之前,需要先安装这两个库。可以使用pip命令进行安装。

pip install xlrd xlwt

2. 创建Excel文件

要创建一个Excel文件,首先需要使用xlwt库创建一个Workbook对象,然后在该对象上创建一个Worksheet对象,最后在Worksheet对象上添加数据并保存即可。

下面是一个例子,创建一个包含学生信息的Excel表格:

import xlwt

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

# 创建Worksheet对象
ws = wb.add_sheet('sheet1')

# 写入数据
ws.write(0, 0, '姓名')
ws.write(0, 1, '年龄')
ws.write(0, 2, '性别')

ws.write(1, 0, '张三')
ws.write(1, 1, 20)
ws.write(1, 2, '男')

ws.write(2, 0, '李四')
ws.write(2, 1, 21)
ws.write(2, 2, '女')

# 保存文件
wb.save('student.xls')

以上代码创建了一个名为student.xls的Excel文件,包含一个名为sheet1的工作表,数据如下:

姓名 年龄 性别
张三 20
李四 21

3. 打开Excel文件

打开现有的Excel文件同样需要用到xlrd库。使用xlrd库打开一个Excel文件是通过open_workbook函数实现的,该函数的参数为Excel文件的路径。

下面是一个例子,打开刚才创建的student.xls文件,并读取里面的数据:

import xlrd

# 打开文件
wb = xlrd.open_workbook('student.xls')

# 获取Worksheet对象
ws = wb.sheet_by_name('sheet1')

# 读取数据
name = ws.cell(1, 0).value # 获取第2行第1列单元格的值
age = ws.cell(1, 1).value # 获取第2行第2列单元格的值
sex = ws.cell(1, 2).value # 获取第2行第3列单元格的值

print(name, age, sex) # 输出:张三 20 男

4. 示例说明

以上是使用xlwt/xlrd库创建和打开Excel文件的简单示例,下面再给出一个实际应用的例子。

假设某公司需要统计每个月员工的出勤情况,并且需要将统计结果以Excel文件的形式汇总起来,每个月的汇总数据放在不同的工作表中。我们可以使用xlwt库将数据写入Excel文件,使用xlrd库读取Excel文件中的数据。

# 导入所需的库
import xlwt
import xlrd
import datetime

# 获取当前日期
now = datetime.datetime.now()

# 模拟员工出勤数据
attendance_data = {
    '张三': [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0],
    '李四': [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1],
    '王五': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
}

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

# 循环创建每个月的工作表,并将统计数据写入工作表
for i in range(12):
    # 获取月份字符串,如:'2022/01'
    month = now.strftime('%Y/%m')

    # 创建Worksheet对象
    ws = wb.add_sheet(month)

    # 写入表头
    ws.write(0, 0, '姓名')
    ws.write(0, 1, '出勤天数')

    # 循环写入每个员工的出勤数据
    row = 1
    for name, data in attendance_data.items():
        attendance = sum(data[i:i+30]) # 统计该员工该月的出勤天数
        ws.write(row, 0, name)
        ws.write(row, 1, attendance)
        row += 1

    # 获取上个月的最后一天日期
    now -= datetime.timedelta(days=1)

# 保存文件
wb.save('attendance.xls')

# 打开文件
wb = xlrd.open_workbook('attendance.xls')

# 获取最后一个工作表,即12月的出勤情况
ws = wb.sheet_by_index(11)

# 获取最后一个员工的出勤天数
name = ws.cell(3, 0).value
attendance = ws.cell(3, 1).value

print(f'{name}在12月的出勤天数为{attendance}天。')

以上代码会创建一个名为attendance.xls的Excel文件,包含12个工作表,每个工作表对应一个月的出勤情况。本例中创建了一个名为attendance_data的字典,存储了3名员工每个月的出勤情况,每个月的出勤情况以列表的形式存储。

示例中循环12次,每次创建一个新的工作表,将该月的统计数据写入工作表中。统计方法为循环每个员工的出勤情况列表,使用切片的方式取出该员工该月的出勤情况,并统计该列表中值为1的个数。

最后,通过使用xlrd库读取Excel文件中的数据来获取12月的出勤情况,并输出最后一个员工的出勤天数。

以上就是完整的“Pythonxlrd/xlwt创建excel文件及常用操作”教程,希望能够对您有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python xlrd/xlwt 创建excel文件及常用操作 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • python删除某个目录文件夹的方法

    当需要删除某个目录文件夹时,Python提供了os模块中的os.rmdir()和shutil模块中的shutil.rmtree()两个方法。 1. 使用os模块的os.rmdir()方法删除空目录 os.rmdir()方法用于删除一个空目录。如果目录非空,则会抛出OSError。 import os # 要删除目录的路径 path = "/home…

    python 2023年6月2日
    00
  • 使用python验证代理ip是否可用的实现方法

    使用Python验证代理IP是否可用的实现方法可以通过发送请求测试代理服务器是否正常工作,以下是一些攻略步骤: Step 1: 了解代理IP的概念和作用 代理服务器作为用户和互联网上的服务器之间的中间层,用于在用户和真正的服务器之间进行转发和过滤,从而实现隐藏用户真正IP地址的效果。因此,代理IP在网络爬虫以及其他类似应用的开发中,可以用于隐藏用户的真实身份…

    python 2023年6月6日
    00
  • Python中数字以及算数运算符的相关使用

    下面是详细讲解“Python中数字以及算数运算符的相关使用”的完整攻略。 1. 数字类型 在Python中,数字类型包括整数、浮点数和复数。其中,整数是没有小数部的数字浮点数是带有小数部分的数字,而复数是由实数和数部分组成的数字。 1.1 整数 在Python中,整数类型用int表示,可以进行加、减、乘、除、模、幂等运算。 a = 10 b = 3 prin…

    python 2023年5月14日
    00
  • Python中的正则表达式与JSON数据交换格式

    以下是详细讲解“Python中的正则表达式与JSON数据交换格式”的完整攻略,包括什么是正则表达式、什么是JSON数据交换格式、如何使用正则表达式解析JSON数据、两个示例说明和注意事项。 什么是正则表达式 正则表达式是一种用于匹配字符串的模式。它是一种特殊的语法,可以用来描述字符串的特征。在Python中,我们可以使用re模块来操作正则表达式。 什么是JS…

    python 2023年5月14日
    00
  • python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例

    Python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例攻略 一、控件简介 PyQt5的QPushButton控件是一种切换按钮控件。它通常被用于创建带有切换功能的用户界面。当用户单击该按钮时,该按钮的状态会改变。例如,我们可以将该按钮用于激活或禁用一个应用程序的组件。 二、控件用法 1. 创建QPushButton…

    python 2023年6月13日
    00
  • Python字符和字符值(ASCII或Unicode码值)转换方法

    当涉及到字符和字符值(ASCII或Unicode码值)之间的转换时,Python提供了很多内置函数和方法。 Python字符和字符值(ASCII或Unicode码值)转换方法 1. ord()函数 ord()函数用于将字符转换为对应的ASCII或Unicode码值。它的语法如下: ord(character) 其中character是要转换的字符,可以是字符…

    python 2023年5月31日
    00
  • Python程序笔记20230301

    打印九九乘法表 for i in range(1, 10): for j in range(1, i+1): print(i, “x”, j, “=”, i * j, end=’ ‘) print(“\n”) 第三行的 print(i, “x”, j, “=”, i * j, end=’ ‘) 打印出 i 和 j 的乘积,并在末尾添加一个空格,以便下一个数字…

    python 2023年4月18日
    00
  • Python基于Socket实现简易多人聊天室的示例代码

    下面是详细的攻略。 Python基于Socket实现简易多人聊天室 概述 在本示例中,我们将使用Python的Socket库建立一个简单的多人聊天室。我们将会通过网络实现实时通信,让不同的客户端可以在同一台主机上互相聊天,并且能够观察到其他用户的消息。 实现步骤 1. 创建服务端 在Python中使用Socket实现多人聊天室,需要先创建一个服务端程序,接受…

    python 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部