แปลง xlsx เป็น xls ในสคริปต์เชลล์ linux


14

ฉันต้องแปลงไฟล์ ".xlsx" เป็น ".xls" โดยใช้คำสั่ง shell

ที่ทำงานของฉันเรากำลังใช้คำสั่ง xlsx2csv แต่ตอนนี้ความต้องการมีการเปลี่ยนแปลงและเราจำเป็นต้องแปลงไฟล์ ".xlsx" ทั้งหมดเป็นไฟล์ ".xls" เพื่อการคำนวณเพิ่มเติม

สำหรับสิ่งนั้นคนที่ทำงานของฉันได้พัฒนาคำสั่งเดียวที่สามารถแปลง ".xlsx" เป็น ".xls" แต่สามารถใช้ได้กับแผ่นงานเดียวเท่านั้น ..

เรามีหลายแผ่นในหนึ่งไฟล์

ขอบคุณล่วงหน้า....


นอกจากนี้ยังสามารถทำได้โดยใช้ไลบรารี pyxl สิ่งนี้ตรงกันข้าม: stackoverflow.com/questions/9918646/how-to-convert-xls-to-xlsx
Mark

คำตอบ:


20

หากคุณติดตั้ง LibreOffice คุณสามารถใช้คำสั่งต่อไปนี้:

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

หรือเพียงแค่:

libreoffice --convert-to xls myfile.xlsx

ในรุ่นที่ผ่านมา (> = 4.5) ที่หมายถึง--convert-to--headless

สิ่งนี้จะสร้างmyfile.xlsและเก็บmyfile.xlsxดั้งเดิมไว้ดังนั้นคุณอาจต้องทำการล้างข้อมูลหลังจากที่คุณตรวจสอบความถูกต้องของการแปลงแล้ว


ตัวเลือกนี้ดีมาก แต่ฉันคิดว่ามีปัญหาหนึ่งอย่างมันเปิดอินสแตนซ์ libreoffice แล้วแปลงเป็นไฟล์ ".xls" มีตัวเลือกอื่น ๆ ที่จะไม่เปิด libreoffice และยังสามารถแปลงเป็นไฟล์ ".xls" ได้หรือไม่? คุณช่วยฉันได้ไหม @forquare
เปรม Joshi

1
@PremJoshi Man page พูดว่า: "[--convert-to] implies --headless" ดังนั้นจึงไม่เปิด GUI อย่างไรก็ตามเมื่อคุณเปิดใช้งานเป็นครั้งแรกหลังจากบูตมันอาจแสดงหน้าจอสแปลชหรืออะไรทำนองนั้นในขณะที่ลงทะเบียนบริการ (ขึ้นอยู่กับเดสก์ท็อปของคุณ)
lgeorget

1
@Igeorget! ตัวเลือก "- ไร้หัว" ทำงานให้ฉัน! นี่เป็นคำตอบที่แน่นอนสำหรับคำถามของฉัน
เปรม Joshi

3
กระทำที่ทำให้--convert-toบ่งบอกถึงการ--headlessเป็นgerrit.libreoffice.org/... (เวอร์ชั่น 4.4) ในเวอร์ชันก่อนหน้าทั้งสองตัวเลือกจะต้องผ่าน
lgeorget

1
ระวังขีด จำกัด แถว xls รูปแบบ 65535 เนื่องจากคำสั่งนี้จะไม่พิมพ์ข้อความเตือนใด ๆ หากไฟล์ xlsx เกินขีด จำกัด นั้น (จะส่งไฟล์แถว 65535 ที่ไม่ตรงกับต้นฉบับโดยไม่มีคำเตือน)
golimar

6

คุณสามารถลองssconvertใช้เครื่องมือตัวช่วยแปลงเป็น gnumeric

ssconvert in.xlsx out.xls

(ตามปกติดูman ssconvert)

สำหรับกรณีปกตินี่เป็นเรื่องปกติ หากไฟล์อินพุตมีความก้าวหน้าอย่างมากในตัวแปลงที่ใช้ (libreoffice และ gnumeric) รายละเอียดบางอย่างอาจหายไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.