主题:【第六届原创】一个方法关于批量导出荧光光谱仪数据

浏览0 回复4 电梯直达
红蓝微笑
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
维权声明:本文为shilywzz原创作品,本作者与仪器信息网是该作品合法使用者,该作品暂不对外授权转载。其他任何网站、组织、单位或个人等将该作品在本站以外的任何媒体任何形式出现均属侵权违法行为,我们将追究法律责任。
在使用Perkin-elmerLS55荧光光谱仪,使用FL WinLab4.00工作站,有批量导出数据到Origin里做图的需要。但网络上遍寻,未见好方法。

通常的做法分以下两个步骤:

1。用FL WinLab4.00 一次性打开15个(最多)*.sp二进制数据文件,save as 选择存成ascII文件。在这个过程里要移动鼠标指针,并点四次鼠标。这样的操作要重复15/批。如果文件多的话,不得不说是个考验人耐性的事情。

2。依次用记事本打开另存的ASCII文件,将前面的54行文件头去掉,再另存。这样的ASCII文件才可批量导入Origin进行绘图。

以上两步重复去做,一点问题没有。但完全重复的工作对于我这样的懒人来说,实在是受罪。




所以,我想把重复性的工作尽可能教给电脑去做,才有了下面的这个不算太完善的方法。

1。针对将原.sp二进制数据转为ASCII的过程,简化起来就是移动鼠标,左键点击,移动鼠标,左键点击……。利用按键精灵录制VisualBasic ScriptVB脚本),然后做成精灵小助手就可以了。方法简单,针对不同分辨率的屏幕修改容易,并且精灵小助手界面背景图片,文字内容可以自定义,满足个性化需求。

内容如下:

Delay 100
MoveTo 125, 290
LeftClick 1
MoveTo 126, 329
LeftClick 1
MoveTo 71, 332
LeftClick 1
MoveTo 540, 135
LeftClick 1
Delay 500


以上代码适用于1280*800分辨率,重复粘贴15次即可。

2。与上述通常做的第2步不同的是,批量去54行文件头,复制光谱数据到Excel。使用的是Excel内置的开发工具之VisualBasic,也就是建立并修改宏。此方法无文件个数的限制,但对系列内数据文件命名要求有规律性。

宏代码如下:

Sub 1()
'
'
1
'
ChDir "D:\ASC_DATA"  ‘
存放ASII文件的位置。
For i = 1 To 9  '
我的数据系列文件以01开头,所以01-09这九个文件需放在一起处理。
    Workbooks.OpenTextFilename:="D:\ASC_DATA\SA_I_BSA_syn#0" & (i) &".sp", Origin:= _
        936, StartRow:=55, DataType:=xlDelimited,TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=True, Tab:=True,Semicolon:=False, Comma:=False, _
        Space:=True, Other:=False,FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3 _
        , 1), Array(4, 1)), TrailingMinusNumbers:=True      '
ASCII文件的第55行读起,即去文件头。原文件的列以空格隔开。
    Range("B:B").Select    '
只选择光谱数据列
    Selection.Copy
    Windows("12.xlsx").Activate  ‘
要保存光谱数据的表格文件。文件名可随使用习惯修改。
    Cells(1, i).Select
    ActiveSheet.Paste
    Application.DisplayAlerts = False
    Windows("SA_I_BSA_syn#0" & (i) &".sp").Activate 
    ActiveWindow.Close
    Application.DisplayAlerts = True
    Next i
   
    For i = 10 To 11
    Workbooks.OpenTextFilename:="D:\ASC_DATA\SA_I_BSA_syn#" & (i) &".sp", Origin:= _
        936, StartRow:=55, DataType:=xlDelimited,TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=True, Tab:=True,Semicolon:=False, Comma:=False, _
        Space:=True, Other:=False,FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3 _
        , 1), Array(4, 1)), TrailingMinusNumbers:=True
    Range("B:B").Select
    Selection.Copy
    Windows("12.xlsx").Activate
    Cells(1, i).Select
    ActiveSheet.Paste
    Application.DisplayAlerts = False
    Windows("SA_I_BSA_syn#" & i &".sp").Activate
    ActiveWindow.Close
    Application.DisplayAlerts = True
    Next i
End Sub








红框是注意要与自己的情况一致,要修改。



几点声明:

1.  以上方法适用于懒,且喜欢折腾的人。

2.  感谢上面提到的仪器及软件公司。

3.  VB是个好东西,其用途不仅限于上述,针对其它需要重复做的任务应大有可为。

4.  不要求版权鬼东西,可随意转载,修改使用。但对后果不承担责任。

5.  有事可联系 shilywzz@163.com。会尽力回复。论坛内短信无效。
该帖子作者被版主 秋月芙蓉10积分, 2经验,加分理由:原创鼓励
为您推荐
您可能想找: 气相色谱仪(GC) 询底价
专属顾问快速对接
立即提交
可能感兴趣
红蓝微笑
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
Shit,居然发错版面了。烦请版主帮忙移至分子荧光区。
念及初犯,请不要扣分了吧
wulin321
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
dlin22
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
hnteng
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
  我这有一份。

  安装时要求做到以下两点:

  1只能安装在默认目录C:\FL Winlab下面.

  2 安装好之后,双击软件包中的FLInstall2000XP程序.
赞贴
0
收藏
0
拍砖
0
2014/4/10 21:24:57 Last edit by hnteng
猜你喜欢最新推荐热门推荐更多推荐
品牌合作伙伴