下面就为您讲解“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技术站