51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3110|回复: 9
打印 上一主题 下一主题

[原创] 关于把Excel表当做数据库来处理的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-11-22 16:16:55 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
各位好,小弟要用Excel表处理大量的数据,但是数据量太大,用普通的方法处理起来效率很低,所以想把Excel表当作数据库来处理,都需要安装什么软件?
目前机器环境
操作系统:Windows 7   Office2007
Excel表:是xls后缀的。
除了这些还需要安装什么?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2010-12-2 18:19:53 | 只看该作者
回复 8# sunnyswu

要处理的Excel版本是2003的,这个跟电脑上现有的office版本没有关系
  asd=getFieldV("[通话时长(s)],","C:\ZCTT\20101122171413.xls")
MsgBox asd
Function getFieldV(fieldsName,xlsPath)
Set xlsDoc = CreateObject("Excel.Application")
xlsDoc.Workbooks.Open(xlsPath)
xlsDoc.Worksheets(1).Activate
Set oSheet = xlsDoc.ActiveSheet
oSheetNam = oSheet.name
xlsDoc.Quit
Set xlsDoc = Nothing
filterV = ""
While InStr(fieldsName,",")<>0
    flagnum =0
    locNum = InStr(fieldsName,",")
    fieldName = Left(fieldsName,locNum-1)
    fieldsName =Mid(fieldsName,locNum+1,Len(fieldsName))
    MsgBox fieldName
    ai = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&xlsPath&";Extended Properties=Excel 4.0"
bi = "Select "&fieldName &" from ["&oSheetNam&"$] group by "&fieldName
Set conn = CreateObject("ADODB.Connection")
conn.Open ai
Set rs = CreateObject("ADODB.Recordset")
rs.Open bi,conn
While Not rs.EOF 'And flagnum < getall_num
      rd = rs("通话时长(s)")
      MsgBox rd
      If StrComp(rd,"")<>0 Then
       filterV = filterV &rd&","
       flagnum = flagnum + 1
      End If
      rs.MoveNext
wend
conn.Close
Set rs =Nothing
Wend
If strcomp(filterV,"")=0 Then
getFieldV =""
else
getFieldV = Left(filterV,Len(filterV)-1)
End If
End Function
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2014-12-8 10:55
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    9#
    发表于 2010-11-29 19:29:37 | 只看该作者
    就是啊。顶!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2010-11-29 18:27:34 | 只看该作者
    谢谢大家,问题已经解决。
    木落 发表于 2010-11-29 17:47



        大哥(姐),您就不说说是如何解决的?
    顺便 把代码贴出来
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2010-11-29 17:47:40 | 只看该作者
    谢谢大家,问题已经解决。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2010-11-25 16:09:45 | 只看该作者
    QTP通过ADO直接访问Excel,速度还可以
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2010-11-23 17:28:47 | 只看该作者
    数据量大的建议你不要使用Excel。超过7W+的数据 打开Excel已经是一个很慢的过程。建议你使用轻量级的数据库,。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2010-11-23 17:17:07 | 只看该作者
    可以通过odbc去访问,不知道这样的情况下,是否会快点
    没这么做过,提供不了有价值的信息
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2010-11-23 16:35:20 | 只看该作者
    灌水
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
    发表于 2010-11-23 15:27:39 | 只看该作者
    数据量大的话,我觉的还是放弃用EXCEL吧,
    首先EXCEL有行数的限制,好象2003是6万多行吧,并且EXCEL单元格的最大长度就是255个字符,而且EXCEL的读写效率肯定会低于数据库。再差的数据库也会比EXCEL快;
    我是用JAVA的,如果要用EXCEL作为数据文件的话,象JXL这样的开源包就不错,用VBS的好象不用安装什么特别的软件,因为widnows系统就已经提供了EXCEL的测试对象模型,可以通过VBS直接访问的。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-25 07:24 , Processed in 0.094953 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表