处理速度问题,你在写EXCEL过程中,不要用太多格式处理操作,比如对齐,打印格式设置等,还有就是画边框等,如果你的EXCEL数据只用于打印,可以不用存盘的话,最好用假存盘动作EXlsheet.saved=true,运行速度会快多了。

解决方案 »

  1.   

    可是,在我的写入过程中,并没有对excel中的格式进行设定啊。另外,我的允许存盘,所以不能使用假存盘动作。另外,对于停止响应的,如何在程序中唤醒?
    谢谢前面三位了。
      

  2.   

    我也遇到过同样的问题,从sql数据库中直接向excel逐格写数据,按照msdn上的做法,总是提示错误,各位能否提供一点源代码...
      

  3.   

    请再详细描述以下该问题,是VB的可执行程序还是组件(DLL等)在写Excel中
    出现这样的错误。如果是DLL,该DLL是否是给ASP调用?
      

  4.   

    doevents
    try it
    你让excel的visible=true还是false???
    false时有时会有多一些的问题出现。
      

  5.   

    (1).excel的visible=true
    (2) 我的email: [email protected]
      

  6.   

    xiayule(下雨):
    你的方法对内存的要求很高啊。因为我的数据量比较大,有没有更好的方法。谢谢各位的帮助!
      

  7.   

    每次调用结束后记得.quit和set . nothing。
      

  8.   


    建一存储过程,把用于数据查询部分SQL作为入口参数。create procedure datatoexcel
      @sql varchar(500)
    as
    declare  @cmd varchar(500)
     set @cmd  = 'bcp  "' +rtrim(@sql)+'" queryout  d:\temp.xls  -c -S you_servername -U sa -P you_password'
     exec  master..xp_cmdshell @cmd
    调用:
      dim sql as  string
      dim cnnstr as string
      dim cnn as adodb.connection
      dim rst as adodb.recordset
      sql = "select top 10 * from you_databasename.dbo.you_tablename"
      cnnstr = "..." 
      cnn.open cnnstr
      st rst = cnn.execute("exec datatoexcel '"+sql+"'")
    注:
    bcp(批量copy)功能一览表usage: bcp {dbtable | query} {in | out | queryout | format} datafile
      [-m maxerrors]            [-f formatfile]          [-e errfile]
      [-F firstrow]             [-L lastrow]             [-b batchsize]
      [-n native type]          [-c character type]      [-w wide character type]
      [-N keep non-text native] [-V file format version] [-q quoted identifier]
      [-C code page specifier]  [-t field terminator]    [-r row terminator]
      [-i inputfile]            [-o outfile]             [-a packetsize]
      [-S server name]          [-U username]            [-P password]
      [-T trusted connection]   [-v version]             [-R regional enable]
      [-k keep null values]     [-E keep identity values]
      [-h "load hints"]
      

  9.   

    下面已调试通过,可以参靠
    create procedure datatoexcel
      @sql varchar(500)
    as
    declare  @cmd varchar(500)
     set @cmd  = 'bcp  "' +rtrim(@sql)+'" queryout  d:\temp.xls  -c -S ALong_Yue  -U sa -P 1234567'
     exec  master..xp_cmdshell @cmd
    Private Sub Command1_Click()
    Dim sql As String
      Dim cnnstr As String
      Dim cnn As New ADODB.connection
      Dim rst As New ADODB.Recordset
       On Error GoTo errlable1 
      sql = "select top 20 * from tfmsdb.dbo.leave_card"
      cnnstr = " Provider = SQLOLEDB.1;Password=1234567;Persist Security Info=True;User ID=sa;Initial Catalog=zydb;Data Source=ALong_Yue "
      cnn.open cnnstr
      Set rst = cnn.execute("exec datatoexcel '" + sql + "'")
      Exit Sub
    errlable1:
      MsgBox Err.Description
      Err.Clear
    End Sub
      

  10.   

    更正:tfmsdb.dbo.leave_card --》zydb.dbo.leave_card