1Password에 저장한 비밀번호와 API 키를 명령과 설정 템플릿에 사용합니다. CLI 설치와 인증부터 비밀 값 조회 및 환경 변수 전달까지 안내합니다.
- 1Password CLI 설치와 설정
- 저장된 API 키로 명령 실행
- 설정 템플릿에 비밀 값 삽입
Excel의 .xlsx 파일을 만들고 읽고 편집하며 CSV와 상호 변환합니다. 여러 시트, 수식, 차트가 있는 보고서를 만들고 행 추가나 구조 변경 시 수식 참조를 조정합니다.
Create, read, edit Excel .xlsx workbooks and CSVs.
Excel의 .xlsx 파일을 만들고 읽고 편집하며 CSV와 상호 변환합니다. Python과 openpyxl을 사용하는 부속 스크립트로 여러 시트, 수식, 차트, 조건부 서식, 입력용 드롭다운 목록이 있는 보고서를 만듭니다. 셀 수정, 행 추가, 시트 복제와 이름 변경을 지원하며 내용을 JSON이나 CSV로 추출합니다.
집계 결과를 읽기 쉬운 Excel 보고서로 정리하거나 기존 표를 갱신할 때 유용합니다. 수식 참조를 조정하면서 행과 열을 삽입하거나 삭제하는 전용 스크립트도 제공합니다.
Python 3.10 이상과 openpyxl이 필요합니다. 수식 계산에는 Excel이나 LibreOffice를 사용하며, 창을 열지 않는 재계산과 PDF 변환에는 LibreOffice가 필요합니다. 구형 .xls는 먼저 변환합니다. 구조 변경 시 그림이나 일부 수식이 이동하지 않을 수 있으며, 기존 차트가 있는 파일을 다시 저장할 때도 주의가 필요합니다. 시트 보호는 암호화가 아닙니다.
이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.
AI가 SKILL.md의 내용만을 근거로 4가지 관점에서 판정했습니다. 스타 수나 인기도는 판정에 넣지 않았습니다.
총점은 각 항목을 A=25점, B=15점, C=5점으로 더한 값입니다. 2026년 10월 20일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Work with Excel .xlsx workbooks using Python and openpyxl: build styled multi-sheet workbooks with formulas and charts, inspect or dump existing files, edit cells and structure, and convert to/from CSV. All helper scripts are argparse CLIs that print JSON and use explicit UTF-8 I/O.
xlsx_restructure.py),
copy/rename sheets, tables, names, notes, protection.xlsx_recalc.py).soffice --headless --convert-to xlsx old.xls).openpyxl (pip install openpyxl). No other
third-party packages are needed; everything else is stdlib.soffice) for headless recalculation or
format conversion.Run the helper scripts with the terminal tool from this skill's
scripts/ directory (every script supports --help):
python scripts/xlsx_create.py spec.json report.xlsx # build from JSON spec
python scripts/xlsx_read.py report.xlsx --sheets # inventory
python scripts/xlsx_read.py report.xlsx --json --sheet Data
python scripts/xlsx_read.py report.xlsx --formulas
python scripts/xlsx_edit.py report.xlsx --sheet Data --set B2=42 --recalc
python scripts/xlsx_restructure.py report.xlsx --sheet Data --insert-rows 3:2
python scripts/xlsx_recalc.py report.xlsx
python scripts/csv_to_xlsx.py data.csv out.xlsx --encoding utf-8
python scripts/xlsx_to_csv.py report.xlsx out.csv --sheet Data
Author the JSON spec with write_file, inspect script JSON output with
read_file or directly from stdout.
| Task | Command |
|---|---|
| Create workbook from spec | xlsx_create.py spec.json out.xlsx |
| Sheet names + dimensions | xlsx_read.py f.xlsx --sheets |
| Dump sheet as JSON | xlsx_read.py f.xlsx --json --sheet S |
| Dump sheet as CSV | xlsx_read.py f.xlsx --csv --out d.csv |
| List formulas + cached values | xlsx_read.py f.xlsx --formulas |
| Set a cell / formula | xlsx_edit.py f.xlsx --set "A1==SUM(B:B)" |
| Append a row | xlsx_edit.py f.xlsx --append '[1,"x",true]' |
| Insert 2 rows, refs NOT shifted | xlsx_edit.py f.xlsx --insert-rows 3:2 |
| Insert 2 rows, refs shifted | xlsx_restructure.py f.xlsx --insert-rows 3:2 |
| Delete a column, refs shifted | xlsx_restructure.py f.xlsx --delete-cols B |
| Create a native table | xlsx_edit.py f.xlsx --add-table Sales:A1:C9 |
| Append inside a table | --table-append 'Sales=["West",5]' |
| List tables | xlsx_edit.py f.xlsx --list-tables |
| Defined names | --define-name "Rates='Data'!$B$2:$B$9" / --delete-name Rates / xlsx_read.py f.xlsx --names |
| Hyperlink | `--hyperlink "A1=https://example.com |
| Cell note | `--note "B2=Check this |
| Protect sheet (see Pitfalls) | --protect your-password --unlock B2:B9 |
| Recalculate via LibreOffice | xlsx_recalc.py f.xlsx |
| Copy / rename sheet | --copy-sheet Src:New --rename-sheet Old:New |
| Force recalc on open | xlsx_edit.py f.xlsx --recalc |
| CSV -> styled xlsx | csv_to_xlsx.py in.csv out.xlsx |
| xlsx -> CSV | xlsx_to_csv.py f.xlsx out.csv --encoding utf-8 |
xlsx_create.py --help and its docstring). Each sheet supports
rows (scalars or styled cell objects), sparse cells overrides,
column_widths, row_heights, merges, freeze_panes,
autofilter, conditional_formats (cell_is rules and color
scales), charts (bar/line/pie from cell ranges),
validations (list dropdowns), tables (native Excel tables with
a style name), and protection. Workbook-level defined_names
maps names to refs. Cell objects also take hyperlink and note.
Typed values: JSON numbers/bools
pass through; dates use {"value": "2026-01-31", "type": "date"}.
Number formats are Excel format strings: currency "$#,##0.00",
percent "0.0%", date "yyyy-mm-dd"."formula": "SUM(B2:B9)" in the spec or
--set "C1==SUM(A:A)" in the editor. When writing formulas, add
"full_calc_on_load": true (spec) or --recalc (editor); this sets
the workbook's fullCalcOnLoad flag so Excel/LibreOffice recompute
everything on open. openpyxl itself NEVER evaluates formulas.--sheets for inventory (names, dimensions, merged
ranges, chart count, tables, protection, defined names),
--json/--csv for data, --formulas to
pair each formula string with its cached result, --notes for
cell comments, --names for defined names. Cached results
exist only if the file was last saved by a real spreadsheet app;
files fresh from openpyxl return null there. To materialize
results headlessly run xlsx_recalc.py file.xlsx (uses
LibreOffice; prints {"recalculated": false, ...} and exits 0
when soffice is absent), then reload with --data-only.xlsx_edit.py applies renames/copies first, then
structural row/column changes, then --set/--append. It edits in
place unless --out is given — copy the file first if you need the
original.xlsx_restructure.py instead of
xlsx_edit.py. It rewrites formula references on ALL sheets
(absolute $ refs, ranges, cross-sheet refs), shifts merges,
autofilter, freeze panes, validation and conditional-format
ranges, table refs, defined names, and row/column dimensions, then
prints a JSON report including a not_shifted list. Rules and
limits: references/restructuring.md.csv_to_xlsx.py infers int/float/bool/ISO-date
per cell and styles the header row; xlsx_to_csv.py writes ISO
dates and blank strings for empty cells. Both default to UTF-8 and
accept --encoding (e.g. utf-8-sig for Excel-friendly BOM,
cp1252 for legacy Windows exports).LibreOffice converts headlessly (also works for CSV export of a single sheet):
soffice --headless --convert-to pdf report.xlsx --outdir out/
soffice --headless --convert-to csv report.xlsx --outdir out/ # 1st sheet only
Only the first sheet lands in a CSV; for other sheets use
xlsx_to_csv.py --sheet NAME. If soffice is missing, install
LibreOffice or hand the file to the user unconverted.
load_workbook(path, data_only=True) and only when the file was
previously saved by Excel/LibreOffice. Otherwise you get None.xlsx_edit.py insert/delete does not shift references (raw
openpyxl behavior). Use xlsx_restructure.py, which does — but even
it cannot move chart anchors, images, or conditional-format RULE
formulas; read its JSON report's not_shifted list and
references/restructuring.md.--protect sets the standard
xlsx sheet-protection hash: it signals "don't edit this" to
well-behaved apps and nothing more. Anyone can strip it by editing
the zip's XML or unchecking it in LibreOffice. Never rely on it for
confidentiality or integrity; it does not encrypt anything.data_only=True then save silently discards all formulas
(cached values replace them). Never save a workbook loaded that way
unless that is the goal.; delimiters and
decimal commas — use --delimiter ';' and expect strings like
"12,5" to stay strings.datetime/date objects. Dumps here emit ISO
strings.[ ] : * ? / \.xlsx_read.py out.xlsx --sheets and confirm sheet
names, dimensions, merged ranges, and chart counts match intent.--json and compare against the source values.--formulas lists them and that --recalc was applied.xlsx_restructure.py: read its JSON report, then re-run
--formulas and --sheets to confirm references and ranges landed
where expected.soffice --headless --convert-to pdf out.xlsx and inspect the PDF.아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
1Password에 저장한 비밀번호와 API 키를 명령과 설정 템플릿에 사용합니다. CLI 설치와 인증부터 비밀 값 조회 및 환경 변수 전달까지 안내합니다.
손익계산서·재무상태표·현금흐름표를 수식으로 연결한 Excel 모델을 만듭니다. 실적과 예측 가정을 입력하고 시나리오를 비교하며 세 재무제표의 일관성을 단계별로 확인합니다.
기존 PyTorch 학습 코드를 적은 수정으로 여러 GPU나 컴퓨터에 맞게 구성합니다. 혼합 정밀도, 메모리 절약 설정과 학습 실행 방법을 안내합니다.
Hermes에서 Actual Computer로 자신의 기기에 AI 모델을 실행하도록 연결을 설정합니다. 중계 서비스와 로컬 연결, 모델 선택, 응답 확인 및 오류 점검을 다룹니다.
기술에 익숙하지 않고 쉽게 불만을 느끼는 사용자로 앱을 시험합니다. 혼란스러운 조작과 이탈 원인을 찾고, 개선 과제와 개인적 불만을 나눠 수정안을 정리합니다.
두 에이전트가 각각 수정한 브랜치의 Git 충돌을 양쪽 변경 내용과 의도에 따라 중립적으로 해결합니다. 충돌별 판단 이유를 기록하고 빌드나 테스트로 통합 결과를 확인합니다.