استخدمه عندما يكون هدفك واضحًا في الملفات والمستندات وتستطيع تحديد البيانات والأفعال التي يحتاجها فقط.
Xlsx
Xlsx: مهارة ينشرها Nous Research. مجالها الملفات والمستندات. الرخصة MIT. الإصدار الموثّق 1.0.0. مثبّتة افتراضيًا مع Hermes، فلا تحتاج خطوة تثبيت. تدعم: linux، macos، windows.
ماذا يضيف إلى Hermes؟
Xlsx: مهارة ينشرها Nous Research. مجالها الملفات والمستندات. الرخصة MIT. الإصدار الموثّق 1.0.0. مثبّتة افتراضيًا مع Hermes، فلا تحتاج خطوة تثبيت. تدعم: linux، macos، windows.
Xlsx هي مهارة مرتبطة بمجال الملفات والمستندات. يتيح للوكيل قراءة ملفات أو تنظيمها أو إنشاء مستندات، وفق نطاق المجلد والحساب الذي تمنحه له.
هذا تفسير مبسّط مبني على وصف الناشر. أبقينا الوصف الإنجليزي بجانبه حتى تستطيع مقارنة المعنى بالمصدر.
لا تضفه لمجرد التجربة إذا كان لديك طريق أبسط داخل Hermes، أو إذا لم تستطع مراجعة المصدر والصلاحيات.
مناسب لمن يريد طريقة عمل قابلة للتكرار داخل Hermes.
استخدم مجلدًا تجريبيًا فيه نسخ من ملفات غير حساسة، وابدأ بعملية قراءة واحدة.
Create, read, edit Excel .xlsx workbooks and CSVs
فُهرس هذا الإدخال من Hermes Bundled Skills. الشرح العربي يفسّر النوع والمجال ولا يضيف وظيفة غير مذكورة في المصدر.
المصدر رسمي أو خضع لمراجعة تحريرية، لكن ذلك لا يغني عن مراجعة الصلاحيات والإصدار.
افحص، ثبّت، ثم اختبر.
- 01افتح المصدر
طابق اسم الناشر والرخصة والوصف مع حاجتك، وراجع آخر تحديث فعلي.
- 02راجع الصلاحيات والأسرار
لا تلصق قيمة سر داخل الموقع. استخدم أسماء متغيرات البيئة وامنح أقل نطاق ممكن.
- 03انسخ الإعداد فقط بعد المراجعة
الأزرار أدناه تنسخ نصًا إلى الحافظة ولا تشغّل أمرًا على جهازك.
- 04اختبر بمهمة غير حساسة
تحقق من الأدوات الظاهرة، ثم استبعد أدوات الكتابة أو الحذف التي لا تحتاجها.
مثبّتة مسبقًا مع Hermes.
تأتي هذه المهارة مع Hermes وتُحمَّل عندما يرى الوكيل أنها مناسبة. لا شيء لتثبيته؛ اقرأ التعريف أدناه لتعرف ما ستفعله.
افتح الصفحة الرسمية ↗ما الذي يحمّله Hermes بالضبط عند تشغيل هذه المهارة.
منقول من التوثيق الرسمي. اقرأه قبل تفعيل المهارة، فهذا النص يصبح تعليمات الوكيل نفسه.
Create, read, edit Excel .xlsx workbooks and CSVs.
Skill metadata
جدول مرجعي. لا تقرأه كله، ابحث عن السطر الذي يخصّك فقط.
| Source | Bundled (installed by default) |
| Path | skills/productivity/xlsx |
| Version | 1.0.0 |
| Author | Nous Research |
| License | MIT |
| Platforms | linux, macos, windows |
| Tags | excel, spreadsheet, xlsx, csv, openpyxl, productivity |
| Related skills | docx, pdf, powerpoint |
Reference: full SKILL.md
شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه.
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.
When to Use
شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه.
- Creating .xlsx reports: multiple sheets, number formats, styling, merged cells, freeze panes, autofilter, conditional formatting, charts, data-validation dropdowns.
- Reading a workbook: sheet inventory, dumping data as JSON or CSV, listing formulas vs cached values.
- Editing existing files: set cells, append rows, insert/delete rows/columns, copy/rename sheets.
- CSV interop with type inference and non-UTF-8 encodings.
- Not for the legacy .xls binary format (use LibreOffice to convert first:
soffice --headless --convert-to xlsx old.xls).
Prerequisites
شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه.
- Python 3.10+ with
openpyxl(pip install openpyxl). No other third-party packages are needed; everything else is stdlib. - Optional: LibreOffice (
soffice) for headless recalculation or format conversion.
How to Run
شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه.
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/csv_to_xlsx.py data.csv out.xlsx --encoding utf-8
python scripts/xlsx_to_csv.py report.xlsx out.csv --sheet DataAuthor the JSON spec with write_file, inspect script JSON output with
read_file or directly from stdout.
Quick Reference
جدول مرجعي. لا تقرأه كله، ابحث عن السطر الذي يخصّك فقط.
| 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 before row 3 | xlsx_edit.py f.xlsx --insert-rows 3:2 |
| 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 |
Procedure
شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه.
- Create: write a JSON spec (schema documented in
xlsx_create.py --helpand its docstring). Each sheet supportsrows(scalars or styled cell objects), sparsecellsoverrides,column_widths,row_heights,merges,freeze_panes,autofilter,conditional_formats(cell_is rules and color scales),charts(bar/line/pie from cell ranges), andvalidations(list dropdowns). 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". - Formulas: set with
"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'sfullCalcOnLoadflag so Excel/LibreOffice recompute everything on open. openpyxl itself NEVER evaluates formulas. - Read:
--sheetsfor inventory (names, dimensions, merged ranges, chart count),--json/--csvfor data,--formulasto pair each formula string with its cached result. Cached results exist only if the file was last saved by a real spreadsheet app; files fresh from openpyxl returnnullthere. To materialize results headlessly:soffice --headless --convert-to xlsx file.xlsxthen reload with--data-only. - Edit:
xlsx_edit.pyapplies renames/copies first, then structural row/column changes, then--set/--append. It edits in place unless--outis given — copy the file first if you need the original. - CSV interop:
csv_to_xlsx.pyinfers int/float/bool/ISO-date per cell and styles the header row;xlsx_to_csv.pywrites ISO dates and blank strings for empty cells. Both default to UTF-8 and accept--encoding(e.g.utf-8-sigfor Excel-friendly BOM,cp1252for legacy Windows exports).
Pitfalls
شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه.
- openpyxl does not calculate. Formula results are available only via
load_workbook(path, data_only=True)and only when the file was previously saved by Excel/LibreOffice. Otherwise you getNone. - Insert/delete does not shift references.
insert_rows,delete_cols, etc. move cell values but do NOT update merged-cell ranges, formula references, chart anchors, or conditional-format ranges. After structural edits on sheets with merges or formulas, re-check them with--sheetsand--formulasand fix manually. data_only=Truethen save silently discards all formulas (cached values replace them). Never save a workbook loaded that way unless that is the goal.- Loading strips charts/images: openpyxl does not round-trip charts, so editing a charted workbook and saving drops the charts. Re-add charts after editing, or avoid re-saving charted files.
- CSV locale traps: always pass explicit encodings (the scripts already do) and remember European CSVs often use
;delimiters and decimal commas — use--delimiter ';'and expect strings like"12,5"to stay strings. - Dates are datetimes: Excel stores dates as serial numbers; openpyxl returns
datetime/dateobjects. Dumps here emit ISO strings. - Sheet names are capped at 31 chars and reject
[ ] : * ? / \.
Verification
شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه.
- After creating:
xlsx_read.py out.xlsx --sheetsand confirm sheet names, dimensions, merged ranges, and chart counts match intent. - Dump data with
--jsonand compare against the source values. - After edits: re-dump the touched range; if formulas were written, confirm
--formulaslists them and that--recalcwas applied. - For a full visual check, open in LibreOffice:
soffice --headless --convert-to pdf out.xlsxand inspect the PDF.