使用特定的 csv 设置导出 Excel 吗?

使用特定的 csv 设置导出 Excel 吗?

我是 Excel 和 CSV 文件的新手。

我有一个 Excel 文件,其结构如下……http://cl.ly/Rdkp

user_login  user_email  user_pass   first_name  last_name   display_name    role
Some Name   [email protected]      Some    Name        subscriber

您可以在上面发布的屏幕截图中看到真实的结构。

但是我需要将这些数据导出为具有以下结构的.csv 文件...

"user_login","user_email","user_pass","first_name","last_name","display_name","role"
"johndoe","[email protected]",,"John","Doe","John Doe","administrator"

所以这意味着我需要将我的 Excel 表中的所有数据放在引号中""并用逗号分隔。

我在 Mac 上,目前正在使用 Numbers,但我找不到仅以逗号分隔的选项;。我也可以使用 Excel。

知道如何做我需要的事情吗?首先,我想知道如何将每个单元格括在引号内,以使其符合我想要的输出格式。

提前谢谢你,马特

答案1

这不是我的解决方案,因为我在其他人的文章中找到了此解决方案: http://www.markinns.com/articles/full/export_excel_csvs_with_double_quotes

看起来唯一的方法是使用 VB Macro,它实际上会根据需要检查并附加双引号。我确实通过运行代码对其进行了测试,当您运行代码时,它会提示您立即保存 CSV 文件,并且 CSV 文件的内容将根据需要带有双引号。

Sub CSVFile()
Dim SrcRg As Range
Dim CurrRow As Range
Dim CurrCell As Range
Dim CurrTextStr As String
Dim ListSep As String
Dim FName As Variant
FName = Application.GetSaveAsFilename("", "CSV File (*.csv), *.csv")
ListSep = Application.International(xlListSeparator)
  If Selection.Cells.Count > 1 Then
    Set SrcRg = Selection
  Else
    Set SrcRg = ActiveSheet.UsedRange
  End If
Open FName For Output As #1
For Each CurrRow In SrcRg.Rows
  CurrTextStr = ìî
For Each CurrCell In CurrRow.Cells
  CurrTextStr = CurrTextStr & """" & CurrCell.Value & """" & ListSep
Next
While Right(CurrTextStr, 1) = ListSep
  CurrTextStr = Left(CurrTextStr, Len(CurrTextStr) - 1)
Wend
Print #1, CurrTextStr
Next
Close #1
End Sub

相关内容