# -*- coding: utf-8 -*- from __future__ import division #加这个保证除法后是小数 import math from numpy import * import openpyxl #onesheet import xlrd #twosheet # 打开文件 workbook = xlrd.open_workbook(r'1.xlsx') # 获取所有sheet print workbook.sheet_names() # [u'sheet1', u'sheet2'] #获取sheet1 sheet1_name= workbook.sheet_names()[0] # 根据sheet索引或者名称获取sheet内容 sheet1 = workbook.sheet_by_name(sheet1_name) #step1:从excel中读取特征矩阵 a1=mat(zeros((6,6))); for i in range(1,7): for j in range(1,7): print sheet1.cell(i,j).value a1[i-1,j-1] = sheet1.cell(i,j).value print u'step1脆弱性矩阵为' print a1 #获取sheet2 sheet2_name= workbook.sheet_names()[1] # 根据sheet索引或者名称获取sheet内容 sheet2 = workbook.sheet_by_name(sheet2_name) lf = sheet2.row_values(1) # 获取第2行内容 print 'fi' print lf #step2:每行相、* print u'step2计算各个指标权重' lm = [] for i in range(6): mul = 1 for j in range(6): mul *= a1[i,j] lm.append(mul) # print '1:每行的每个元素相乘' # print lm #step3:开方 l1 =[] sum = 0 for i in range(6): temp = lm[i] ** (1/6) #输出第i行的数据 l1.append(temp) sum += temp # print u'2:开方' # print l1 #第四部归一化 l2 = [] for i in range(6): l2.append(l1[i]/sum) # print '归一化后得到每个指标的权重为' # print l2 # step6、计算脆弱性(威胁)的总体得分:R=∑_(i=1)^n▒〖x_i*f〗i RV = 0 print u'指标权重'+' '+u'指标频数等级' for i in range(6): print l2[i],lf[i] RV += l2[i]*lf[i] # print u"中文" 只要在中文前面加上个小u标记,后面的中文就用 unicode 存储了。 print u'step:3计算脆弱性(威胁)的总体得分Rv' print RV
更新版本
读取excel含有多个sheet,链接
https://blog.csdn.net/u013314786/article/details/60874019
# -*- coding: utf-8 -*-from __future__ import division #加这个保证除法后是小数import mathfrom numpy import *import openpyxl #onesheetimport xlrd #twosheet def onesheet(): # 打开excel文件,获取工作簿对象 wb = openpyxl.load_workbook('1.xlsx') # 从表单中获取单元格的内容 ws = wb.active # 当前活跃的表单
#step1:从excel中读取特征矩阵 a1=mat(zeros((6,6))); for i in range(2,8): for j in range(2,8): a1[i-2,j-2] = ws.cell(row=i,column=j).value
# def twosheet(): # 打开文件workbook = xlrd.open_workbook(r'1.xlsx')# 获取所有sheetprint workbook.sheet_names() # [u'sheet1', u'sheet2']#获取sheet1sheet1_name= workbook.sheet_names()[0]# 根据sheet索引或者名称获取sheet内容sheet1 = workbook.sheet_by_name(sheet1_name)#step1:从excel中读取特征矩阵a1=mat(zeros((6,6)));for i in range(1,7): for j in range(1,7): print sheet1.cell(i,j).value a1[i-1,j-1] = sheet1.cell(i,j).valueprint u'step1脆弱性矩阵为'print a1
#获取sheet2sheet2_name= workbook.sheet_names()[1]# 根据sheet索引或者名称获取sheet内容sheet2 = workbook.sheet_by_name(sheet2_name)lf = sheet2.row_values(1) # 获取第2行内容print 'fi'print lf
#step2:每行相、*print u'step2计算各个指标权重'lm = []for i in range(6): mul = 1 for j in range(6): mul *= a1[i,j] lm.append(mul)# print '1:每行的每个元素相乘'# print lm
#step3:开方l1 =[]sum = 0for i in range(6): temp = lm[i] ** (1/6) #输出第i行的数据 l1.append(temp) sum += temp# print u'2:开方'# print l1
#第四部归一化 l2 = []for i in range(6): l2.append(l1[i]/sum)# print '归一化后得到每个指标的权重为'# print l2
# step6、计算脆弱性(威胁)的总体得分:R=∑_(i=1)^n▒〖x_i*f〗i
RV = 0print u'指标权重'+' '+u'指标频数等级'for i in range(6): print l2[i],lf[i] RV += l2[i]*lf[i]# print u"中文" 只要在中文前面加上个小u标记,后面的中文就用 unicode 存储了。print u'step:3计算脆弱性(威胁)的总体得分Rv'print RV