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.


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.


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.


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.


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

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,


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:


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 !!!


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.


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.


-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.

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'
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.