导出为CSV,带有换行符和跳过标题

时间:2012-09-26 20:59:43

标签: excel

有没有办法将Excel导出到包含每个单元格的csv文件“并跳过标题?另存为.csv不是我要找的答案。

如果有可能,我正在寻找一种方法在excel中执行此操作。不是编码解决方案。感谢

2 个答案:

答案 0 :(得分:3)

假设您在Sheet1中有数据,我能想到的最好的非VBA解决方案是添加第二张表并在A1中输入公式,如下所示:

=""""&Sheet1!A1&""","""&Sheet1!B1&""","""&Sheet1!C1&""""  

然后将其复制到Sheet1中的尽可能多的行。您需要将此公式扩展为尽可能多的列。

这将为您提供一个看起来像您想要的CSV文件格式的列。然后,您将该页面保存为文本文件。

答案 1 :(得分:0)

假设您的数据在单元格A1的活动表中以第一个标题行开始,附加的代码应将其写入csv文件中以符合您的规范。

Sub WriteToCSV()

Const forReading = 1, forAppending = 3, fsoForWriting = 2
Dim fs, objTextStream, sText As String
Dim lLastRow As Long, lRowLoop As Long, lLastCol As Long, lColLoop As Long

Set fs = CreateObject("Scripting.FileSystemObject")
Set objTextStream = fs.opentextfile("c:\temp\myResult.csv", fsoForWriting, True)

lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
lLastCol = Cells(1, Columns.Count).End(xlToLeft).Column

For lRowLoop = 2 To lLastRow
    sText = ""
    For lColLoop = 1 To lLastCol
        sText = sText & Chr(34) & Cells(lRowLoop, lColLoop) & Chr(34) & ","
    Next lColLoop

    objTextStream.writeline (Left(sText, Len(sText) - 1))
Next

objTextStream.Close
Set objTextStream = Nothing
Set fs = Nothing

End Sub