【问题标题】:Save individual Excel sheets as CSV将单个 Excel 工作表另存为 CSV
【发布时间】:2011-11-11 23:54:50
【问题描述】:

我需要解析 Excel 工作表。现在我将每个单独的工作表保存为 .csv,效果很好。我使用 OpenCSV 来解析文件等,但创建这些 .csv 文件很痛苦。

在 Excel 中将单个工作表另存为 .csv 的最简单、最快捷的方法是什么?我假设某种 VBA 宏可以完成这项工作,但由于我不是 VBA 程序员,我不知道该怎么做。也许我可以以某种方式录制一个宏?

【问题讨论】:

  • 您可以使用 VBA 完成此操作,但如果您需要准确的帮助,您需要告诉我们更多信息...

标签: vba excel


【解决方案1】:

作为第一个答案,这是用于将文件保存为 CSV 的代码:

ActiveWorkbook.SaveAs "C:\Marthinus.csv", fileformat:=6

更多关于SaveAs的信息

【讨论】:

    【解决方案2】:

    非常粗略,

    Dim ws As Worksheet
    
    For Each ws In ActiveWorkbook.Worksheets
        ws.SaveAs "C:\docs\" & ws.Name & ".csv", xlCSV
    Next
    

    这不包括任何错误编码,也不考虑会导致非法文件名的工作表名称。这完全取决于您需要整件事情变得多么强大。

    【讨论】:

    • 这项工作非常出色,我什至喜欢上了 'ActiveWorkbook.SaveAs FileName:=FileFolder & (FileName + " " + newName + "-" + Lpad(CStr(i), "0" , 2)) & ".csv", FileFormat:=xlCSV'
    • @Marthinus 你能解释一下你从哪里得到FileFolderFileName吗?
    • 我希望 FileFolder 和 FileName` 是使用 ThisWorkbook.FullName 获取的。
    • 单元格的格式如何?如果日期类型的单元格格式为 DD/MM,则保存为 CSV 结果为 DD/MM 并且省略年份部分。可以请教吗?
    猜你喜欢
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 2017-03-21
    • 2017-09-22
    相关资源
    最近更新 更多