一、读入一个excel文件,并存为csv格式,并把优秀变成90,良好80,及格60,没有交0分。
excel文件如下
代码如下
1 import pandas as pd 2 start=['优秀','良好','合格','不合格'] 3 change=['90分','80分','60分','0分'] 4 file=pd.read_excel("Python成绩登记信计.xlsx") 5 l=len(file.index) 6 for index in range (l): 7 for i in range(4): 8 file.iloc[index]=file.iloc[index].replace(start[i],change[i]) 9 file.to_csv("Python成绩登记信计csv.csv",index=False,header=1)
运行结果如下
二、将上述csv格式文件转换为html文件
可利用pandas
代码如下
1 import pandas as pd 2 f=pd.read_csv("Python成绩登记信计csv.csv") 3 f.to_html("Python成绩登记信计.html")
因为csv文件中有中文,所以可能转换后的html中可能出现乱码
解决办法:可在python中打开转换后的html文件,然后在第一行加入
<head> <meta charset="UTF-8">
然后再次打开就可以啦
三、运用python CGI把上面的csv格式文件,用网页显示 截屏
代码如下
1 def fill_data(excel,length=4): 2 text='<tr>' 3 for i in range(length): 4 tmp='<td align="center">{}</td>'.format(excel[i+1]) 5 text +=tmp 6 text +="</tr> " 7 return text 8 def GetCsv(csvFile): 9 ls=[] 10 csv=open(csvFile,'r',encoding="utf-8") 11 for line in csv: 12 line=line.replace(' ','') 13 ls.append(line.split(',')) 14 return ls 15 def CsvToHtml(csvFile,thNum): 16 csv_list=GetCsv(csvFile) 17 print("Content-type:text/html ") 18 print(''' 19 <!DOCTYPE HTML> <html> <body> <meta charset=gbk2313) 20 <h1 align=center>Python成绩表</h2> 21 <table border='blue> ''') 22 for i in range(1,thNum+1): 23 print('<th width="20%">{}</th>'.format(csv_list[0][i])) 24 print("</tr> ") 25 for i in range(1, len(csv_list)): # 写表格的数据,从第2行开始为数据 26 print(fill_data(csv_list[i], 5)) 27 print("</table> </body> </html>") # 写html文件尾部 28 29 CsvToHtml("C:pyhton编程Python成绩登记信计csv.csv",5)