python如何处理表格用什么库,python如何处理表格
python如何处理表格?
python处理表格的方法:
Python excel主要使用xlrd和xlwt两个库,即xlrd是读取excel的库,xlwt是写入excel的库。你可以从这里下载https://pypi.python.org/pypi。下面分别记录python读写excel。
编写Python excel——xlwt
写Python excel的难点不在于工作簿本身的构造,而在于填充的数据,但这个不在范围之内。写excel也有棘手的问题。比如写合并单元格就比较麻烦,而且有不同的写法。
详细代码如下:
导入xlwt
#设置表格样式
def set_style(名称,高度,粗体=False):
style=xlwt。XFStyle()
font=xlwt。字体()
font.name=name
font.bold=bold
font.color_index=4
font.height=高度
style.font=font
返回样式
#编写Excel
def write_excel():
f=xlwt。工作簿()
Sheet1=f.add_sheet (student ,cell_overwrite_ok=True)
Row0=[姓名,年龄,出生日期,爱好]
column 0=[张三,李四,爱蟒,小明,小红,未知]
sheet1.write(0,I,row0[i],set_style(Times New Roman ,220,True))
#写第一列
对于范围(0,len(column 0)):内的I
sheet1.write(i 1,0,column 0[I],set_style(Times New Roman ,220,True))
sheet 1 . write(2006年12月12日1月3日)
Sheet.write _ merge (6,6,1,3, unknown) #合并行单元格
1.sheet _ write _ merge (1,2,3,3,玩游戏)#合并列单元格
1.sheet _ write _ merge (4,5,3,3,打篮球)
保存( test.xls )
if __name__==__main__:
Write_excel()结果图表:
这里稍微解释一下write_merge()的用法,比如上面:sheet1.write_merge(1,2,3,3,打游戏),即第二列和第三列合并成四列,合并后的单元格内容为合计,并设置样式。其中,里面所有的参数都是从0开始计算的。
阅读Python excel——xlrd
与xlwt相比,xlrd提供了更多读取Excel表格的接口,但在过程中也存在一些麻烦的问题,比如读取日期和合并单元格的内容。
我们先来看看基本操作:
总体思路是打开文件,选择表格,读取行和列的内容,读取表格中的数据。
详细代码如下:
导入xlrd
从日期时间导入日期,日期时间
file=test3.xlsx
def read_excel():
WB=xlrd . Open _ workbook(filename=file)#打开文件
Print(wb.sheet_names())#获取所有表格名称
1=wb.sheet _ by _ index (0) #按索引获取表格
sheet=WB . sheet _ by _ name( grade )#按名称获取表单
打印(第一页,第二页)
print(sheet1.name,sheet1.nrows,sheet1.ncols)
Rows=sheet1.row_values(2)#获取行内容
Col=sheet1.col _ values (3) #获取列内容
打印(行)
打印(列)
Print(sheet1.cell(1,0))。value)#通过三种方式获取表格的内容
print(sheet1.cell_value(1,0))
Print(sheet1.row(1)[0]。值)运行如下:
那么问题来了。上面运行结果中红框的字段明明是出生日期,实际能显示的浮点数;同时,合并后的单元格中应该有内容,结果不能为空。
别急,让我们逐一解决这两个问题:
1.1.python将excel中单元格的内容作为日期读取的方式
在python excel中读取单元格的内容有五种类型的返回,即上例中的ctype:
ctype : 0空,1个字符串,2个数字,3个日期,4个布尔值,5个错误
即date=3的ctype。此时需要使用xlrd的xldate_as_tuple将其处理成日期格式。只有当表的ctype确定为3时,xldate才能开始运行。
详细代码如下:
导入xlrd
从日期时间导入日期,日期时间
print(sheet1.cell(1,2)。ctype)
date _ value=xlrd . XL date _ as _ tuple(sheet 1 . cell _ value(1,2),wb.datemode)
打印(日期值)
打印(日期(*日期值[:3])
打印(日期(*日期值[:3])。strftime(%Y/%m/%d ))
2.获取合并单元格的内容
在操作之前,我们先介绍一下merged_cells()的用法。merged_cells返回的这四个参数的含义是:(row,row_range,col,col_range),其中[row,row_range]包括row但不包括row_range,col相同,即(1,3,4)
详细代码如下:
print(sheet 1 . merged _ cells)print(sheet 1 . cell _ value(1,3))
print(sheet1.cell_value(4,3))
print(sheet1.cell_value(6,1))
找到规律了吗?可以,只需获取merge_cells返回的row和col低位的索引!所以你可以像这样分批得到它:
详细代码如下:
merge=[]
打印(sheet1.merged_cells)
sheet1.merged_cells:中的for (rlow,rhigh,clow,chigh)
merge.append([rlow,clow])
对于merge:中的索引
print(sheet 1 . cell _ value(index[0],index [1])的运行结果如下:
推荐教程:以上《python》是python如何处理表格的?更多详情请关注盛行IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。