Вопрос или проблема
Я работаю в кластере. Хотел бы узнать, возможно ли открывать .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:
-
Извлечение содержимого файла .xlsx:
Вы можете использовать командуunzip
, чтобы извлечь содержимое файла:unzip ваш_файл.xlsx -d папка_для_выгрузки
Это создаст директорию с необходимыми XML-файлами и ресурсами таблицы.
-
Просмотр XML-файлов:
После извлечения вы можете открывать XML-файлы в любом текстовом редакторе, таком как vim или nano. Например:nano папка_для_выгрузки/xl/worksheets/sheet1.xml
Однако имейте в виду, что XML вряд ли будет удобен для восприятия человеком.
-
Использование командных инструментов для работы с XML:
Если вы хотите более эффективно обрабатывать XML, вы можете использовать командные инструменты, такие какxmlstarlet
. Установите его, если он еще не установлен:sudo dnf install xmlstarlet # для системы на базе Rocky Linux
Используйте xmlstarlet для выборки нужных данных из XML.
-
Использование 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)
-
Использование VisiData:
Если вам нужно более интерактивное решение, вы можете установить VisiData, который предоставляет интерфейс командной строки для навигации по данным:pip install visidata --user
И затем открывайте .xlsx файл с помощью команды:
vd ваш_файл.xlsx
С помощью указанных методов вы сможете получать доступ и анализировать данные из .xlsx файлов без необходимости использовать Microsoft Excel или другие графические приложения.