0

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

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

4

2 回答 2

3

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

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

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

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

于 2012-09-26T21:48:28.200 回答
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
于 2012-09-26T21:36:48.197 回答