【问题标题】:batch export excel workbook to 'prn' text-only format?将excel工作簿批量导出为“prn”纯文本格式?
【发布时间】:2014-11-11 23:28:02
【问题描述】:

我编写了一个脚本,用于将 excel 工作簿导出为“.prn”样式的纯文本格式,工作簿中的每张工作表都有一个文本文件。该脚本是使用 windows 'cscript' 脚本托管命令从定期运行的外部批处理器调用的。

脚本基本上可以正常工作,但在较大的工作簿上运行速度很慢。我希望有人能给我一些指导,告诉我如何让它运行得更快,甚至提供一种更好的替代方法。

脚本在这里:http://www.visualbasicscript.com/tm.aspx?high=&m=106086

提前致谢。

【问题讨论】:

    标签: excel batch-file text vbscript export


    【解决方案1】:

    您可以简单地将工作表保存为所需格式,而不是手动导出每个值:

    Set fso = CreateObject("Scripting.FileSystemObject")
    
    filename   = "..."
    foldername = fso.GetParentFolderName(filename)
    
    Set xl = CreateObject("Excel.Application")
    Set wb = xl.Workbooks.Open(filename)
    
    For Each ws In wb.Sheets
      prn = fso.BuildPath(foldername, ws.Name & ".prn")
      ws.SaveAs prn, 36
    Next
    
    wb.Close
    xl.Quit
    

    【讨论】:

    • 其实我说得太早了。实际上,此解决方案仅适用于较小的工作表,最多 240 个字符宽。我需要导出的许多工作簿至少是这个宽度的两倍。 [例如,请参见此处的 ms cmets - support2.microsoft.com/default.aspx?scid=kb;en-us;131554 -------- 我的原始程序实际上将处理更宽的工作表,但是......关于如何将其导出为文本的任何想法,保存格式,但是比我的常规表现更好?
    • @davidfurst 如果您需要创建具有如此可笑的长行的文本文件(无论出于何种原因),您可能不得不以艰难的方式去做。
    • '可笑的长行'? ansgar,您的评论毫无帮助。我不决定文件的格式,我只需要转换它们。原因是有用户需要将数据处理成文本。
    猜你喜欢
    • 2021-10-02
    • 2019-01-18
    • 2018-04-18
    • 2020-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    相关资源
    最近更新 更多