使用python中openpyxl模块操作excel文件,计算单元格分子式的相对分子质量(一)
2018-02-03 21:53
597 查看
背景:本人是力学专业博士,从事分子动力学模拟,最近需要对结果进行数据分析,其中一项就是计算每一时刻的不同分子式的相对分子质量并将最大相对分子质量输出,换出曲线图。已知,分子式数据均保存在excel文件中,且各分子式均是由O,N,C,H按照顺序排列。如果使用excel计算的话,可能会比较慢,excel文件比较大,有十几兆。刚好最近在自学python,考虑用python中openpyxl模块进行计算。
步骤:
1. 定义计算包含O,N,C,H分子式的相对分子质量
2. 使用openpyxl模块操作excel
3. 将想得到的数据保存在新的表单里
附上代码,请各位大神提出更好的建议,修改成为更简洁的代码。
最后附上excel文件的部分截图(事先的excel中的数据已经进行简单处理,各单元格均是O,N,C,H四种元素构成,且C原子数大于6):
步骤:
1. 定义计算包含O,N,C,H分子式的相对分子质量
2. 使用openpyxl模块操作excel
3. 将想得到的数据保存在新的表单里
附上代码,请各位大神提出更好的建议,修改成为更简洁的代码。
import openpyxl import re def massMr(s):#定义计算相对分子质量的函数, list1 = ['O', 'N', 'C', 'H'] dict1 = {'O':16, 'N':14, 'C':12, 'H':1} a = re.findall('\d+', s) sum = 0 for i in range(4): sum += int(dict1[list1[i]]) * int(a[i]) # print('相对分子质量为:%d'% sum) return sum wb = openpyxl.load_workbook('test.xlsx') ws = wb.get_active_sheet() #print(ws) sheet = wb.get_sheet_by_name('Sheet1')#进入表单1 ws1 = wb.create_sheet(index = 1, title = 'Sheet2')#新建表单2 list1 = [] list3 = [] #print(sheet['A1'].value) for i in range(1, int(sheet.max_row) + 1, 2):#对奇数行进行迭代 for j in range(1,int(sheet.max_column) + 1):#对列进行迭代, if sheet.cell(row = i, column = j).value == None:#单元格为空,跳出循环 break else:#单元格不为空,进行计算 cellMass = massMr(str(sheet.cell(row = i, column = j).value)) #dict1 = dict((cellMass, str(sheet.cell(row = i, column = j).value))) #print(dict1) list2 = list1.append(cellMass) cellMass_max = max(list1)#使用max函数取相对分子质量最大的值 list4 = list3.append(cellMass_max)#将cellMass_max生成列表 ws1.append(list3)#注意append时,参数需为列表,元祖等可迭代对象 list3 = [] wb.save('test.xlsx')#保存在原文件中, #print(list1, cellMass_max) list1 = []
最后附上excel文件的部分截图(事先的excel中的数据已经进行简单处理,各单元格均是O,N,C,H四种元素构成,且C原子数大于6):
相关文章推荐
- 使用python中openpyxl模块操作excel文件,计算单元格分子式的相对分子质量(二)
- Python使用xlwt模块 操作Excel文件
- Windows下Python使用Pandas模块操作Excel文件的教程
- Windows下Python使用Pandas模块操作Excel文件的教程
- Python学习之使用ctypes模块操作C扩展程序
- python使用xlrd模块读写Excel文件的方法
- Python使用xlrd模块操作Excel数据导入的方法
- Python使用os模块和fileinput模块来操作文件目录
- Python中操作Excel 2000的xlsx文件(使用openpyxl)
- python中使用time模块计算代码执行效率的精度测试(转)
- Python程序中用csv模块来操作csv文件的基本使用教程
- Python使用xlrd模块操作Excel数据导入的方法
- 使用Python(comtypes)操作ArcGis(ArcObject)的第一步:安装模块到gen文件夹中
- python 文件操作 os模块使用
- Python使用os模块和fileinput模块来操作文件目录
- Python 使用xlrd模块操作Excel写
- python使用easy_install安装支持excel2007操作的openpyxl
- Python性能提升一 —— 高计算模块使用C++编写
- python threading模块使用 以及python多线程操作的实践(使用Queue队列模块)
- python使用twisted里log模块操作text记录日志