Linux 명령 행을 사용하여 스프레드 시트의 시트 이름을 인쇄하려면 어떻게해야합니까?


11

in2csv특정 워크 시트를 .csv로 저장하는 데 사용 하고 있습니다.

in2csv --sheet "sheet name" file1.xls > sheet-name.csv

그러나 시트 이름을 인쇄하는 다른 도구가 있습니까?

아마도 Perl에는 옵션이 있습니까?

답변:


12

in2csvcsvkit패키지 에서 다음에 대한 --names또는 -n옵션을 제공합니다 . [ Source ]

 -n, --names     Display sheet names from the input Excel file.

귀하의 예에서 명령은 다음과 같습니다.

in2csv -n file1.xls

이 기능은 csvkit1.0.2에서 추가되었으며 Bionic 이전 릴리스 의 공식 패키지 소스 에서는 제공되지 않습니다 . Xenial을 실행중인 경우 다음 중 하나를 수행해야합니다.

  • 소스 에서 프로그램을 컴파일 하거나
  • pip함께 설치

    sudo pip install csvkit
    

최신 버전을 구하십시오.


이 답변을 수락했지만 옵션 이 in2csv부족한 버전 이 -n있습니다. 이상한, 최신을 얻는 방법을 알아 내려고하지만 csvkit에 문제가 있고 오래된 것을 제거하는 in2csv... sigh
csheth

2
나는 그것을 제거 sudo apt remove python3-csvkit하고 새로운 패키지를 설치하고, 바람직하게는 packages.ubuntu.com 또는 github.com/wireservice/csvkit/tree/1.0.2 에서 설치 합니다. 커밋에“1.0.2”태그가 추가 된 기능 이므로이 버전의 모든 버전에이 옵션이 있어야합니다.
디저트

차라리 것,이 경우 - 불행하게도 GitHub의에서 소스를 컴파일하면 갈 수있는 유일한 방법이 될 것으로 보인다 있도록 패키지 버전의 것도,이 버전 번호에 도달하지 보인다 되지 패키지 버전 제거하지만 단지라는 이름의 래퍼 함수 쓰기 in2csv있음을 옵션과 다른 방법으로 호출 /path/to/new/in2csv된 경우 호출 합니다. -n/usr/bin/in2csv
디저트

1
확인. 나는 sudo apt remove python3-csvkit새로운 것을 설치하고 사용 했다. 래퍼 기능은 매우 유용합니다.
csheth

8

in2csv더 간단한 옵션이지만 누군가 유용하다고 생각되는 경우에 대비해 두겠습니다. xlhtmlXLS 파일을 HTML 또는 XML로 변환 하는 멋진 명령이 있습니다 . XML이 있으면 다양한 XML 처리 도구를 사용하여 다양한 쿼리를 수행 할 수 있습니다. 이 경우 :

$ xlhtml -xml ~/foo.xls | xmlstarlet sel -t -m '//pagetitle' -v . -n
Sheet1
Sheet2

xlhtml생성 하는 XML 은 다음과 같습니다.

<?xml version="1.0" encoding="iso-8859-1" ?>
<excel_workbook>
    <sheets>
        <sheet>
            <page>0</page>
            <pagetitle>Sheet1</pagetitle>
            <firstrow>0</firstrow>
            <lastrow>11</lastrow>
            <firstcol>0</firstcol>
            <lastcol>0</lastcol>

따라서 시트 이름의 경우 사용한pagetitle 노드를 쿼리 할 수 ​​있습니다 .xmlstarlet


16.04 Xenial에서는 사용할 수 없습니다. 답에 추가하는 것이 도움이 될까요?
csheth
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.