Como salvar uma planilha do Excel como um arquivo de valores separados por ponto e vírgula?

31

Estou executando o excel e gostaria de exportar meu arquivo como uma planilha .scsv (valores separados por ponto-e-vírgula) em vez de uma .csv. Há alguma maneira de fazer isso?

ps. Não consigo fazer um .csv, pesquisar e substituir vírgulas por ponto e vírgula, porque os campos já contêm vírgulas.

Kamilski81
fonte
Se você estiver disposto a fazer um pouco de programação, um conversor poderá ser escrito com bastante facilidade na linguagem de programação Python, usando seu csvmódulo embutido, o que facilitaria a leitura de arquivos .csv do Excel e a gravação de novas versões deles sobre qualquer delimitador desejado.
27512 martineau
Depende se há vírgulas nas entradas ou não.
AER

Respostas:

20

Que tal delimitar guias e substituir as guias por ponto e vírgula?

No excel: Arquivo -> Salvar como -> em Formato, selecione "Texto delimitado por tabulação (.txt)" e depois salve.

Abra o arquivo no bloco de notas e abra a janela de substituição. Como você não pode tabular diretamente nesta janela, copie uma tabulação do documento e cole-a na caixa Find e coloque o seu; na caixa de substituição. Depois substitua tudo.

Suponho que isso funcionaria porque é muito raro ter guias em um documento do Excel.

Robert
fonte
Embora básico para a maioria dos usuários, você também poderia fornecer um conjunto de instruções?
Canadian Luke REINSTATE MONICA
Isso pode ser feito inteiramente no Excel e, se sim, como?
27512 martineau
Eu não acho que isso possa ser feito inteiramente no Excel. O Excel oculta a formatação (guias) para que você não possa substituí-las. Depois substituindo-os por ponto e vírgula, você não seria capaz de abrir com o Excel ou (que seria apenas uma célula gigante)
Robert
Eu assumo usando regex para substituir e colocação \tiria trabalhar
Yassin Hajaj
Quando você possui caracteres especiais de um idioma diferente em seu arquivo (como o grego), isso não parece funcionar, pois os símbolos dos caracteres são substituídos por '?'
Joos
8

Eu não acho que você pode definir o separador de saída diretamente no Excel, mas (assumindo o Windows), você pode alterar o separador de lista do SO para ;- isso é feito Regional Settings->Customize. O Excel usará essa configuração para exibir seus arquivos csv.

wmz
fonte
5
Nota importante: se você fizer isso, todos os programas do Windows que usam as bibliotecas Internacionalizadas do Windows assumirão que; é o caractere separador de todos os arquivos CSV. Se esta é uma solução de um tempo, ele provavelmente faz mais sentido para salvar um arquivo CSV regular e use um editor para alterar as vírgulas para semicolons
Isaac Rabinovitch
Essa alteração também afetará a abertura de arquivos CSV no Excel. E, como mencionado no comentário acima, possivelmente mais programas. Se você deseja criar um arquivo CSV mais compatível, coloque-o sep=;em cima do arquivo CSV e, depois de salvar o arquivo, poderá alterar o Separador de listas novamente para o que quer que fosse.
papo
7

Use o LibreOffice Calc (é um download gratuito e funciona em todos os principais sistemas operacionais).

Para salvar em valores separados por ponto e vírgula:

  1. Abra o seu arquivo xlsx / csv
  2. Arquivo -> Salvar como ...
  3. Escolha "Filtrar CSV" como o filtro (deve ser o padrão se o nome do arquivo terminar com .csv)
  4. Marque "Editar configurações de filtro" e pressione Salvar
  5. Quando solicitar a confirmação do formato do arquivo, pressione "Usar formato CSV de texto"
  6. Altere o "delimitador de campo" para um ponto-e-vírgula (você pode digitar qualquer coisa aqui).
  7. Pressione OK.

O LO Calc manipula corretamente vírgulas e ponto e vírgula nos valores das células.

naught101
fonte
1
Obrigado, funciona bem. Essa deve ser a resposta aceita.
Ortomala Lokni
4

Se você deseja um script, cole o seguinte em um módulo.

Option Explicit
Sub export2scsv()
    Dim lastColumn As Integer
    Dim lastRow As Integer
    Dim strString As String
    Dim i As Integer, j As Integer

    lastColumn = ActiveSheet.UsedRange.Column - 1 + ActiveSheet.UsedRange.Columns.Count
    lastRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row

    Open "output.scsv" For Output As #1

    For i = 1 To lastRow
        Cells(i, 1).Select
        strString = ""
        For j = 1 To lastColumn
            If j <> lastColumn Then
                strString = strString & Cells(i, j).Value & ";" ' Use semicolon instead of pipe.
            Else
                strString = strString & Cells(i, j).Value
            End If
        Next j
        Print #1, strString
    Next i

    Close #1
End Sub
user157938
fonte
4

Para alterar vírgula para ponto e vírgula como o separador padrão do Excel para CSV - vá para Região -> Configurações adicionais -> guia Números -> separador de lista e digite; em vez do padrão,

Michael
fonte
3

Você pode alterar o separador globalmente através de Personalizar formato.

Navegue até Região e idioma, abra Região, na aba Formatos, clique no botão Configurações adicionais e, na aba Números, altere o valor do separador de lista:

Santa Fee
fonte
Não basta postar um link para a resposta, incluir os detalhes importantes na resposta. Se a página segmentada desaparecer, a resposta será inútil. Além disso, embora eu não seja especialista em Windows, isso parece o mesmo que a resposta de wmz de três anos atrás.
blm
0

1.> Altere o formato do arquivo para .CSV (delimitado por ponto e vírgula)

Para alcançar o resultado desejado, precisamos alterar temporariamente a configuração do delimitador nas Opções do Excel.

Vá para Arquivo -> Opções -> Avançado -> Seção de Edição

Desmarque a configuração "Usar separadores do sistema" e coloque uma vírgula no campo "Separador decimal".

Agora salve o arquivo no formato .CSV e ele será salvo no formato delimitado por ponto e vírgula !!!

user318853
fonte
5
Retirado de ashwaniashwin.wordpress.com/2013/04/19/… Observe que a atribuição é necessária.
Arjan #
0

Se sua lista de valores estiver na coluna A, tente isso - Célula B2 = A1 & ";" & A2 Célula B3 = B2 & ";" & A3 Copie a célula B3 para o final da sua lista. Se você copiar e colar a última célula da sua lista como valores, terá sua lista separada por ponto e vírgula. Em seguida, você pode copiá-lo no bloco de notas, no Word ou em qualquer lugar que desejar.

javali
fonte
0

Você pode fazer isso facilmente em 4 etapas com a função concatenar do Excel.

  1. No seu arquivo, adicione uma coluna de caracteres de ponto e vírgula na qual você esperaria que eles desembarcassem em uma exportação .csv.

  2. Inicie uma nova coluna no final dos seus dados e, na primeira linha, use a =concatenate()função Certifique-se de selecionar todas as células que deseja que apareçam no arquivo final. Sua fórmula será algo como=concatenate(A1,A2,A3...)

  3. Copie e cole a fórmula resultante em todas as linhas de dados.

  4. Selecione toda a coluna de fórmulas e Colar Especial -> Valores na coluna vizinha. Agora você tem todos os seus dados delimitados por ponto e vírgula.

Por fim, exporte para o formato de arquivo de sua escolha. Se você exportar isso como .txt no Windows, poderá simplesmente alterar a extensão do arquivo para .csv, pois ambos são formatos de texto sem formatação.

Greg Cavanaugh
fonte
-3

Eu uso de maneira simples: -

  1. Abra o arquivo csv (ponto e vírgula) com o Notepad ou o Notepad ++.
  2. Localize e substitua (Ctrl + H) do ponto e vírgula (;) pela vírgula (,).
  3. Salve e feche o arquivo.
  4. Agora, abra o arquivo de modificação com o Ms-Excel.
vinha
fonte
Isso funciona apenas se nenhuma string contiver um ";" ou "," caso contrário, isso não geraria o que o autor realmente deseja.
Ramhound
1
Isso está indo na direção errada. A pergunta pergunta como criar um arquivo de valores separados por ponto e vírgula; esta resposta assume que um ponto e vírgula separados arquivo valores já existe e descreve como criar um arquivo CSV - incorretamente, pois não leva em consideração a restrição de chave da questão: a saber, que os dados são conhecidos para conter o delimitador .
G-Man diz 'Reinstate Monica'