Chuyển đổi xlsx thành xls trong tập lệnh shell linux


14

Tôi cần chuyển đổi tập tin ".xlsx" thành ".xls" bằng lệnh shell.

Trong công việc của tôi, chúng tôi hiện đang sử dụng lệnh xlsx2csv nhưng bây giờ yêu cầu đã được thay đổi và chúng tôi cần chuyển đổi tất cả các tệp ".xlsx" thành các tệp ".xls" để tính toán thêm.

Vì thế, một số người trong công việc của tôi đã phát triển một lệnh có thể chuyển đổi ".xlsx" thành ".xls" nhưng, chỉ áp dụng cho một tờ ..

Chúng tôi có nhiều tờ trong một tập tin.

Cảm ơn trước....


Nó cũng có thể được thực hiện bằng thư viện pyxl, điều này ngược lại: stackoverflow.com/questions/9918646/how-to-convert-xls-to-xlsx
Đánh dấu

Câu trả lời:


20

Nếu bạn cài đặt LibreOffice, bạn có thể sử dụng lệnh sau:

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

hoặc chỉ:

libreoffice --convert-to xls myfile.xlsx

trong phiên bản gần đây (> = 4,5) trong đó --convert-tongụ ý --headless.

Điều này sẽ tạo myfile.xls và giữ bản gốc myfile.xlsx, vì vậy bạn có thể cần phải dọn dẹp sau khi bạn xác thực chuyển đổi thành công.


Tùy chọn này rất tốt, nhưng tôi nghĩ có một vấn đề, nó mở phiên bản libreoffice và sau đó chuyển đổi nó thành tệp ".xls". Có tùy chọn nào khác sẽ không mở libreoffice và vẫn có thể chuyển đổi thành tệp ".xls" không? Bạn có thể giúp tôi với điều này ? @forapes
Prem Joshi

1
Trang @PremJoshi Man nói: "[--convert-to] ngụ ý - không đầu." vì vậy GUI không được mở. Tuy nhiên, khi bạn khởi chạy nó lần đầu tiên sau khi khởi động, nó có thể hiển thị màn hình giật gân hoặc một cái gì đó tương tự trong khi nó đăng ký dịch vụ (tùy thuộc vào máy tính để bàn của bạn).
lgeorget

1
@Igeorget! tùy chọn "- không đầu" làm việc cho tôi! đây là câu trả lời chính xác cho câu hỏi của tôi
Prem Joshi

3
Cam kết thực hiện --convert-tongụ ý --headlessgerrit.libreoffice.org/, (phiên bản 4.4). Trong các phiên bản trước, cả hai tùy chọn phải được thông qua.
lgeorget

1
Lưu ý về giới hạn hàng xls định dạng 65535, vì lệnh này không in bất kỳ thông báo cảnh báo nào nếu tệp xlsx vượt quá giới hạn đó (nó sẽ xuất ra tệp hàng 65535 không tương ứng với bản gốc, không có cảnh báo)
golimar

6

bạn cũng có thể thử ssconvertcông cụ chuyển đổi đồng hành của gnumeric

ssconvert in.xlsx out.xls

(như thường lệ, xem man ssconvert)

Đối với trường hợp bình thường , điều này là tốt. Nếu tệp đầu vào rất tiên tiến trong cả hai bộ chuyển đổi dựa trên cơ sở (libreoffice và gnumeric), một số chi tiết có thể bị mất.

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.