Python使用xlrd与xlwt进行Excel读写及格式设置详解

Chloe
Chloe
发布时间:2026-10-13| 4人浏览过
原创

本文详细介绍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读写及格式设置的技巧能对您的学习或工作有所帮助。如有任何疑问,欢迎在评论区留言交流。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。