版权声明:转载请联系博主。 https://blog.csdn.net/sunyaowu315/article/details/81982308
1 openpyxl
from openpyxl import load_workbook #excel文件读写模块
'''excel文件读写模块'''
def get_excel(self,indata,sheetname,row_add,col_add):
# 将数据和字段名写入excel的函数
ds1 = indata.copy()
#加载文件
#激活sheet页
#workbook = load_workbook(_path + '\日报数据.xlsx')
worksheet = workbook.get_sheet_by_name(sheetname)
#将数据循环写入excel的每个单元格中
for row in range(ds1.shape[0]):
for col in range(ds1.shape[1]):
worksheet.cell(row = row + row_add, column = col + col_add).value = ds1.values[row][col]
#返回生成的excel
#workbook.save(_path + '\日报数据.xlsx')
2 xlwt
import xlwt
import xlsxwriter
def data_query_description(self,num,name):
data = pd.read_excel(_path +'\data\%s.xlsx'%name[5])
worksheet1 = workbook.add_worksheet('query_data_report')
worksheet1.set_column('A:B',50)
a = ['通讯录信息','运营商信息','通话记录','通话记录']
b = ['phone_counts','voice_counts','tel_5_counts','emer_in_voice']
c = ['开通通讯录权限','开通运营商信息权限','有通话记录','与紧急联系人存在通话记录']
data_count = []
m = 0
for i,j,n in zip(a,b,c):
_p = len(data)
_q = len(data[data[j]>0])
data_count.append(_q)
d,e = '爬取%i数据共%s条,其中有效数据共%i条' %(num,i,_q),'说明用户%s的比例为:%.2f%%' %(n,_q/_p*100)
print(d,e)
worksheet1.write(m,0,d)#写入excel报告
worksheet1.write(m,1,e)#写入excel报告
time.sleep(0)
m += 1
print('-----next-----')
time.sleep(0)
d = '开通运营商权限的%i个用户中,有过通话记录的为%i,占比%.2f%%' %(data_count[1],data_count[2],data_count[2]/data_count[1]*100)
print(d)
e = '有过通话记录的%i个用户中,与紧急联系人通话的为%i,占比%.2f%%' %(data_count[2],data_count[3],data_count[3]/data_count[2]*100)
print('-----next-----')
print(e)
print('Bingo!')
worksheet1.write(m + 1,0,d)#写入excel报告
worksheet1.write(m + 2,0,e)#写入excel报告
self.data_query_show(num,data,name,worksheet1)
workbook.close() #关闭excel文件
return data
3 openpyxl