【问题标题】:Convert Excel file to CSV on command line [closed]在命令行上将 Excel 文件转换为 CSV [关闭]
【发布时间】:2014-10-27 21:38:01
【问题描述】:

我希望在 Win 服务器上的批处理文件中将 XLSX 转换为 CSV。

服务器没有安装 Excel,所以像 CreateObject("Excel.Application") 这样的 VB 命令将不起作用。

如果我可以在不安装任何第三方工具的情况下执行此操作,那将是理想的。 我已经看到了一些涉及在服务器上安装办公数据连接和连接到 Excel 副本的选项,但我希望通过对服务器进行尽可能少的更改来做到这一点。

我想知道是否还有其他选择? 谢谢

【问题讨论】:

    标签: excel command-line vbscript


    【解决方案1】:

    使用 ADO 和“SELECT ... INTO ... IN External Database FROM ...”:

      Dim goFS    : Set goFS  = CreateObject("Scripting.FileSystemObject")
      Dim sTDir   : sTDir     = resolvePath("..\data\ExcelCsv2")
      Dim sXFSpec : sXFSpec   = goFS.BuildPath(sTDir, "xls.xls")
      Dim sTFiNa  : sTFiNa    = "csv.csv"
      Dim sTFSpec : sTFSpec   = goFS.BuildPath(sTDir, sTFiNa)
      If goFS.FileExists(sTFSpec) Then goFS.DeleteFile sTFSpec
      Dim oDb     : Set oDb   = CreateObject("ADODB.Connection")
      oDb.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sXFSpec & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"
      WScript.Echo sXFSpec
      WScript.Echo oDb.Execute("SELECT * FROM Demo").GetString(2, , vbTab, vbCrLf)
      oDb.Execute "SELECT * INTO [" & sTFiNa & "] IN '" & sTDir & "' 'Text;' FROM Demo"
      WScript.Echo sTFSpec
      WScript.Echo oDb.Execute("SELECT * FROM [" & sTFiNa & "] IN '" & sTDir & "' 'Text;'").GetString(2, , vbTab, vbCrLf)
      oDb.Close
    

    输出:

    E:\trials\SoTrials\answers\8328305\data\ExcelCsv2\xls.xls
    1       1,1     10.12.2011      text elm 1
    2       2,2     11.12.2011      text elm 2
    3       4,4     12.12.2011      text elm 3
    
    E:\trials\SoTrials\answers\8328305\data\ExcelCsv2\csv.csv
    1       1,1     10.12.2011      text elm 1
    2       2,2     11.12.2011      text elm 2
    3       4,4     12.12.2011      text elm 3
    

    (参见this answer)

    【讨论】:

    • 请注意,在 64 位系统上,您需要使用 32 位解释器(来自 C:\Windows\SysWOW64)运行它。
    猜你喜欢
    • 1970-01-01
    • 2013-03-22
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多