여러 .csv 파일을 하나의 다중 시트 .xls 스프레드 시트로 변환 할 수있는 방법이 있습니까?


14

여러 .csv 파일을 하나의 다중 시트 .xls 스프레드 시트로 변환 할 수있는 방법이 있습니까?

cli 솔루션이 없다면 이상적으로 awk 또는 pascal에서 작동하는 API가 있는지 잘 아는 것이 좋을 것입니다.


Maythux에서 언급 한 ssconvert는 Gnumeric과 함께 사용되는 명령으로, 기본적으로 Ubuntu Desktop 시스템에는 설치되지만 서버 버전에는 설치되지 않습니다.
Arronical

Excel에서 .xls파일로 CSV를로드한다는 사실을 고려하면 다음과 같이 간단하게 수행 할 수 있습니다.cat *.csv > file.xls
ash


1
ssconvert는 트릭을 완벽하게 수행합니다. 내가 필요한 것은 각 .csv 파일을 별도의 시트에 보관하는 것이 었습니다. 고양이를 사용하는 것은 그것을 달성하지 못합니다. ssconvert는 않습니다.
피터 브룩스

@ash csv와 xls는 다른 형식으로, csvs를 여러 파일로 분류하고 이름을 바꾸면 xls가 전혀 작동하지 않습니다 .csv는 여러 시트를 지원하지 않으므로 하나의 긴 csv를 만들뿐 아니라 csv는 일반 텍스트 형식이므로 xls는 이진 형식입니다
chiliNUT

답변:


16

ssconvert 명령을 사용할 수 있습니다 .

ssconvert example.csv example.xls

여러 파일을 처리하려면 csv 파일에 대해 bash 루프를 만들고 작업을 수행해야합니다. 힌트 :

for i in *.csv; do ssconvert "$i" "${i%.*}".xls; done

편집하다:

하나의 xls 파일로 변환하고 병합하기 위해 여전히 ssconvert를 사용할 수 있습니다.

ssconvert --merge-to=output.xls file1.csv file2.csv ....

또는 쉽게

ssconvert --merge-to=output.xls *.csv 

1
변수를 인용하는 것이 중요합니다 "$i" "${i%.*}".xls. 그렇지 않으면 공백이 포함 된 파일 이름으로 인해 명령이 중단되고 관련이없는 파일을 덮어 쓸 수 있습니다.
Paddy Landau
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.