create excel spreadsheet

前端 未结 4 1530
陌清茗
陌清茗 2021-01-21 15:10

Is there any way to create an excel spreadsheets using VBScript? I can create a text file using a FileSystemObject and use any extension I want, but when I try and download thi

4条回答
  •  星月不相逢
    2021-01-21 15:30

    If Excel is installed and accessible on the server and sFSpec is the full (server mapped, accessible) file spec of the (empty) .xls you want to create, then

     Dim oExcel : Set oExcel = [Server.]CreateObject( "Excel.Application" )
     oExcel.Workbooks.Add.SaveAs sFSpec
     oExcel.Quit
    

    should work. If you can't use "Excel.Application", you may use ADO by opening a Excel connection and execute a suitable CREATE TABLE statement.

    ADDED

    The low tech approach would be to use an empty .xls stolen from some workstation as a template; but you can create an .xls on the fly:

      Dim sFSpec : sFSpec = resolvePath("..\data\byado.xls")
      If goFS.FileExists(sFSpec) Then goFS.DeleteFile sFSpec
      Dim oXDb : Set oXDb = CreateObject("ADODB.Connection")
      Dim sCS  : sCS      = Join(Array(_
            "Provider=Microsoft.Jet.OLEDB.4.0" _
          , "Data Source=" & sFSpec            _
          , "Extended Properties="""           _
              & Join(Array(     _
                    "Excel 8.0" _
                  , "HDR=Yes"   _
                  , "IMEX=0"    _
                ), ";" )        _
              & """"            _
      ), ";")
      oXDb.Open sCS
      oXDb.Execute "CREATE TABLE [WhatEver] (DontCare INTEGER)"
      oXDb.Close
      If goFS.FileExists(sFSpec) Then WScript.Echo "qed"
    

    (You may have to tinker with the "Excel !Version!"; the "IMEX=0" is important)

提交回复
热议问题