俺写了个程序直接调用EXCEL,表现为读写都很慢,并且当打开另外一个EXCEL文件的时候,调用的EXCEL也会被打开,本身想屏蔽这些,想想可以修改,先把要修改的内容写到一个临时文件里去,然后最后要保存的时候,把文件保存到EXCEL里,但以前没有做过,大家是怎么作的?VB怎么写自定义的文件类型?谢谢大侠们!!

解决方案 »

  1.   

    呵,可参考导出到excel
    Dim xlapp As excel.Application
    Dim elBook As excel.Workbook
    Set xlapp = CreateObject("Excel.Application")
    Set xlbook = xlapp.Workbooks.Open(App.Path & "\power.xls")
    xlapp.Visible = False
    xlapp.SheetsInNewWorkbook = 1
    Dim i As Integer
    For i = 10 To 19
        a = 255/int(rnd)
        xlapp.ActiveSheet.Cells(linenum, i - 9).Value = a
        
        NextDim j As Integer
    For j = 30 To 69
    b = 255/ int(rnd)+1
        xlapp.ActiveSheet.Cells(linenum + 15, j - 29).Value = b
        
        Next
        
    xlbook.Save
    'xlbook.Quit
    xlapp.DisplayAlerts = False
    xlapp.Quit
    xlapp.DisplayAlerts = True
    xlapp.Workbooks.Close
    Set xlapp = Nothing
    Set xlbook = Nothing'Set xlsApp = Excel.Application
    'xlsApp.Workbooks.Close'xlsApp.Quit'Set xlsApp = Nothing
      

  2.   

    直接操作Excel,是指用ado打开excel文件吗?
      

  3.   

    我和一楼作的一样,但直接对EXCEL操作,影响我直接打开其他EXCEL文件,所以是不是可以写到一个中间的东西里,最后在保存,有没有这样的例子,给一个看看先!学习学习!@
      

  4.   

    因为我写的程序,整个运行过程中都是使用Set xlbook = xlapp.Workbooks.Open(App.Path & "\power.xls")的,所以一打开其他EXCEL文件,这个文件也跟着要打开,
      

  5.   

    不如直接用ado去打开excel文件来操作了,这样就不会出现你说的那种情况了。
      

  6.   

    有没有例程?要用SQL进行操作吗?怎么找到特定SHEET上的特定的单元格
      

  7.   

    用ado打开,与操作其它sql\access是一样的。你可以找找msdn
      

  8.   

    连接字符串:
    strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDataBase & ";Extended Properties=Excel 8.0"
    strDataBase是文件的绝对路径,基本操作同操作一张表差不多,EXCEL本身就是一个表格,第一行会作为返回的Recordset中的字段名,你要读取某一格数据,只要定位到那条记录,然后读取对应字段就OK了.同操作数据库的表没什么两样.
    另外你用ADO直接读的时候要注意,要是excel中某列数据即有字符,又有数字类型的话,可能系统只能返回文本或数字的 其他的会丢失,在网上查了下好象没有解决办法