背景:本人是力学专业博士,从事分子动力学模拟,最近需要对结果进行数据分析,其中一项就是计算每一时刻的不同分子式的相对分子质量并将最大相对分子质量输出,换出曲线图。已知,分子式数据均保存在excel文件中,且各分子式均是由O,N,C,H按照顺序排列。如果使用excel计算的话,可能会比较慢,excel文件比较大,有十几兆。刚好最近在自学python,考虑用python中openpyxl模块进行计算。

步骤:

1. 定义计算包含O,N,C,H分子式的相对分子质量

2. 使用openpyxl模块操作excel

3. 将想得到的数据保存在新的表单里

附上代码,请各位大神提出更好的建议,修改成为更简洁的代码。

import openpyxl
import redef massMr(s):#定义计算相对分子质量的函数,list1 = ['O', 'N', 'C', 'H']dict1 = {'O':16, 'N':14, 'C':12, 'H':1}a = re.findall('\d+', s)sum = 0for i in range(4):sum += int(dict1[list1[i]]) * int(a[i])#    print('相对分子质量为:%d'% sum)return sumwb = openpyxl.load_workbook('test.xlsx')
ws = wb.get_active_sheet()
#print(ws)
sheet = wb.get_sheet_by_name('Sheet1')#进入表单1ws1 = wb.create_sheet(index = 1, title = 'Sheet2')#新建表单2list1 = []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:#单元格为空,跳出循环breakelse:#单元格不为空,进行计算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文件,计算单元格分子式的相对分子质量(一)相关推荐

  1. 使用python中openpyxl模块操作excel文件,计算单元格分子式的相对分子质量(二)

    在(一)文中,在最后输出结果时,只是将相对分子质量的值输出,并未将对应的分子式输出,琢磨了一天,将改进的代码贴出来,希望大家可以给出点优化建议! import openpyxl import rede ...

  2. Python使用openpyxl模块读写excel文件

    Python使用openpyxl模块读写excel文件 openpyxl是一个用于写入和读取xlsx格式的excel文件的Python模块. excel2010后的后缀名为xlsx,不再是xls,使用 ...

  3. python 通过openpyxl来操作Excel文件(一 ):读取Excel文件

    这篇文章讲python 通过openpyxl来读取Excel文件 不清楚怎么通过openpyxl来写入Excel文件的小伙伴可以看我另一篇文章 传送门python 通过openpyxl来操作Excel ...

  4. python 通过openpyxl来操作Excel文件(二 ):写入Excel文件

    这篇文章讲python 通过openpyxl来写入Excel文件,不清楚python怎么读取Excel文件的小伙伴可以去看下我的另一篇文章 传送门https://blog.csdn.net/i_cof ...

  5. [转载] Python利用openpyxl模块读取excel文件内容

    参考链接: Python | 使用openpyxl模块调整Excel文件的行和列 import openpyxl wb = openpyxl.load_workbook('原始数据.xlsx') #读 ...

  6. python调用openpyxl包操作excel文件

      python抓取数据或处理数据库,可以将数据保存到本地文件(xml.excel)或数据库(mysql等)中,本文学习python中操作excel文件的基本用法,后续将从网页中抓取的数据保存到本地e ...

  7. python读写excel模块pandas_Windows下Python使用Pandas模块操作Excel文件的教程

    安装Python环境ANACONDA是一个Python的发行版本,包含了400多个Python最常用的库,其中就包括了数据分析中需要经常使用到的Numpy和Pandas等.更重要的是,不论在哪个平台上 ...

  8. 使用python的openpyxl模块操作excel

    openpyxl(可读写excel表)专门处理Excel2007及以上版本产生的xlsx文件,xls和xlsx之间转换容易 openpyxl的安装 模块的引入 from openpyxl import ...

  9. Python使用xlwt模块 操作Excel文件

    导出Excel文件     1. 使用xlwt模块 import xlwt import xlwt    # 导入xlwt # 新建一个excel文件 file = xlwt.Workbook() # ...

最新文章

  1. 学习:C#中的空值的判断(转)
  2. 8s 使用本地打包镜像_在Docker环境构建、打包和运行Spring Boot应用
  3. php cgi路径解析,php.ini中的cgi.fix_pathinfo选项
  4. 俯瞰云原生,这便是供应层
  5. Android4.0设置界面修改总结
  6. 2 数据源配置_Spring, MyBatis 多数据源的配置和管理
  7. git新建空白文件没有生效
  8. 2016多校联合训练1 B题Chess (博弈论 SG函数)
  9. struts2 + ajax 用户名登录验证(struts2+spring+ibatis)
  10. FreeCAD开发:修改了源码,需要翻译成中文,如何更新语言包
  11. android sony 镜像,解释如何使用Sony TV DLNA屏幕镜像功能
  12. Java多线程,并发核心知识体系总结
  13. Android Java(2015-6-18 15:28、2016-1-30 21:18、2016-5-31 11:20)
  14. 大一计算机虚拟机,虚拟机对电脑伤害大吗
  15. FreeType字体引擎介绍
  16. hexo安装链接转拼音出现的问题
  17. python运行cmd命令和opencv搭建_Python让蔡徐坤在我的命令行里打篮球!
  18. 让Windows 时间与Internet 时间服务器同步
  19. 南邮ctf-web的writeup
  20. java集成华为云obs上传下载实战

热门文章

  1. ubuntu 下 开启无线网卡的monitor mode
  2. 【APIO2016】划艇
  3. 幽灵行动4 虚拟服务器,《幽灵行动4:未来战士》游戏进不去解决方法
  4. 一个屌丝程序员的青春(二九四)
  5. Android 官方Sample
  6. 基于Andriod的智慧校园卡系统的设计与实现
  7. 如何建立自己的光纤网络来连接数据中心
  8. 图灵所说的“剥洋葱皮”的方法
  9. 数字藏品APP系统开发|数字藏品系统引见
  10. his医院系统接入短信功能的注意事项及流程