มีวิธีใดที่ใช้บรรทัดคำสั่งในการแปลงไฟล์. 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.