Навыки libreoffice-calc
📊

libreoffice-calc

Низкий риск ⚙️ Внешние команды📁 Доступ к файловой системе🔑 Переменные окружения

Автоматизация таблиц LibreOffice Calc через UNO

Ручное редактирование таблиц — трудоёмкий и подверженный ошибкам процесс. Этот навык программирует операции Calc через UNO API для надёжной пакетной обработки.

Поддерживает: Claude Codex Code(CC)
🥉 73 Бронза
1

Скачать ZIP навыка

2

Загрузить в Claude

Перейдите в Settings → Capabilities → Skills → Upload skill

3

Включите и начните использовать

Протестировать

Использование «libreoffice-calc». Create spreadsheet, add data to range A0:B2, export to PDF

Ожидаемый результат:

  • Spreadsheet created at /reports/output.ods
  • Data written to range Sheet1.A0:B2 (3 cells)
  • Exported to PDF: /reports/output.pdf (127 KB)

Использование «libreoffice-calc». Read cell B5 from /data/sales.ods

Ожидаемый результат:

  • Cell Sheet1.B5:
  • Value: 4250.00
  • Type: number
  • Formula: None

Использование «libreoffice-calc». Create bar chart from A0:C10, anchor at row 12

Ожидаемый результат:

  • Chart 'Sales Overview' created on Sheet1
  • Data range: A0:C10 (11 rows, 3 columns)
  • Position: Row 12, Column 0
  • Dimensions: 8000 x 6000 units

Аудит безопасности

Низкий риск
v2 • 3/19/2026

Static analysis flagged 197 patterns across 13 files. After evaluation, all high-severity findings are false positives: cryptographic warnings misidentified UNO connection code, 'system reconnaissance' flagged exception class definitions, and 'dynamic imports' were standard Python import statements. Shell command patterns exist only in markdown documentation. The single confirmed external command (subprocess.Popen launching LibreOffice) uses hardcoded arguments with no user input injection risk. Temp file usage follows Python best practices with proper cleanup. Skill is safe for publication with minor documentation recommended.

13
Просканировано файлов
2,642
Проанализировано строк
5
находки
2
Всего аудитов
Проблемы низкого риска (2)
Subprocess Launch of External Application
LibreOffice soffice binary launched via subprocess.Popen. Arguments are hardcoded with no user input injection vectors. Process is properly terminated and temp directories cleaned up in finally block.
Temporary Directory Creation
Creates temporary directories for LibreOffice profile isolation using tempfile.mkdtemp. Directories are cleaned up in finally block with shutil.rmtree.

Факторы риска

⚙️ Внешние команды (1)
📁 Доступ к файловой системе (2)
🔑 Переменные окружения (1)

Оценка качества

64
Архитектура
100
Сопровождаемость
87
Контент
23
Сообщество
86
Безопасность
83
Соответствие спецификации

Что вы можете построить

Автоматизированная финансовая отчётность

Генерация ежемесячных отчётов о доходах путём заполнения шаблонов данными, применения валютного форматирования и создания трендовых диаграмм для презентаций стейкхолдерам.

Массовый экспорт и преобразование данных

Извлечение данных из баз данных или API в структурированные таблицы, применение правил валидации и экспорт в несколько форматов для распространения.

Генерация документов на основе шаблонов

Заполнение заранее разработанных шаблонов таблиц динамическими данными для счетов, табелей учёта рабочего времени или отчётов об инвентаризации с единым форматированием.

Попробуйте эти промпты

Создание базовой таблицы
Create a new Calc spreadsheet at /reports/monthly-data.ods with a sheet named 'Data'. Add headers 'Name', 'Value', 'Date' in row 0, then populate with 5 sample rows. Apply bold formatting to the header row and currency format to the Value column.
Экспорт таблицы в несколько форматов
Open /reports/monthly-data.ods and export it to three formats: PDF at /exports/monthly-data.pdf, Excel at /exports/monthly-data.xlsx, and CSV at /exports/monthly-data.csv. Verify all exports complete successfully.
Создание диаграммы с проверкой данных
In /reports/sales.ods, create a line chart titled 'Monthly Sales' using data from Sheet1 range A0:B12. Anchor the chart at row 15, column 0 with width 8000 and height 6000. Then add data validation to column B requiring values between 0 and 10000 with error message 'Enter sales between 0 and 10000'.
Применение патча для обновления существующего отчёта
Apply this patch to /reports/quarterly.ods in atomic mode: Update cells in range A0:D4 with new quarterly data, format the header row with bold and background color, create a pie chart showing category distribution, and recalculate all formulas. If any operation fails, roll back all changes.

Лучшие практики

  • Всегда используйте абсолютные пути к файлам при работе с Calc API во избежание ошибок разрешения
  • Правильно закрывайте сессии через менеджеры контекста или явные вызовы close() для освобождения ресурсов LibreOffice
  • Используйте атомарный режим патчей для связанных операций, которые должны выполняться вместе или откатываться
  • Проверяйте типы данных перед записью в ячейки для предотвращения проблем с преобразованием типов

Избегать

  • Использование нумерации с единицы как в UI Calc — API использует нумерацию с нуля
  • Смешивание типов cell и range — это разные типы даже для одиночных ячеек
  • Вызов методов сессии после close() — всегда проверяйте состояние сессии перед операциями
  • Предположение, что имена диаграмм генерируются автоматически — всегда указывайте явные заголовки для надёжного обращения

Часто задаваемые вопросы

Нужно ли устанавливать LibreOffice для использования этого навыка?
Да, LibreOffice должен быть установлен в системе с UNO Python bindings. Навык автоматически обнаруживает распространённые пути установки, или вы можете установить переменную окружения LIBREOFFICE_PROGRAM_PATH.
Может ли этот навык изменять файлы Excel (.xlsx)?
LibreOffice Calc может открывать и сохранять файлы .xlsx, но основным форматом является .ods. Экспорт в .xlsx поддерживается. Для лучшей совместимости работайте в формате .ods и экспортируйте при необходимости.
Как обрабатывать формулы в ячейках?
Установите value_type='formula' при записи ячеек и предоставьте строку формулы (например, '=SUM(A1:A10)'). При чтении ячеек возвращаются результаты формул вместе с текстом формулы и любым состоянием ошибки.
Что происходит, если LibreOffice падает во время операций?
Навык использует изолированные каталоги профилей для каждой сессии. Если происходит сбой, очистите временные каталоги вручную из /tmp/libreoffice-skills-* и перезапуститесь. Атомарный режим патчей помогает предотвратить частичные обновления.
Можно ли запускать несколько сессий Calc одновременно?
Да, каждая сессия использует уникальное имя pipe и изолированный каталог профиля. Однако запуск множества одновременных сессий может повлиять на ресурсы системы.
Почему мои координаты смещены на единицу?
API использует нумерацию с нуля, в то время как UI Calc показывает номера строк/столбцов с единицы. Строка 0 в API соответствует строке 1 в Calc. Скорректируйте ваши координаты соответствующим образом.

Сведения для разработчиков

Автор

dfk1352

Лицензия

MIT

Ссылка

main

Структура файлов