python若何解决表格?
python解决表格的办法:
python操作excel次要用到xlrd以及xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。可从这里下载https://pypi.python.org/pypi。上面辨别记载python读以及写excel。
Python写excel——xlwt
Python写excel的难点没有正在结构一个workbook的自身,而是填充的数据,不外这没有正在范畴内。正在写excel的操作中也有辣手的成绩,比方写入兼并的单位格就是比拟费事的,另外写入另有没有同的款式。
具体代码以下:
import xlwt #设置表格款式 def set_style(name,height,bold=False): style = xlwt.XFStyle() font = xlwt.Font() font.name = name font.bold = bold font.color_index = 4 font.height = height style.font = font return style #写Excel def write_excel(): f = xlwt.Workbook() sheet1 = f.add_sheet('先生',cell_overwrite_ok=True) row0 = ["姓名","春秋","出身日期","喜好"] colum0 = ["张三","李四","恋习Python","小明","小红","知名"] sheet1.write(0,i,row0[i],set_style('Times New Roman',220,True)) #写第一列 for i in range(0,len(colum0)): sheet1.write(i+1,0,colum0[i],set_style('Times New Roman',220,True)) sheet1.write(1,3,'2006/12/12') sheet1.write_merge(6,6,1,3,'未知')#兼并行单位格 sheet1.write_merge(1,2,3,3,'打游戏')#兼并列单位格 sheet1.write_merge(4,5,3,3,'打篮球') f.save('test.xls') if __name__ == '__main__': write_excel()
后果图:
正在此,对write_merge()的用法稍作诠释,如上述:sheet1.write_merge(1,2,3,3,'打游戏'),即正在四列兼并第2,3列,兼并后的单位格内容为"算计",并设置了style。此中,外面一切的参数都是以0开端较量争论的。
Python读excel——xlrd
Python读取Excel表格,相比xlwt来讲,xlrd提供的接口比拟多,但进程也有几个比拟费事的成绩,比方读取日期、读兼并单位格内容。
上面先看看根本的操作:
全体思绪为,关上文件,选定表格,读取行列内容,读取表格内数据
具体代码以下:
import xlrd from datetime import date,datetime file = 'test3.xlsx' def read_excel(): wb = xlrd.open_workbook(filename=file)#关上文件 print(wb.sheet_names())#猎取一切表格名字 sheet1 = wb.sheet_by_index(0)#经过索引猎取表格 sheet2 = wb.sheet_by_name('年级')#经过名字猎取表格 print(sheet1,sheet2) print(sheet1.name,sheet1.nrows,sheet1.ncols) rows = sheet1.row_values(2)#猎取行内容 cols = sheet1.col_values(3)#猎取列内容 print(rows) print(cols) print(sheet1.cell(1,0).value)#猎取表格里的内容,三种形式 print(sheet1.cell_value(1,0)) print(sheet1.row(1)[0].value)
运转后果以下:
那末成绩来了,下面的运转后果中红框框中的字段明明是出身日期,可显示确实实浮点数;同时兼并单位格外面应该是有内容的,后果不克不及为空。
别急,咱们来逐个处理这两个成绩:
1.python读取excel中单位格内容为日期的形式
python读取excel中单位格的内容前往的有5品种型,即下面例子中的ctype:
ctype : 0 empty,1 string,2 number, 3 date,4 boolean,5 error
即date的ctype=3,这时候需求应用xlrd的xldate_as_tuple来解决为date格局,先判别表格的ctype=3时xldate能力开端操作。
具体代码以下:
import xlrd from datetime import date,datetime print(sheet1.cell(1,2).ctype) date_value = xlrd.xldate_as_tuple(sheet1.cell_value(1,2),wb.datemode) print(date_value) print(date(*date_value[:3])) print(date(*date_value[: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, 5)的含意是:第1到2行(没有包罗3)兼并,(7, 8, 2, 5)的含意是:第2到4列兼并。
具体代码以下:
print(sheet1.merged_cells)print(sheet1.cell_value(1,3)) print(sheet1.cell_value(4,3)) print(sheet1.cell_value(6,1))
发现法则了没?是的,猎取merge_cells前往的row以及col低位的索引便可! 于是能够这样批量猎取:
具体代码以下:
merge = [] print(sheet1.merged_cells) for (rlow,rhigh,clow,chigh) in sheet1.merged_cells: merge.append([rlow,clow]) for index in merge: print(sheet1.cell_value(index[0],index[1]))
运转后果跟上图同样,以下:
保举教程:《python》
以上就是python若何解决表格?的具体内容,更多请存眷资源魔其它相干文章!
标签: Python 表格 python教程 python编程 python使用问题
抱歉,评论功能暂时关闭!