您的位置:程序门 -> vb -> 基础类



求助 怎样将实时采集的数组自动保存到excel中?急


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


求助 怎样将实时采集的数组自动保存到excel中?急
发表于:2007-07-12 18:02:32 楼主
正在做一个产品的测试软件,要求实时采集温度等参数的数据,并自动保存到excel中。
目前我能考虑到的问题有
1,数据是批量保存还是采集一个保存一个?(采集的数据参数多,且采样间隔短,所以数据量比较大)     如果批量保存,如何实现呢?
2,自动保存到excel表格中如何实现?
3,怎样将采集到的数据添加到已有文件(而不是覆盖)?
4,excel数据表最多只有65536行,如果超过了,怎么自动打开另一文件,并保存?
5,文件名考虑用采集的日期时间来命名,不知怎么实现?
呵呵,刚学vb不久,边学边用,蛮苦恼的,请大家帮帮忙,先谢了!
发表于:2007-07-12 21:14:251楼 得分:0

用excel不适合,用access数据库吧。
发表于:2007-07-12 21:26:042楼 得分:0
设定一些变量,然后将得到的数据赋值给这些变量,然后再赋值给excel指定的单元格,.save保存。
access道理相通。
所谓自动保存也得你先写好代码。
excel2007有1,048,576   行乘以   16,384   列,用代码判断行和列如果达到极限   then
如果真达到了,你的电脑该死机了。10g内存+2、3个哭睿也玩不转。因为excel与access不同之处在于内存的操作机理。
文件名考虑用采集的日期时间来命名,不知怎么实现?name=date
over!
发表于:2007-07-12 22:03:263楼 得分:0
楼上的
      有意思
       

10g内存+2、3个哭睿也玩不转。因为excel与access不同之处在于内存的操作机理。
发表于:2007-07-12 22:10:184楼 得分:0
哈哈,那位试过没?
发表于:2007-07-12 22:16:115楼 得分:0
谢谢各位
能不能给点具体的代码示例呢
保存文件时,比如当前时刻测得的第一组数据保存在excel表格第一行,过10秒钟再测第二组,保存在excel表格第二行,以此类推,能不能给个代码示例呢
用.save   不是会把以前的数据覆盖掉了吗?
发表于:2007-07-12 22:50:286楼 得分:0
看来你还得先学学vba,这些问题其实在vba中很简单。
按顺序保存。
用数据库的方法速度快,但你连vba都不会。。。
单个赋值:.cells(1,   1).value   =   "123 "
顺序赋值:.range( "a1 ").end(xldown).value   =   "123 "
其他循环赋值:for   ....
填写完了,要保存的.save  
间隔时间可以用vba代码设定。
excel适合分析数据结果,大量的数据会很慢的。
你可以到club.excelhome.net学习些知识。
发表于:2007-07-13 08:43:547楼 得分:0
感谢bfblang
用户就是需要分析数据结果,所以要求存入excel
vba还真没学过,不知学起来快不快?
发表于:2007-07-14 21:10:338楼 得分:0
marke
发表于:2007-07-15 20:43:249楼 得分:0
'先引用excel应用库:microsoft   excel   11.0   object   library  
'在vb中可以直接操作excel表格的,主要有4大步

'声明全局对象
public   xlapp   as   excel.application   'excel应用对象
public   xlbook   as   excel.workbook     'excel工作薄对象
public   xlsheet   as   excel.worksheet   'excel表格对象

'创建
set   xlapp   =   createobject( "excel.application ")
set   xlbook   =   xlapp.workbooks.open(app.path   &   "\myexcel.xls ")   '打开(myexcel.xls先已存在)
set   xlsheet   =   xlbook.worksheets( "sheet1 ")   '选定表

'在指定的座标格中写数据
xlsheet.cells(2,   8)   =   1   '表格坐标可按你要求定
xlsheet.cells(3,   8)   =   2
xlsheet.cells(5,   9)   =   3

'关闭excel应用
xlbook.close   0
xlapp.quit
set   xlapp   =   nothing
发表于:2007-07-15 21:46:3410楼 得分:0
up
发表于:2007-07-16 09:42:4011楼 得分:0
不知道大家没有注意到实时写入的问题,往excel里面写记录,是有n多台计算机n多个任务同时写,那么也就是说xls文件会被同时打开,又同时被保存和关闭,计算机操作系统不允许同时打开一个文件进行写入操作.
所以这里我建立楼主往数据库里写记录,例如:sql   server.不知道access行不行?因为access是小型数据库,也是一个文件,不清楚是否支持同时被vb打开数据表并写入记录.反正五种大型数据库都支持并发操作.
当写入数据库成功以后,可以定时定期根据需要(条件)将数据库的记录导出到excel,当然也可以去华军下载专业的数据库导出工具http://www.onlinedown.net/soft/44040.htm
发表于:2007-07-16 10:07:2412楼 得分:0
写入数据库好一点
发表于:2007-07-18 22:25:0213楼 得分:0
用户就是需要分析数据结果,所以要求存入excel?数据库也同样可以分析数据结果,只是没excel好看。你也可以从数据库中获得数据到excel中分析。
vba还真没学过,不知学起来快不快?vba不难,看学那部分了。
发表于:2007-07-19 17:42:3714楼 得分:0
http://www.onlinedown.net/soft/44040.htm
dte报表工具就可以做到将分析结果交到excel中,但是要看你自己如何写sql语句了。

我用过
发表于:2007-07-21 00:26:4415楼 得分:0
excel   比起access   确实很耗内存
发表于:2007-07-21 00:35:0516楼 得分:0
wlxu1209(无限循环)的代码   漏掉1行   保存语句

'关闭excel应用
xlbook.save   '保存
xlbook.close   0
xlapp.quit
set   xlapp   =   nothing
发表于:2007-07-21 08:55:2917楼 得分:0
可以写入数据库,然后每天一次导出到excel表,表名就用当天日期


快速检索

最新资讯
热门点击