여러 .xls 형식 파일을 .xlsx 형식으로 변환

여러 .xls 형식 파일을 .xlsx 형식으로 변환

저는 리눅스를 처음 접했습니다. Linux에는 터미널을 통해 파일 형식을 변환하는 몇 가지 방법이 있다는 것을 알고 있습니다. 그러나 다음을 달성할 수 있는 방법이 있습니까?

3개의 폴더가 있고 이 폴더 안에 15개의 폴더가 더 있습니다. 각 폴더에는 .xls 형식의 파일 12개와 기타 .R 파일 및 pdf 파일이 있습니다. 모든 .xls를 .xlsx 형식으로 변환하여 이 3개 폴더의 정확한 복사본을 만드는 방법이 있습니까?

다음 내용이 너무 현실적이지 않은 경우 폴더의 모든 .xls 파일을 .xlsx 파일 형식으로 변환하려면 어떻게 해야 합니까? 그러면 위의 내용을 복사할 수 있습니다.

참고: 저는 LibreOffice가 없고 WPS를 사용합니다. 다음에 LibreOffice가 필요한 경우 필요에 따라 설치할 수 있습니다.

답변1

이것은 필요할 것이다libreoffice

이 스택 오버플로 질문에서xls 파일을 xlsx 파일로 변환하는 Unix 명령은 무엇입니까?:

libreoffice --convert-to xlsx my.xls --headless

--convert-to옵션 은 --headless(위의 SO 답변이 2014년에 작성되었을 때 Libreoffice 버전 4.2.3에서는 사용할 수 없었지만 이후적어도Libreoffice 6은 2018년에 출시될 예정이며 아마도 그보다 더 길어질 것입니다). 이것을 명령줄에 추가해도 아무런 해가 없지만 필수는 아닙니다.

find그런 다음 이를 명령 에 통합할 수 있습니다 .

find . -type f -name "*.xls" -exec libreoffice --convert-to xlsx {} \;

이 명령은 현재 디렉터리에서 이름이 로 끝나는 파일을 찾고 .xls파일 이름으로 대체된 명령을 실행합니다.{}

프리랜서 회사원상태:

--convert-to output_file_extension[:output_filter_name] [--outdir output_dir] file...

파일을 일괄 변환합니다. 지정하지 않으면 --outdir 현재 작업 디렉터리가 변환된 파일의 출력 디렉터리로 사용됩니다. 이것은 의미한다--headless

예:

 --convert-to pdf *.doc

모든 .doc 파일을 PDF로 변환하세요.

 --convert-to pdf:writer_pdf_Export --outdir /home/user *.doc

Writer PDF 내보내기 대화 상자의 설정을 사용하여 모든 .doc 파일을 PDF로 변환하고 /home/user에 저장합니다.

@cas님의 댓글입니다.

libreoffice는 여러 파일 이름 인수를 사용할 수 있으므로(맨 페이지의 예에서 이를 보여줍니다) find로 실행하는 것이 더 빠릅니다. -type f -name '*.xls' -exec libreoffice --convert-to xlsx {} + - 각 파일에 대해 한 번이 아니라 libreoffice를 한 번만 실행하면 됩니다.

find . -type f -name '*.xls' -exec libreoffice --convert-to xlsx {} +

답변2

MacOS에서 작동하도록 @Nicolas의 답변을 약간 수정했습니다. "libreoffice" 명령이 셸에 대해 정의되지 않았을 수 있으므로 libreoffice 바이너리를 가리켜야 합니다. 내 경우에는 다음과 같았습니다.

find . -type f -name "*.xls" -exec /Applications/LibreOffice.app/Contents/MacOS/soffice --convert-to xlsx {} \;

관련 정보