Как редактировать файл Excel (xlsx), используя оболочку linux


11

Есть ли способ (инструмент) для редактирования файлов XLSX с помощью оболочки Linux? Мне нужен способ удалить последние три непустые строки из первого листа.

Я знаю, что XLSX - это просто zip-файл, упакованный различными XML-файлами, которые я мог редактировать по отдельности. Тем не менее, я хотел бы избежать анализа и изменения файлов XML самостоятельно, если это возможно.

Ответы:


14

Моя идея - это скрипт на python:

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

чтобы проверить "не пустоту" вы можете использовать df.notna()


Звучит многообещающе - попробую. Просто чтобы быть уверенным - df.ix [: - 3] - удалит последние три непустые строки? Поскольку в листе Excel есть много пустых строк, если вы посмотрите на файл xml в xlsx.
Боян Хрнкас

2
удаляет последние 3 строки. пустые строки после последней непустой строки игнорируются. Для удобства здесь: pandas.pydata.org/pandas-docs/version/0.22/generated/… является ссылкой на фрейм данных pandas
DDS

-3

Libreoffice (и, вероятно, также OpenOffice) может читать файлы .xlsx, созданные в Excel. Если у вас нет большого количества файлов для обработки таким способом, сделать это вручную в Libreoffice - самый простой способ. Если у вас много файлов и вам действительно нужно автоматизированное решение, Libreoffice поддерживает сценарии. Посмотрите документы API или начните с более подробного руководства .


2
Это не работает для меня, потому что я хочу автоматизировать что-то на безголовом сервере.
Боян Хрнкас

2
@pipe. Возможно ли запустить LibreOffice в режиме без головы, не так ли?
августа

3
@ TRiG Конечно, и ответ, в котором подробно описано, как это сделать, был бы отличным ответом. Это не тот ответ.
труба

1
@pipe, называя LibreOffice «одноразовым инструментом для графического интерфейса», довольно экстремально. Это в основном противоположность того, что есть на самом деле.
барбекю

1
Открыть LibreOffice в режиме без головы так же просто, как использовать --headlessопцию.
Джонни
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.