มีวิธีใดที่ใช้บรรทัดคำสั่งในการแปลงไฟล์. csv หลายไฟล์เป็นสเปรดชีต. xls หลายแผ่น?


14

มีวิธีใดที่ใช้บรรทัดคำสั่งในการแปลงไฟล์. csv หลายไฟล์เป็นสเปรดชีต. xls หลายแผ่น?

ถ้าไม่มีวิธีแก้ปัญหา cli มันคงจะดีถ้ารู้ว่ามี API ที่ใช้งานได้ดีเลิศ awk หรือ pascal แต่ถ้าล้มเหลวก็จะทำสิ่งนั้นได้ดี


ssconvert ที่กล่าวถึงโดย Maythux เป็นคำสั่งร่วมกับ Gnumeric ซึ่งจะถูกติดตั้งตามค่าเริ่มต้นในระบบ Ubuntu Desktop แต่ไม่ใช่ในรุ่นเซิร์ฟเวอร์
Arronical

เนื่องจากข้อเท็จจริงที่ว่า Excel จะโหลด CSV ใน.xlsไฟล์ที่คุณสามารถทำได้:cat *.csv > file.xls
เถ้า

ลองนี้
Lety

1
ssconvert ทำการหลอกลวงอย่างสมบูรณ์แบบ สิ่งที่ฉันต้องการคือการมีไฟล์. csv แต่ละไฟล์ในแผ่นงานแยกต่างหาก การใช้แมวนั้นไม่สามารถทำได้ ssconvert ทำ
Peter Brooks

@ash csv และ xls เป็นรูปแบบที่แตกต่างกัน, จัดกลุ่มของ csvs ให้เป็นไฟล์และเปลี่ยนชื่อเป็น xls จะไม่ทำงานเลย, เนื่องจาก csvs ไม่รองรับหลาย ๆ แผ่นดังนั้นมันจะสร้าง csv ที่ยาวหนึ่งอัน, และเนื่องจาก csv เป็นรูปแบบธรรมดา xls เป็นรูปแบบไบนารี
chiliNUT

คำตอบ:


16

คุณสามารถใช้คำสั่งssconvert

ssconvert example.csv example.xls

ในการทำหลายไฟล์คุณต้องสร้าง bash loop บนไฟล์ csv และทำงาน นี่เป็นคำใบ้:

for i in *.csv; do ssconvert "$i" "${i%.*}".xls; done

แก้ไข:

หากต้องการแปลงและผสานเป็นไฟล์ xls ไฟล์เดียวคุณยังสามารถใช้ ssconvert ได้

ssconvert --merge-to=output.xls file1.csv file2.csv ....

หรือง่าย

ssconvert --merge-to=output.xls *.csv 

1
มันเป็นสิ่งสำคัญที่จะอ้างถึงตัวแปรเป็น"$i" "${i%.*}".xlsอย่างอื่นชื่อไฟล์ใด ๆ ที่มีช่องว่างจะทำลายคำสั่ง (และอาจเขียนทับไฟล์ที่ไม่เกี่ยวข้อง)
Paddy Landau
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.