Cách chỉnh sửa tệp Excel (xlsx) bằng shell linux


11

Có cách nào (công cụ) để chỉnh sửa các tệp XLSX bằng Linux shell không? Những gì tôi cần là một cách để loại bỏ ba hàng không trống cuối cùng khỏi bảng tính đầu tiên.

Tôi biết rằng XLSX chỉ là một tệp zip, được đóng gói với các tệp XML khác nhau mà tôi có thể chỉnh sửa riêng lẻ. Tuy nhiên, tôi muốn tránh tự mình phân tích và thay đổi các tệp XML, nếu có thể.

Câu trả lời:


14

Ý tưởng của tôi là một kịch bản python như thế này:

import pandas as pd
filename=argv[1]
df = pd.read_excel(filename,sheet_name="Sheet1").ix[:-3] ## read the xlsx without last 3 rows to a dataframe
df.write_excel("output_sheet.xlsx") #write dataframe to xlsx file

để kiểm tra "sự không trống rỗng" bạn có thể sử dụng df.notna()


Âm thanh đầy hứa hẹn - sẽ cho nó một thử. Chỉ cần chắc chắn - df.ix [: - 3] - sẽ xóa ba hàng cuối không trống? Bởi vì một bảng excel có rất nhiều hàng trống, nếu bạn nhìn vào tệp xml trong xlsx.
Bojan Hrnkas

2
nó xóa 3 hàng cuối cùng. hàng trống sau hàng không trống cuối cùng được bỏ qua. Để thuận tiện ở đây: pandas.pydata.org/pandas-docs/version/0.22/generated/NH là một tài liệu tham khảo về khung dữ liệu của gấu trúc
DDS

-3

Libreoffice (và có lẽ cả OpenOffice) có thể đọc các tệp .xlsx được tạo bởi Excel. Nếu bạn không có nhiều tệp để xử lý theo cách này, thực hiện thủ công trong Libreoffice là cách đơn giản nhất để thực hiện. Nếu bạn có nhiều tệp và thực sự cần một giải pháp tự động, Libreoffice có thể viết được. Xem tài liệu API hoặc bắt đầu với phần giới thiệu hướng dẫn thêm .


2
Điều này không hiệu quả với tôi, vì tôi muốn tự động hóa một cái gì đó trên một máy chủ không đầu.
Bojan Hrnkas

2
@ống. Có thể chạy LibreScript ở chế độ không đầu, phải không?
TRiG

3
@TRiG Chắc chắn là như vậy, và một câu trả lời chi tiết làm thế nào để làm điều đó sẽ là một câu trả lời tuyệt vời. Đây không phải là câu trả lời.
đường ống

1
@pipe gọi LibreOffice là "công cụ gui một lần" là cực kỳ khó khăn. Về cơ bản nó trái ngược với những gì nó thực sự là.
thịt nướng

1
Mở LibreScript ở chế độ Không đầu cũng đơn giản như sử dụng --headlesstùy chọn.
Johnny
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.