libreoffice-calc
Автоматизация таблиц LibreOffice Calc через UNO
Ручное редактирование таблиц — трудоёмкий и подверженный ошибкам процесс. Этот навык программирует операции Calc через UNO API для надёжной пакетной обработки.
Скачать ZIP навыка
Загрузить в Claude
Перейдите в Settings → Capabilities → Skills → Upload skill
Включите и начните использовать
Протестировать
Использование «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
Аудит безопасности
Низкий риск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.
Проблемы низкого риска (2)
Факторы риска
⚙️ Внешние команды (1)
📁 Доступ к файловой системе (2)
🔑 Переменные окружения (1)
Оценка качества
Что вы можете построить
Автоматизированная финансовая отчётность
Генерация ежемесячных отчётов о доходах путём заполнения шаблонов данными, применения валютного форматирования и создания трендовых диаграмм для презентаций стейкхолдерам.
Массовый экспорт и преобразование данных
Извлечение данных из баз данных или 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() — всегда проверяйте состояние сессии перед операциями
- Предположение, что имена диаграмм генерируются автоматически — всегда указывайте явные заголовки для надёжного обращения