मैं लिनक्स कमांड-लाइन का उपयोग करके स्प्रैडशीट के शीट नाम कैसे प्रिंट कर सकता हूं?


11

मैं in2csvएक .csv के रूप में एक विशेष वर्कशीट को बचाने के लिए उपयोग करने के बारे में जानता हूँ :

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

लेकिन क्या सिर्फ चादरें छापने के लिए कोई अन्य उपकरण हैं?

शायद पर्ल के साथ विकल्प हैं?

जवाबों:


12

in2csvसे csvkitपैकेज प्रदान करता है --namesया -nउस के लिए विकल्प: [ स्रोत ]

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

आपके उदाहरण में कमांड होगी:

in2csv -n file1.xls

इस सुविधा को csvkit1.0.2 में जोड़ा गया था , जो कि बायोनिक की तुलना में पुराने रिलीज के लिए आधिकारिक पैकेज स्रोतों से उपलब्ध नहीं है । यदि आप ज़ेनियल चला रहे हैं तो आपको या तो चाहिए

  • स्रोत या से कार्यक्रम संकलित करें
  • इसके 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" के साथ पेश किया गया था , इसलिए उस पर किसी भी संस्करण का यह विकल्प होना चाहिए।
मिठाई

दुर्भाग्य से ऐसा लगता है कि पैक किए गए संस्करणों में से कोई भी इस संस्करण संख्या तक नहीं पहुंचता है, इसलिए जीथब से स्रोत को संकलित करने का एकमात्र तरीका प्रतीत होता है - इस मामले में, मैं पैकेज संस्करण को अनइंस्टॉल नहीं करूंगा, बल्कि सिर्फ एक रैपर फ़ंक्शन लिखूंगा जिसका नाम in2csvहै /path/to/new/in2csvमामले में कॉल यह -nविकल्प और सामान्य रूप से कहा जाता /usr/bin/in2csvहै।
मिठाई

1
ठीक। मैंने उपयोग किया sudo apt remove python3-csvkit, नया स्थापित किया और यह काम किया। आवरण समारोह बहुत उपयोगी है हाँ!
सीएसथ

8

in2csvसरल विकल्प है, लेकिन अगर कोई इसे उपयोगी समझ सकता है, तो मैं इसे छोड़ दूँगा। वहाँ एक अच्छा आदेश xlhtmlHTML या XML के लिए XLS फ़ाइलों को परिवर्तित करने के लिए कहा जाता है । और एक बार आपके पास XML होने के बाद, विभिन्न XML प्रोसेसिंग टूल का उपयोग उस पर कई प्रकार के प्रश्नों को करने के लिए किया जा सकता है। इस मामले में:

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

XML जो 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>

इसलिए, शीट नामों के लिए, हम pagetitleनोड्स को क्वेरी कर सकते हैं, जिसके लिए मैंने उपयोग किया थाxmlstarlet


यह 16.04 Xenial के लिए उपलब्ध नहीं है। शायद आपके उत्तर में इसे जोड़ने के लिए उपयोगी है?
सीएसथ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.