다음 방법을 사용하여 Excel 파일을 CSV로 변환할 수 있습니다.
$ libreoffice --convert-to csv --headless --outdir dir file.xlsx
모든 것이 잘 작동하는 것 같습니다. 그런데 인코딩 설정에 이상한 점이 있습니다. UTF-8 mdash(—) 대신 LibreOffice Calc에서 수동으로 "다른 이름으로 저장"하면 \227(�)이 표시됩니다. 사용문서CSV의 내용에 "비ISO 확장 ASCII 텍스트, 줄 길이"가 표시됩니다. 따라서 두 가지 질문이 있습니다.
- 여기서 무슨 일이 일어나고 있는 걸까요?
- libreoffice에 UTF-8로 변환하도록 어떻게 지시합니까?
변환하려는 특정 파일은 다음과 같습니다.여기.
답변1
분명히 LibreOffice는 기본적으로 ISO-8859-1을 사용하려고 시도하므로 문제가 발생합니다.
이 버그 보고서에 응답하세요.--infilter
, 새로운 매개변수가 추가되었습니다. 다음 명령은U+2014 대시:
libreoffice --convert-to csv --infilter=CSV:44,34,76,1 --headless --outdir dir file.xlsx
저는 이것을 LO 5.0.3.2에서 테스트했습니다. 버그 보고서에 따르면 이 옵션이 포함된 최초 버전은 LO 4.4인 것으로 보입니다.
답변2
시도해 볼 수 있습니다.
$ libreoffice --convert-to \
> csv:"Text - txt - csv (StarCalc)":"44,34,0,1,,0" \
> --headless --outdir dir file.xlsx
여기, 매우 자세한 도움말이 있습니다.