ฉันตระหนักถึงการใช้in2csv
เพื่อบันทึกแผ่นงานเฉพาะเป็น. csv:
in2csv --sheet "sheet name" file1.xls > sheet-name.csv
แต่มีเครื่องมืออื่นใดที่เพียงพิมพ์ชื่อแผ่นงานหรือไม่
บางทีมีตัวเลือกกับ Perl หรือไม่
ฉันตระหนักถึงการใช้in2csv
เพื่อบันทึกแผ่นงานเฉพาะเป็น. csv:
in2csv --sheet "sheet name" file1.xls > sheet-name.csv
แต่มีเครื่องมืออื่นใดที่เพียงพิมพ์ชื่อแผ่นงานหรือไม่
บางทีมีตัวเลือกกับ Perl หรือไม่
คำตอบ:
in2csv
จากcsvkit
แพ็คเกจให้--names
หรือ-n
ตัวเลือกสำหรับที่: [ ที่มา ]
-n, --names Display sheet names from the input Excel file.
ในตัวอย่างของคุณคำสั่งจะเป็น:
in2csv -n file1.xls
ฟีเจอร์นี้เพิ่มเข้ามาในcsvkit
1.0.2 ซึ่งไม่สามารถใช้ได้จากแหล่งแพคเกจอย่างเป็นทางการสำหรับการเผยแพร่ที่เก่ากว่าไบโอนิค หากคุณใช้ Xenial คุณต้องทำเช่นนั้น
ติดตั้งผ่านpip
กับ
sudo pip install csvkit
เพื่อรับเวอร์ชันล่าสุด
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
อื่น ๆตามปกติ
sudo apt remove python3-csvkit
ติดตั้งใหม่และมันใช้งานได้ ฟังก์ชั่น wrapper มีประโยชน์มากใช่!
in2csv
เป็นตัวเลือกที่ง่ายกว่า แต่ฉันจะทิ้งไว้ในกรณีที่ใครบางคนอาจพบว่ามีประโยชน์ มีคำสั่งที่ดีxlhtml
สำหรับการแปลงไฟล์ XLS เป็น HTML หรือ XML และเมื่อคุณมี 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
in2csv
ไม่มี-n
ตัวเลือก แปลกพยายามที่จะคิดออกว่าจะได้รับล่าสุด แต่มีปัญหากับ csvkit และเอาเก่าin2csv
... ถอนหายใจ