Linux komut satırını kullanarak bir e-tablonun sayfa adlarını nasıl yazdırabilirim?


11

in2csvBelirli bir çalışma sayfasını .csv olarak kaydetmek için kullanmanın farkındayım :

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

Ancak sayfa adlarını yazdırmak için başka araçlar var mı?

Belki de Perl ile seçenekler var?

Yanıtlar:


12

in2csvdan csvkitpaket sağlar --namesveya -nbunun için bir seçenek: [ Kaynak ]

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

Örneğinizde komut şöyle olacaktır:

in2csv -n file1.xls

Bu özellik, Bionic'ten daha eski sürümler csvkitiçin resmi paket kaynaklarında bulunmayan 1.0.2'de eklenmiştir . Xenial çalıştırıyorsanız,

  • programı kaynaktan derlemek veya
  • aracılığıyla yükleyin pipile

    sudo pip install csvkit
    

son sürümü almak için.


Bu cevabı kabul ederdim ama in2csveksik -nseçeneğim var. Garip, en son nasıl anlamaya çalışıyorum ama csvkit ile sorun yaşıyorsanız ve daha yaşlı in2csv... sigh
csheth

2
Sadece bunu kaldırmak istiyorum sudo apt remove python3-csvkitve yüklemek daha yeni bir tane, tercihen packages.ubuntu.com dan başka, ya github.com/wireservice/csvkit/tree/1.0.2 . Bu özellik, "1.0.2" etiketli bu işlemle tanıtıldı, bu nedenle bundan sonraki tüm sürümlerde bu seçenek bulunmalıdır.
tatlı

Daha doğrusu ediyorum, bu durumda - Ne yazık ki github gelen kaynak derleme gitmek için tek yol gibi görünüyor böylece paketlenmiş sürümleri hiçbirinin, bu sürüm numarasına ulaşmak görünüyor değil paket sürümü kaldırma ama sadece adında bir sarmalayıcı işlevi yazmak in2csvolduğunu seçenek ve her zamanki gibi /path/to/new/in2csvçağrılması durumunda çağırır . -n/usr/bin/in2csv
tatlı

1
tamam. sudo apt remove python3-csvkitYeni olanı kullandım , yükledim ve işe yaradı. Sarıcı işlevi çok kullanışlıdır evet!
csheth

8

in2csvdaha basit bir seçenektir, ancak birisinin yararlı bulabilmesi durumunda bunu bırakacağım. xlhtmlXLS dosyalarını HTML veya XML'ye dönüştürmek için güzel bir komut var . Ve XML'i aldıktan sonra, üzerinde çok çeşitli sorgular yapmak için çeşitli XML işleme araçları kullanılabilir. Bu durumda:

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

Üreten XML şöyle xlhtml:

<?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>

Yani, levha adları için, biz sorgulayabilir pagetitlehangi düğümleri, kullandığımxmlstarlet .


16.04 Xenial için mevcut değildir. Cevabınıza eklemek faydalı olabilir mi?
csheth
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.