Exportação do Excel com configurações específicas do csv?

2

Sou novato em arquivos excel e csv.

Eu tenho um arquivo do excel com a seguinte estrutura… link

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

Você pode ver a estrutura real na captura de tela postada acima.

No entanto, preciso exportar esses dados como um arquivo .csv com a seguinte estrutura…

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

Então, isso significa que preciso agrupar todos os meus dados em minhas tabelas do Excel dentro das cotas "" e separá-los por vírgula.

Estou em um mac e atualmente estou usando números, em que não consigo encontrar uma opção para exportar separados por vírgulas apenas com ; como separador. Eu também seria capaz de usar o Excel.

Qualquer ideia de como fazer o que eu preciso. Em primeiro lugar, pergunto-me como posso envolver cada célula dentro de aspas para que corresponda ao meu formato de saída desejado.

Obrigado antecipadamente, Matt

    
por Matt 27.09.2013 / 10:06

1 resposta

1

Esta não é a minha solução, pois achei isso no artigo de outra pessoa disponível aqui: link

Parece que o único método é usar a macro VB que realmente verifica e acrescenta aspas duplas conforme necessário. Eu testei o código executando-o e, quando você executa o código, ele solicita que você salve o arquivo CSV imediatamente, e o conteúdo do arquivo CSV terá as aspas duplas conforme necessário.

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
    
por 27.09.2013 / 10:19