Python处理excel表中的字符型数据

我们经常需要利用Python来处理数据,其中有一个常用的就是利用Python来处理excel表中的数据,也就是.xlsx文件和.xls文件。一般情况下可以分为两种情况,第一种就是大数据、机器学习中的数据,大部分都是数值型数据,另一种就是字符型数据,就是处理各种各样的字符串。处理数值型数据,个人觉得使用pandas较为方便,而处理字符型的数据,最近实习,要处理很多这种字符型的excel表单,经常使用到一个工具就是openpyxl,因此这里写这篇文章来记录使用的一些简单用法,也当做自己的一个笔记。

读取excel表

一、打开excel表
通过load_workbook()打开excel表格

wb = openpyxl.load_workbook(filename)

二、打开具体表单
通过wb[表单名]就可以打开具体的表单,如果不知道表单名,可以通过wb.sheetnames获取所有的表单名,然后再进行访问

wsheet = wb[sheetName]
sheetNames = wb.sheetnames
wsheet2 = wb[sheetNames[0]]

三、进行值的访问
此时具体的表单已经打开,接下来就是具体的读取数据的问题。一般读取数据比较简单的方式就是直接通过索引访问

for i in range(1, wsheet.max_row + 1):
    if i == 1:  # 第一行一般都是属性列的名称
        continue
    order = wsheet.cell(row=i, column=1).value
    tempStr = wsheet.cell(row=i, column=5).value
    stuName = wsheet.cell(row=i, column=2).value

写入excel表

一、创建表格和表单

wb2 = openpyxl.Workbook()  # 存储新的生成的表格
sheet2 = wb2.active
sheet2.title = 'test1'  # 设置表单的名称

二、写入数据
创建好表单之后,就是最重要的往其中写入数据的过程了。

sheet2.cell(row=1, column=1, value=value1)
sheet2.cell(row=1, column=2, value=value2)

三、表单格式的美化
基本的数据写入之后,还可以调整单元格的格式,例如字体样式,居中显示,单元格的列宽与行高等等
设置为居中显示如下所示

for i in range(nrows):  #设置为居中显示
   for j in range(ncols):
       sheet2.cell(row=i + 1, column=j + 1).alignment = Alignment(horizontal='center', vertical='center')

设置单元格的合并如下所示

sheet2.merge_cells(start_row=lastSame, end_row=i-1, start_column=1, end_column=1)

设置行高和列宽如下所示

sheet2.row_dimensions[i].height = 40
sheet2.column_dimensions['F'].width = 20

四、保存为excel文件
通过wb.save(文件名)即可保存此excel文件

wb2.save('out2.xlsx')

本篇文章就分享了一点最简单的使用方法,虽然是一些最简单的操作,但却也是最常用的操作,掌握后可以应对很多的应用场景,希望对大家有所帮助!