CSV 파일을 열고 스프레드시트로 직접 이동

CSV 파일을 열고 스프레드시트로 직접 이동

내 소프트웨어의 일부는 다양한 파일 형식을 열고 보는 다양한 명령을 실행합니다. 예를 들어 atrilPDF와 PNG를 사용합니다 eom.
하지만 CSV 파일에 작은 문제가 있습니다. 열 수는 있지만 soffice –calc <filepath>가져오기 단계를 거칠 때마다요.
형식이 일관되고 포함해야 하는 유일한 구분 기호는 쉼표뿐이므로 사용자 문제의 위험을 피하기 위해 이를 방지할 수 있는 방법이 있습니까 ,?

미리 감사드립니다.

답변1

가져오기를 건너뛰는 방법은 파일을 가져오지 않고도 읽을 수 있는 형식으로 변환하는 것입니다. 예를 들면 다음과 같습니다.

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

그러면 파일이 tblIssues.csvODS 스프레드시트로 변환되어 저장 /tmp되고 Libreoffice에서 열립니다. 완료되면 변환된 파일이 삭제됩니다(선택 사항).

--view옵션은 파일을 읽기 전용으로 열고 편집에 필요한 GUI 요소를 숨겨 LibreOffice를 뷰어로 더욱 유용하게 만듭니다.

PDF( )와 같은 다른 형식을 사용한 --convert-to pdf다음 와 같은 다른 뷰어를 사용할 수도 있습니다 atril.

libreoffice Convert 명령은 임포터에서 사용자가 마지막으로 사용한 설정을 사용할 수도 있기 때문에, ,그 이외의 구분 기호를 사용하도록 설정하면 작동하지 않을 수도 있다는 점 참고하시기 바랍니다.

또는 다음과 같이 명령을 수정할 수 있습니다.

  • 숨겨진 출력:

    COMMAND > /dev/null 2>&1
    
  • 터미널과 분리:

    COMMAND & disown
    

답변2

  1. unoconv 설치(한 번만)

    • 우분투에서 실행sudo apt-get install unoconv
    • RHL/CentOS에서 실행sudo yum install unoconv
  2. 명령줄 또는 배치 모드에서 변환(비대화형)

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

그게 다야!

노트:

변환이 실패한 것처럼 "보이는" 오류가 발생하기 때문에 stderr를 /dev/null로 파이핑하고 있지만 실제로는 성공했습니다. unoconv -f csv /tmp/this.csv /tmp/this.pdf오류 출력을 실행하면 다음과 같습니다 .

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

그러나 파일은 실제로 /tmp/this.pdf에 생성되었으며 PDF 뷰어를 통해 파일이 완벽하다는 것을 확인했습니다.

이유는 모르겠지만 실행 중인 리스너가 없기 때문에 오류가 발생한 것으로 추측됩니다. 아마도 여기 다른 누군가가 이 문제를 해결할 것입니다 ;-)

어쨌든 변환에서 종료 0을 반환해야 하는 경우(예: Puppet 또는 Chef가 필요할 수 있음) 다음과 같이 변환을 실행하세요.

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

마지막으로 unoconv csv 변환은 ​​기본적으로 "쉼표로 구분"되어 있는데, 이는 운 좋게도 작동합니다. 서로 다른 구분 기호 및/또는 여러 구분 기호를 사용하려면 매뉴얼 페이지를 읽고 가져오기 필터 옵션을 확인하세요.

관련 정보