Abra o arquivo CSV e vá direto para a planilha

2

Parte do meu software emite vários comandos para abrir e visualizar diferentes tipos de arquivos. Por exemplo, eu uso atril para PDFs e eom para PNGs.
No entanto, tenho um pequeno problema com arquivos CSV. Eu posso abri-los com soffice –calc <filepath> , mas cada vez que passa pelo estágio Importar.
Existe uma maneira de evitar isso, para evitar o risco de usuários criarem problemas, pois o formato é consistente e o único separador que preciso incluir é a vírgula , ?

Obrigado antecipadamente.

    
por MichaelJohn 07.08.2015 / 13:59

2 respostas

2

Um método para ignorar a importação seria converter o arquivo em um formato que possa ser lido sem importar - assim, por exemplo:

soffice --headless --convert-to ods --outdir /tmp tblIssues.csv
soffice --view /tmp/tblIssues.ods
rm /tmp/tblIssues.ods

Isso converte o arquivo tblIssues.csv em uma planilha ODS, salva-o em /tmp e o abre no Libreoffice. Uma vez terminado, remove o arquivo convertido (opcional).

A opção --view abre o arquivo como somente leitura e também oculta os elementos da GUI necessários para edição, tornando o LibreOffice mais prático como visualizador.

Você também pode usar outros formatos, como PDF ( --convert-to pdf ), e usar outro visualizador como atril .

Note que eu acho que o comando libreoffice convert pode usar as configurações usadas pelo usuário pela última vez no Importador, então se ele estiver configurado para usar um delimitador diferente de , , pode não funcionar.

Além disso, você pode modificar os comandos para ...

  • ocultar saída:

    COMMAND > /dev/null 2>&1
    
  • separado do terminal:

    COMMAND & disown
    
por 07.08.2015 / 18:55
1
  1. Instale o unoconv (apenas uma vez)

    • No Ubuntu, execute sudo apt-get install unoconv
    • No RHL / CentOS, execute sudo yum install unoconv
  2. Para converter em linha de comando ou em lote (não interativamente)

    • unoconv -f pdf /pathto/file.csv /pathto/file.pdf 2 > / dev / null

É isso!

Notas:

Eu canso erro padrão para / dev / null porque eu recebo um erro que "parece" como a conversão falhou, mas na verdade é bem-sucedida. Quando executo unoconv -f csv /tmp/this.csv /tmp/this.pdf , um erro é gerado:

unoconv: UnoException during export phase: Unable to store document to file:///tmp/this.pdf (ErrCode 19468)

Mas o arquivo é realmente criado em /tmp/this.pdf e eu confirmei por meio do visualizador de pdf que o arquivo é perfeito.

Não sei por que, mas acredito que o erro seja porque não estou executando um ouvinte. Talvez outra pessoa aqui consiga disparar isso; -)

De qualquer forma, se você precisar devolver uma saída 0 da conversão (por exemplo, um fantoche ou um chef talvez precise disso), execute o converso da seguinte forma:

unoconv -f pdf /pathto/file.csv /pathto/file.pdf 2>/dev/null || /bin/true

Por último, os padrões de conversão unconv csv são "delimitados por vírgulas", o que felizmente funciona para você. Leia a man page para ver as opções de filtro de importação se você quiser usar um delimitador diferente e / ou mais de um.

    
por 07.08.2015 / 15:56