Có cách nào, lý tưởng nhất là sử dụng dòng lệnh, để chuyển đổi nhiều tệp .csv thành một bảng tính .xls nhiều trang không?


14

Có cách nào, lý tưởng nhất là sử dụng dòng lệnh, để chuyển đổi nhiều tệp .csv thành một bảng tính .xls nhiều trang không?

Nếu không có giải pháp cli, sẽ tốt hơn nếu biết có API hoạt động, lý tưởng là awk hoặc pascal, nhưng, thất bại trong mọi thứ, khá tốt.


ssconvert, được đề cập bởi Maythux, là một lệnh đồng hành với Gnumeric, sẽ được cài đặt theo mặc định trên hệ thống Ubuntu Desktop, nhưng không phải trên phiên bản máy chủ.
Arronical 17/2/2016

Dựa vào thực tế, Excel sẽ tải CSV trong một .xlstệp mà bạn có thể thực hiện đơn giản:cat *.csv > file.xls
tro

thử cái này
Lety

1
ssconvert thực hiện các mẹo, hoàn hảo. Điều tôi cần là có mỗi tệp .csv trong một trang riêng. Sử dụng mèo không đạt được điều đó. ssconvert nào.
Peter Brooks

@ash csv và xls là các định dạng khác nhau, trích dẫn một loạt các csv thành một tệp và đổi tên nó thành xls không hoạt động, vì csvs không hỗ trợ nhiều trang tính nên nó chỉ tạo một csv dài và vì csv là định dạng rõ xls là định dạng nhị phân
chiliNUT 23/2/2016

Câu trả lời:


16

Bạn có thể sử dụng lệnh ssconvert .

ssconvert example.csv example.xls

Để làm điều đó cho nhiều tệp, bạn phải tạo một vòng lặp bash trên các tệp csv và thực hiện công việc. Đây là một gợi ý:

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

BIÊN TẬP:

Để chuyển đổi và hợp nhất thành một tệp xls đơn, bạn vẫn có thể sử dụng ssconvert.

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

hoặc dễ dàng

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

1
Điều quan trọng là trích dẫn các biến, vì "$i" "${i%.*}".xls, nếu không, bất kỳ tên tệp nào chứa khoảng trắng sẽ phá vỡ lệnh (và có khả năng ghi đè lên một tệp không liên quan).
Paddy Landau
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.