리눅스2023. 4. 27. 14:31

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/564236

 

리눅스에서 MS 엑셀 문서(xls/xlsx)를 csv(comma separated values) 형식으로 변환하는 방법이다. 리눅스용 스프레드 시트 S/W인 gnumeric을 설치하면 같이 따라오는 ssconvert를 이용하면 된다.

먼저 gnumeric부터 설치하자. 터미널창에서 아래와 같이 입력한다(데비안/우분투 기준).

# S/W 저장소 갱신
sudo apt-get update
# gnumeric 설치
sudo apt-get install gnumeric

이제 ssconvert를 이용해서 엑셀 문서를 변환할 수 있다. 아래의 예시를 보자.

# my_sheet.xlsx 파일을 csv로 변환해서 my_sheet.csv로 저장
ssconvert -S my_sheet.xlsx my_sheet.csv

-S 옵션을 주지 않으면 엑셀 문서의 첫번째 워크시트만 csv 형식으로 변환한다. 문서에 여러개의 워크시트가 있다면 반드시 -S 옵션을 추가해 주자. -S 옵션을 지정하면 워크시트의 개수만틈 csv 파일이 생긴다. 위의 예시에서 만약 xlsx 파일에 워크시트가 2개였다면 csv 파일은 my_sheet.csv.0, my_sheet.csv.1 이렇게 2개가 생긴다.

리브레오피스에서도 csv 변환을 지원해 주긴 하는데, ssconvert에서 -S 옵션이 없는 형태인 듯하다. 워크시트가 여러개인 엑셀 파일을 변환할 경우 첫번째 워크시트의 내용만 저장되었다. 리브레오피스 4.2 기준이며, 이후 버전은 어떤지 모르겠다. 어쨌든 아래와 같이 입력하면 리브레오피스에서 변환하게 된다. (오피스 문서의 pdf 변환에 대한 이전 게시물을 참고하자. 여기로)

 

# my_sheet.xlsx 파일을 csv 형식으로 변환(리브레오피스)
libreoffice --invisible --convert-to csv my_sheet.xlsx

728x90
Posted by 반달가면