python读写Excel表格(简单实用)

本文详细介绍如何使用Python的xlrd和xlwt库进行Excel文件的读写操作。文章首先展示了读取Excel文件的方法,包括获取所有sheet的名字、读取特定单元格的数据及处理日期格式。随后,介绍了写入数据至Excel的过程,包括设置表格样式、合并单元格以及填充数据。通过实际代码示例,读者可以快速掌握Python处理Excel文件的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装两个库:pip install xlrd、pip install xlwt
1.python读excel——xlrd
2.python写excel——xlwt

1.读excel数据,包括日期等数据

#coding=utf-8
import xlrd
import datetime
from datetime import date
def read_excel():
    #打开文件
    wb = xlrd.open_workbook(r'test.xlsx')
    #获取所有sheet的名字
    print(wb.sheet_names())
    #获取第二个sheet的表明
    sheet2 = wb.sheet_names()[1]
    #sheet1索引从0开始,得到sheet1表的句柄
    sheet1 = wb.sheet_by_index(0)
    rowNum = sheet1.nrows
    colNum = sheet1.ncols
    #s = sheet1.cell(1,0).value.encode('utf-8')
    s = sheet1.cell(1,0).value
    #获取某一个位置的数据
    #  1 ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
    print(sheet1.cell(1,2).ctype)
    print(s)
    #print(s.decode('utf-8'))
    #获取整行和整列的数据
    #第二行数据
    row2 = sheet1.row_values(1)
    #第二列数据
    cols2 = sheet1.col_values(2)
    #python读取excel中单元格内容为日期的方式
    #返回类型有5种
    for i in range(rowNum):
        if sheet1.cell(i,2).ctype == 3:
            d = xlrd.xldate_as_tuple(sheet1.cell_value(i,2),wb.datemode)
            print(date(*d[:3]),end='')
            print('\n')

if __name__ == '__main__':
    read_excel()~
 

运行效果
在这里插入图片描述

2.往excel写入数据

#coding=utf-8
import xlwt
#设置表格样式
def set_stlye(name,height,bold=False):
    #初始化样式
    style = xlwt.XFStyle()
    #创建字体
    font = xlwt.Font()
    font.bold = bold
    font.colour_index = 4
    font.height = height
    font.name =name
    style.font = font
    return style

#写入数据
def write_excel():
    f = xlwt.Workbook()
    #创建sheet1
    sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True)
    row0 = [u'业务',u'状态',u'北京',u'上海',u'广州',u'深圳',u'状态小计',u'合计']
    column0 = [u'机票',u'船票',u'火车票',u'汽车票',u'其他']
    status = [u'预定',u'出票',u'退票',u'业务小计']
    for i in range(0,len(row0)):
        sheet1.write(0,i,row0[i],set_stlye("Time New Roman",220,True))
    i,j = 1,0
    while i <4*len(column0):    #控制循环:每次加4
        #第一列
        sheet1.write_merge(i,i+3,0,0,column0[j],set_stlye('Arial',220,True))
        #最后一列
        sheet1.write_merge(i,i+3,7,7)
        i += 4
    sheet1.write_merge(21,21,0,1,u'合计',set_stlye("Time New Roman",220,True))

    i=0
    while i<4*len(column0):   #控制外层循环:每次加4
        for j in range(0,len(status)):   #控制内层循环:设置每一行内容
            sheet1.write(i+j+1,1,status[j])
        i += 4

    #创建sheet2
    sheet2 = f.add_sheet(u'sheet2',cell_overwrite_ok=True)
    row0 = [u'姓名',u'年龄',u'出生日期',u'爱好',u'关系']
    column0 = [u'UZI',u'Faker',u'大司马',u'PDD',u'冯提莫']

    #生成第一行
    for i in range(0,len(row0)):
        sheet2.write(0,i,row0[i],set_stlye('Times New Roman',220,True))

    #生成第一列
    for i in range(0,len(column0)):
        sheet2.write(i+1,0,column0[i],set_stlye('Times New Roman',220,True))
    f.save('data.xls')

if __name__ == '__main__':
    write_excel()~

在data.xls种生成了sheet1和sheet2:
在这里插入图片描述

在这里插入图片描述

参考文档:
https://www.cnblogs.com/lulin9501/p/11081810.html

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值