将单独的Excel工作表保存为CSV格式

9
我需要解析Excel工作表。现在我将每个单独的工作表保存为.csv文件,这种方法非常好用。我使用OpenCSV来解析这些文件等等,但是创建这些.csv文件很麻烦。
那么,在Excel中保存单独的工作表为.csv文件的最简单和最快捷的方法是什么呢?我认为某种VBA宏可能会完成这项工作,但由于我不是VBA程序员,所以我不知道该如何做。也许我可以通过某种方式记录一个宏?

你可以使用VBA来完成,但如果您希望得到精确的帮助,需要告诉我们更多信息... - JMax
2个回答

19

大致上说,

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
@Marthinus你能解释一下你从哪里获取FileFolderFileName吗? - FarFigNewton
我预计使用 ThisWorkbook.FullName 获取 FileFolderFileName - Pezzzz
单元格的格式怎么办?如果日期类型的单元格格式为DD/MM,那么保存为CSV文件后结果为DD/MM,年份部分被省略了。请问您能给予建议吗? - bjan

3
作为第一个答案,这里是用于将文件保存为CSV的代码:
ActiveWorkbook.SaveAs "C:\Marthinus.csv", fileformat:=6

关于SaveAs的更多信息


链接已损坏。 - Sander de Jong
@SanderdeJong 已修复,谢谢 - JMax

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接