Python使用xlrd与xlwt进行Excel读写及格式设置详解
本文详细介绍Python中利用xlrd读取和xlwt写入Excel文件的方法。涵盖全局变量使用、单元格合并、日期格式转换(xldate处理)及样式设定等核心操作,提供完整代码示例与注意事项,帮助开发者高效完成Excel自动化处理任务。
前言
在Python中操作Excel文件,主要依赖xlrd和xlwt这两个第三方库。其中,xlrd负责读取Excel数据,而xlwt则用于写入Excel文件。本文将深入讲解如何利用这两个库实现Excel的读写操作以及单元格格式的详细设定,以下是具体的实现步骤。
在编写Python脚本时,建议在文件开头添加编码声明:# -*- coding:utf-8 -*-,以确保中文字符的正确处理。
第一步,验证源Excel文件是否存在,并使用xlrd库读取该文件第一个工作表(sheet)中每一行第一列的数据值。
import xlrd, xlwt
import os
assert os.path.isfile('source_excel.xls'),"There is no timesheet exist. Exit..."
book = xlrd.open_workbook('source_excel.xls')
sheet=book.sheet_by_index(0)
for rows in range(sheet.nrows):
value = sheet.cell(rows,0).value
第二步,使用xlwt创建一个新的工作簿,将读取到的数据写入新表中,同时设置列宽和表格的整体格式。例如,可以合并第2行第8列的区域来写入标题,并应用之前定义的标题样式tittle_style。
这里使用的是write_merge方法来实现单元格的合并与内容写入。
wbk = xlwt.Workbook(encoding='utf-8')
sheet_w = wbk.add_sheet('write_after', cell_overwrite_ok=True)
sheet_w.col(3).width = 5000
tittle_style = xlwt.easyxf('font: height 300, name SimSun, colour_index red, bold on; align: wrap on, vert centre, horiz center;')
sheet_w.write_merge(0,2,0,8,u'这是标题',tittle_style)
第三步,如果在函数内部需要修改全局变量,务必使用global关键字声明。否则,程序会抛出UnboundLocalError:local variable'xxx' referenced before assignment.错误,导致变量无法正确更新。
check_num = 0 def check_data(sheet): global check_num check_num=check_num+1
第四步,处理日期和带有特定格式的数值。假设从源表中读取的日期格式为2014/4/10,处理后可仅保留日期部分,将其存入数组并用逗号分隔,最后写入新的Excel文件中。
date_arr = []
date=sheet.cell(row,2).value.rsplit('/')[-1]
if date not in date_arr:
date_arr.append(date)
sheet_w.write_merge(row2,row2,6,6,date_num, normal_style)
sheet_w.write_merge(row2,row2,7,7,','.join(date_arr), normal_style)
第五步,当从Excel读取的日期格式为xldate类型时,必须使用xlrd库中的xldate_as_tuple函数将其转换为date格式。在操作前,需先判断单元格的ctype是否为xldate,否则可能引发错误。转换后的date格式可通过strftime方法转化为字符串,例如:date.strftime("%Y-%m-%d-%H")。
from datetime import date,datetime
from xlrd import xldate_as_tuple
if (sheet.cell(rows,3).ctype == 3):
num=num+1
date_value = xldate_as_tuple(sheet.cell_value(rows,3),book.datemode)
date_tmp = date(*date_value[:3]).strftime("%d")
最后,调用保存方法将新创建的Excel文件保存至磁盘。
wbk.save('new_excel.xls')
总结
以上就是本文的全部内容,希望这些关于Python使用xlrd与xlwt进行Excel读写及格式设置的技巧能对您的学习或工作有所帮助。如有任何疑问,欢迎在评论区留言交流。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













