Открытие .xlsx файла в терминале Linux

Вопрос или проблема

Я работаю в кластере. Хотел бы узнать, возможно ли открывать .xlsx файлы в текстовых редакторах, таких как nano или vim. Есть ли способ, если у меня нет Microsoft Excel (или какого-либо другого подходящего приложения на моем ПК), чтобы прочитать файл?

Если это поможет, мой ноутбук под управлением Windows, и я подключаюсь к кластеру через Mobaxterm.
$ lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: Rocky
Description: Rocky Linux release 9.4 (Blue Onyx)
Release: 9.4
Codename: BlueOnyx

Xlsx – это на самом деле zip-файл, содержащий структуру каталогов с документами XML, описывающими различные аспекты вашей электронной таблицы.

Да, вы можете разархивировать эти файлы в каталог и получить доступ к XML-документам так, как вам нравится, например, с помощью инструментов командной строки для работы с XML, таких как xmlstarlet. Конечно, так как XML является текстовым форматом, вы также можете открыть его в своем любимом текстовом редакторе. Neovim вместе с lemminx XML языковым сервером может неплохо справиться с редактированием XML, но давайте будем честны: эти XML файлы предназначены для машинной обработки, а не для восприятия людьми.

Более разумным, вероятно, будет написать программу на Python с использованием модуля openpyxl, чтобы напрямую открыть .xlsx файл и получить доступ к данным столбцов. Установить этот модуль очень легко для вас без вмешательства в работу других людей.

Если вы можете установить пакет Python, Visidata открывает отличный ncurses для навигации по .xlsx файлам.

Ответ или решение

Да, открытие .xlsx файлов в текстовых редакторах, таких как nano или vim, напрямую невозможно из-за их структуры. Файлы .xlsx на самом деле представляют собой zip-архивы, содержащие каталог с XML-документами, описывающими различные аспекты вашей таблицы. Однако вы можете извлечь эти файлы и просмотреть их содержимое.

Вот шаги, которые вы можете выполнить, чтобы получить доступ к данным в .xlsx файле через терминал Linux:

  1. Извлечение содержимого файла .xlsx:
    Вы можете использовать команду unzip, чтобы извлечь содержимое файла:

    unzip ваш_файл.xlsx -d папка_для_выгрузки

    Это создаст директорию с необходимыми XML-файлами и ресурсами таблицы.

  2. Просмотр XML-файлов:
    После извлечения вы можете открывать XML-файлы в любом текстовом редакторе, таком как vim или nano. Например:

    nano папка_для_выгрузки/xl/worksheets/sheet1.xml

    Однако имейте в виду, что XML вряд ли будет удобен для восприятия человеком.

  3. Использование командных инструментов для работы с XML:
    Если вы хотите более эффективно обрабатывать XML, вы можете использовать командные инструменты, такие как xmlstarlet. Установите его, если он еще не установлен:

    sudo dnf install xmlstarlet  # для системы на базе Rocky Linux

    Используйте xmlstarlet для выборки нужных данных из XML.

  4. Использование Python:
    Более удобным решением будет написание скрипта на Python с использованием библиотеки openpyxl. Это позволит вам легко читать данные из .xlsx файлов:

    pip install openpyxl --user  # Установка библиотеки для вашего пользователя

    Пример простого скрипта на Python:

    import openpyxl
    
    wb = openpyxl.load_workbook('ваш_файл.xlsx')
    sheet = wb.active
    for row in sheet.iter_rows(values_only=True):
       print(row)
  5. Использование VisiData:
    Если вам нужно более интерактивное решение, вы можете установить VisiData, который предоставляет интерфейс командной строки для навигации по данным:

    pip install visidata --user

    И затем открывайте .xlsx файл с помощью команды:

    vd ваш_файл.xlsx

С помощью указанных методов вы сможете получать доступ и анализировать данные из .xlsx файлов без необходимости использовать Microsoft Excel или другие графические приложения.

Оцените материал
Добавить комментарий

Капча загружается...