@yandy0725/pi-lark 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/README.zh.md +30 -0
- package/package.json +36 -0
- package/skills/lark-approval/SKILL.md +56 -0
- package/skills/lark-approval/references/lark-approval-initiate.md +196 -0
- package/skills/lark-approval/references/lark-approval-instance-form-control-parameters.md +606 -0
- package/skills/lark-approval/references/lark-approval-instance-value-sourcing.md +108 -0
- package/skills/lark-apps/SKILL.md +78 -0
- package/skills/lark-apps/references/lark-apps-access-scope-get.md +28 -0
- package/skills/lark-apps/references/lark-apps-access-scope-set.md +40 -0
- package/skills/lark-apps/references/lark-apps-cloud-dev.md +120 -0
- package/skills/lark-apps/references/lark-apps-create.md +40 -0
- package/skills/lark-apps/references/lark-apps-db-env-create.md +31 -0
- package/skills/lark-apps/references/lark-apps-db-execute.md +40 -0
- package/skills/lark-apps/references/lark-apps-db-table-get.md +29 -0
- package/skills/lark-apps/references/lark-apps-db-table-list.md +31 -0
- package/skills/lark-apps/references/lark-apps-env-pull.md +35 -0
- package/skills/lark-apps/references/lark-apps-git-credential.md +37 -0
- package/skills/lark-apps/references/lark-apps-html-publish.md +57 -0
- package/skills/lark-apps/references/lark-apps-init.md +37 -0
- package/skills/lark-apps/references/lark-apps-list.md +37 -0
- package/skills/lark-apps/references/lark-apps-local-dev.md +76 -0
- package/skills/lark-apps/references/lark-apps-release-create.md +30 -0
- package/skills/lark-apps/references/lark-apps-release-get.md +28 -0
- package/skills/lark-apps/references/lark-apps-release-list.md +31 -0
- package/skills/lark-apps/references/lark-apps-session-messages-list.md +53 -0
- package/skills/lark-apps/references/lark-apps-update.md +30 -0
- package/skills/lark-attendance/SKILL.md +57 -0
- package/skills/lark-base/SKILL.md +157 -0
- package/skills/lark-base/references/dashboard-block-data-config.md +350 -0
- package/skills/lark-base/references/formula-field-guide.md +737 -0
- package/skills/lark-base/references/lark-base-cell-value.md +153 -0
- package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +717 -0
- package/skills/lark-base/references/lark-base-dashboard.md +238 -0
- package/skills/lark-base/references/lark-base-data-analysis-sop.md +210 -0
- package/skills/lark-base/references/lark-base-data-query-guide.md +61 -0
- package/skills/lark-base/references/lark-base-data-query.md +452 -0
- package/skills/lark-base/references/lark-base-field-create.md +103 -0
- package/skills/lark-base/references/lark-base-field-json.md +489 -0
- package/skills/lark-base/references/lark-base-field-update.md +171 -0
- package/skills/lark-base/references/lark-base-form-detail.md +71 -0
- package/skills/lark-base/references/lark-base-form-questions-create.md +118 -0
- package/skills/lark-base/references/lark-base-form-questions-update.md +92 -0
- package/skills/lark-base/references/lark-base-form-submit.md +170 -0
- package/skills/lark-base/references/lark-base-record-batch-create.md +57 -0
- package/skills/lark-base/references/lark-base-record-batch-update.md +52 -0
- package/skills/lark-base/references/lark-base-record-history-list.md +43 -0
- package/skills/lark-base/references/lark-base-record-upsert.md +63 -0
- package/skills/lark-base/references/lark-base-role-guide.md +65 -0
- package/skills/lark-base/references/lark-base-view-set-filter.md +189 -0
- package/skills/lark-base/references/lark-base-workflow-guide.md +830 -0
- package/skills/lark-base/references/lark-base-workflow-schema.md +1071 -0
- package/skills/lark-base/references/lookup-field-guide.md +512 -0
- package/skills/lark-base/references/role-config.md +549 -0
- package/skills/lark-calendar/SKILL.md +137 -0
- package/skills/lark-calendar/references/lark-calendar-agenda.md +78 -0
- package/skills/lark-calendar/references/lark-calendar-create.md +106 -0
- package/skills/lark-calendar/references/lark-calendar-freebusy.md +124 -0
- package/skills/lark-calendar/references/lark-calendar-meeting.md +40 -0
- package/skills/lark-calendar/references/lark-calendar-room-find.md +113 -0
- package/skills/lark-calendar/references/lark-calendar-rsvp.md +42 -0
- package/skills/lark-calendar/references/lark-calendar-schedule-meeting.md +265 -0
- package/skills/lark-calendar/references/lark-calendar-search-event.md +29 -0
- package/skills/lark-calendar/references/lark-calendar-suggestion.md +125 -0
- package/skills/lark-calendar/references/lark-calendar-update.md +105 -0
- package/skills/lark-contact/SKILL.md +59 -0
- package/skills/lark-contact/references/lark-contact-get-user.md +19 -0
- package/skills/lark-contact/references/lark-contact-search-user.md +124 -0
- package/skills/lark-doc/SKILL.md +79 -0
- package/skills/lark-doc/references/lark-doc-create.md +79 -0
- package/skills/lark-doc/references/lark-doc-fetch.md +138 -0
- package/skills/lark-doc/references/lark-doc-md.md +76 -0
- package/skills/lark-doc/references/lark-doc-media-download.md +50 -0
- package/skills/lark-doc/references/lark-doc-media-insert.md +114 -0
- package/skills/lark-doc/references/lark-doc-media-preview.md +41 -0
- package/skills/lark-doc/references/lark-doc-resource-cover.md +70 -0
- package/skills/lark-doc/references/lark-doc-update.md +259 -0
- package/skills/lark-doc/references/lark-doc-whiteboard.md +154 -0
- package/skills/lark-doc/references/lark-doc-xml.md +181 -0
- package/skills/lark-doc/references/style/lark-doc-create-workflow.md +59 -0
- package/skills/lark-doc/references/style/lark-doc-style.md +86 -0
- package/skills/lark-doc/references/style/lark-doc-update-workflow.md +55 -0
- package/skills/lark-drive/SKILL.md +215 -0
- package/skills/lark-drive/references/lark-drive-add-comment.md +193 -0
- package/skills/lark-drive/references/lark-drive-apply-permission.md +77 -0
- package/skills/lark-drive/references/lark-drive-comment-location.md +193 -0
- package/skills/lark-drive/references/lark-drive-comments-guide.md +72 -0
- package/skills/lark-drive/references/lark-drive-cover.md +79 -0
- package/skills/lark-drive/references/lark-drive-create-folder.md +73 -0
- package/skills/lark-drive/references/lark-drive-create-shortcut.md +103 -0
- package/skills/lark-drive/references/lark-drive-delete.md +79 -0
- package/skills/lark-drive/references/lark-drive-download.md +31 -0
- package/skills/lark-drive/references/lark-drive-export-download.md +50 -0
- package/skills/lark-drive/references/lark-drive-export.md +145 -0
- package/skills/lark-drive/references/lark-drive-files-list.md +158 -0
- package/skills/lark-drive/references/lark-drive-import.md +170 -0
- package/skills/lark-drive/references/lark-drive-inspect.md +50 -0
- package/skills/lark-drive/references/lark-drive-member-add.md +66 -0
- package/skills/lark-drive/references/lark-drive-move.md +120 -0
- package/skills/lark-drive/references/lark-drive-permission-guide.md +41 -0
- package/skills/lark-drive/references/lark-drive-preview.md +87 -0
- package/skills/lark-drive/references/lark-drive-pull.md +137 -0
- package/skills/lark-drive/references/lark-drive-push.md +162 -0
- package/skills/lark-drive/references/lark-drive-reactions.md +113 -0
- package/skills/lark-drive/references/lark-drive-search.md +269 -0
- package/skills/lark-drive/references/lark-drive-secure-label.md +52 -0
- package/skills/lark-drive/references/lark-drive-status.md +137 -0
- package/skills/lark-drive/references/lark-drive-task-result.md +302 -0
- package/skills/lark-drive/references/lark-drive-upload.md +101 -0
- package/skills/lark-drive/references/lark-drive-version-delete.md +38 -0
- package/skills/lark-drive/references/lark-drive-version-get.md +71 -0
- package/skills/lark-drive/references/lark-drive-version-history.md +73 -0
- package/skills/lark-drive/references/lark-drive-version-revert.md +35 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-analysis.md +249 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-discovery.md +253 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-execution.md +200 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-planning.md +336 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-rollback.md +308 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize.md +226 -0
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance-commands.md +168 -0
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance-outputs.md +424 -0
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance.md +207 -0
- package/skills/lark-drive/references/lark-drive-workflow.md +130 -0
- package/skills/lark-event/SKILL.md +154 -0
- package/skills/lark-event/references/lark-event-im.md +87 -0
- package/skills/lark-event/references/lark-event-minutes.md +54 -0
- package/skills/lark-event/references/lark-event-task.md +78 -0
- package/skills/lark-event/references/lark-event-vc.md +94 -0
- package/skills/lark-event/references/lark-event-whiteboard.md +67 -0
- package/skills/lark-im/SKILL.md +247 -0
- package/skills/lark-im/references/lark-im-card-action-reply.md +175 -0
- package/skills/lark-im/references/lark-im-chat-create.md +162 -0
- package/skills/lark-im/references/lark-im-chat-identity.md +55 -0
- package/skills/lark-im/references/lark-im-chat-list.md +166 -0
- package/skills/lark-im/references/lark-im-chat-messages-list.md +157 -0
- package/skills/lark-im/references/lark-im-chat-search.md +142 -0
- package/skills/lark-im/references/lark-im-chat-update.md +84 -0
- package/skills/lark-im/references/lark-im-feed-group-list-item.md +68 -0
- package/skills/lark-im/references/lark-im-feed-group-list.md +65 -0
- package/skills/lark-im/references/lark-im-feed-group-query-item.md +44 -0
- package/skills/lark-im/references/lark-im-feed-groups.md +452 -0
- package/skills/lark-im/references/lark-im-feed-shortcut-create.md +97 -0
- package/skills/lark-im/references/lark-im-feed-shortcut-list.md +103 -0
- package/skills/lark-im/references/lark-im-feed-shortcut-remove.md +48 -0
- package/skills/lark-im/references/lark-im-flag-cancel.md +67 -0
- package/skills/lark-im/references/lark-im-flag-create.md +67 -0
- package/skills/lark-im/references/lark-im-flag-list.md +100 -0
- package/skills/lark-im/references/lark-im-message-enrichment.md +54 -0
- package/skills/lark-im/references/lark-im-messages-mget.md +99 -0
- package/skills/lark-im/references/lark-im-messages-reply.md +267 -0
- package/skills/lark-im/references/lark-im-messages-resources-download.md +94 -0
- package/skills/lark-im/references/lark-im-messages-search.md +234 -0
- package/skills/lark-im/references/lark-im-messages-send.md +267 -0
- package/skills/lark-im/references/lark-im-reactions.md +299 -0
- package/skills/lark-im/references/lark-im-threads-messages-list.md +115 -0
- package/skills/lark-mail/SKILL.md +287 -0
- package/skills/lark-mail/assets/templates/job-application--resume.html +33 -0
- package/skills/lark-mail/assets/templates/newsletter--weekly-brief.html +50 -0
- package/skills/lark-mail/assets/templates/research--market-report.html +256 -0
- package/skills/lark-mail/assets/templates/weekly--personal-report.html +43 -0
- package/skills/lark-mail/assets/templates/weekly--team-report.html +9 -0
- package/skills/lark-mail/references/lark-mail-calendar-invite.md +36 -0
- package/skills/lark-mail/references/lark-mail-decline-receipt.md +115 -0
- package/skills/lark-mail/references/lark-mail-draft-create.md +127 -0
- package/skills/lark-mail/references/lark-mail-draft-edit.md +404 -0
- package/skills/lark-mail/references/lark-mail-forward.md +239 -0
- package/skills/lark-mail/references/lark-mail-html.md +333 -0
- package/skills/lark-mail/references/lark-mail-lint-html.md +243 -0
- package/skills/lark-mail/references/lark-mail-message.md +233 -0
- package/skills/lark-mail/references/lark-mail-messages.md +108 -0
- package/skills/lark-mail/references/lark-mail-recall.md +66 -0
- package/skills/lark-mail/references/lark-mail-recipient-search.md +59 -0
- package/skills/lark-mail/references/lark-mail-reply-all.md +213 -0
- package/skills/lark-mail/references/lark-mail-reply.md +249 -0
- package/skills/lark-mail/references/lark-mail-rules.md +31 -0
- package/skills/lark-mail/references/lark-mail-send-as.md +44 -0
- package/skills/lark-mail/references/lark-mail-send-receipt.md +120 -0
- package/skills/lark-mail/references/lark-mail-send-status.md +46 -0
- package/skills/lark-mail/references/lark-mail-send.md +222 -0
- package/skills/lark-mail/references/lark-mail-share-to-chat.md +87 -0
- package/skills/lark-mail/references/lark-mail-signature.md +98 -0
- package/skills/lark-mail/references/lark-mail-template-create.md +129 -0
- package/skills/lark-mail/references/lark-mail-template-update.md +150 -0
- package/skills/lark-mail/references/lark-mail-template.md +54 -0
- package/skills/lark-mail/references/lark-mail-thread.md +111 -0
- package/skills/lark-mail/references/lark-mail-triage.md +131 -0
- package/skills/lark-mail/references/lark-mail-watch.md +94 -0
- package/skills/lark-markdown/SKILL.md +69 -0
- package/skills/lark-markdown/references/lark-markdown-create.md +94 -0
- package/skills/lark-markdown/references/lark-markdown-diff.md +156 -0
- package/skills/lark-markdown/references/lark-markdown-fetch.md +79 -0
- package/skills/lark-markdown/references/lark-markdown-overwrite.md +85 -0
- package/skills/lark-markdown/references/lark-markdown-patch.md +160 -0
- package/skills/lark-minutes/SKILL.md +192 -0
- package/skills/lark-minutes/references/lark-minutes-detail.md +62 -0
- package/skills/lark-minutes/references/lark-minutes-download.md +137 -0
- package/skills/lark-minutes/references/lark-minutes-search.md +204 -0
- package/skills/lark-minutes/references/lark-minutes-speaker-replace.md +107 -0
- package/skills/lark-minutes/references/lark-minutes-summary.md +122 -0
- package/skills/lark-minutes/references/lark-minutes-todo.md +138 -0
- package/skills/lark-minutes/references/lark-minutes-update.md +41 -0
- package/skills/lark-minutes/references/lark-minutes-upload.md +104 -0
- package/skills/lark-note/SKILL.md +94 -0
- package/skills/lark-note/references/lark-note-detail.md +26 -0
- package/skills/lark-note/references/lark-note-transcript.md +23 -0
- package/skills/lark-okr/SKILL.md +115 -0
- package/skills/lark-okr/references/lark-okr-batch-create.md +106 -0
- package/skills/lark-okr/references/lark-okr-contentblock.md +359 -0
- package/skills/lark-okr/references/lark-okr-cycle-detail.md +84 -0
- package/skills/lark-okr/references/lark-okr-cycle-list.md +90 -0
- package/skills/lark-okr/references/lark-okr-entities.md +329 -0
- package/skills/lark-okr/references/lark-okr-image-upload.md +116 -0
- package/skills/lark-okr/references/lark-okr-indicator-update.md +80 -0
- package/skills/lark-okr/references/lark-okr-progress-create.md +81 -0
- package/skills/lark-okr/references/lark-okr-progress-delete.md +47 -0
- package/skills/lark-okr/references/lark-okr-progress-get.md +62 -0
- package/skills/lark-okr/references/lark-okr-progress-list.md +80 -0
- package/skills/lark-okr/references/lark-okr-progress-update.md +81 -0
- package/skills/lark-okr/references/lark-okr-reorder.md +81 -0
- package/skills/lark-okr/references/lark-okr-weight.md +96 -0
- package/skills/lark-openapi-explorer/SKILL.md +153 -0
- package/skills/lark-shared/SKILL.md +168 -0
- package/skills/lark-shared/references/lark-wiki-token-routing.md +42 -0
- package/skills/lark-sheets/SKILL.md +165 -0
- package/skills/lark-sheets/references/lark-sheets-batch-update.md +191 -0
- package/skills/lark-sheets/references/lark-sheets-chart.md +330 -0
- package/skills/lark-sheets/references/lark-sheets-conditional-format.md +179 -0
- package/skills/lark-sheets/references/lark-sheets-core-operations.md +103 -0
- package/skills/lark-sheets/references/lark-sheets-filter-view.md +137 -0
- package/skills/lark-sheets/references/lark-sheets-filter.md +130 -0
- package/skills/lark-sheets/references/lark-sheets-float-image.md +159 -0
- package/skills/lark-sheets/references/lark-sheets-formula-translation.md +267 -0
- package/skills/lark-sheets/references/lark-sheets-pivot-table.md +166 -0
- package/skills/lark-sheets/references/lark-sheets-range-operations.md +267 -0
- package/skills/lark-sheets/references/lark-sheets-read-data.md +235 -0
- package/skills/lark-sheets/references/lark-sheets-search-replace.md +111 -0
- package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +212 -0
- package/skills/lark-sheets/references/lark-sheets-sparkline.md +149 -0
- package/skills/lark-sheets/references/lark-sheets-visual-standards.md +205 -0
- package/skills/lark-sheets/references/lark-sheets-workbook.md +395 -0
- package/skills/lark-sheets/references/lark-sheets-write-cells.md +565 -0
- package/skills/lark-sheets/scripts/sheets_df.py +32 -0
- package/skills/lark-skill-maker/SKILL.md +85 -0
- package/skills/lark-slides/SKILL.md +293 -0
- package/skills/lark-slides/assets/templates/administration--all_hands_meeting.xml +1999 -0
- package/skills/lark-slides/assets/templates/administration--annual_gala.xml +1160 -0
- package/skills/lark-slides/assets/templates/administration--company_intro.xml +1376 -0
- package/skills/lark-slides/assets/templates/administration--corporate_culture.xml +1765 -0
- package/skills/lark-slides/assets/templates/hr--employee_training.xml +912 -0
- package/skills/lark-slides/assets/templates/hr--employee_training_workshop.xml +1504 -0
- package/skills/lark-slides/assets/templates/hr--onboarding.xml +933 -0
- package/skills/lark-slides/assets/templates/marketing--brand_communication.xml +1367 -0
- package/skills/lark-slides/assets/templates/marketing--brand_logo_design.xml +1347 -0
- package/skills/lark-slides/assets/templates/marketing--brand_operations_plan.xml +1309 -0
- package/skills/lark-slides/assets/templates/marketing--business_plan.xml +1646 -0
- package/skills/lark-slides/assets/templates/marketing--marketing_plan.xml +1469 -0
- package/skills/lark-slides/assets/templates/marketing--marketing_strategy.xml +1484 -0
- package/skills/lark-slides/assets/templates/marketing--product_whitepaper.xml +1455 -0
- package/skills/lark-slides/assets/templates/marketing--roadshow_business_plan.xml +1506 -0
- package/skills/lark-slides/assets/templates/misc--book_sharing.xml +1338 -0
- package/skills/lark-slides/assets/templates/misc--club_event_plan.xml +4885 -0
- package/skills/lark-slides/assets/templates/misc--student_career_plan.xml +1854 -0
- package/skills/lark-slides/assets/templates/office--dark_general.xml +3763 -0
- package/skills/lark-slides/assets/templates/office--dept_annual_report.xml +1192 -0
- package/skills/lark-slides/assets/templates/office--light_general.xml +3378 -0
- package/skills/lark-slides/assets/templates/office--project_kickoff.xml +3152 -0
- package/skills/lark-slides/assets/templates/office--quarterly_review.xml +1253 -0
- package/skills/lark-slides/assets/templates/office--work_report.xml +1099 -0
- package/skills/lark-slides/assets/templates/office--work_summary.xml +4420 -0
- package/skills/lark-slides/assets/templates/office--work_summary_report.xml +1523 -0
- package/skills/lark-slides/assets/templates/operations--brand_logo_design.xml +1347 -0
- package/skills/lark-slides/assets/templates/operations--brand_operations_plan.xml +1309 -0
- package/skills/lark-slides/assets/templates/operations--marketing_plan.xml +1469 -0
- package/skills/lark-slides/assets/templates/operations--product_promotion.xml +687 -0
- package/skills/lark-slides/assets/templates/personal--experience_sharing.xml +2242 -0
- package/skills/lark-slides/assets/templates/personal--personal_resume.xml +2047 -0
- package/skills/lark-slides/assets/templates/personal--promotion_defense.xml +1099 -0
- package/skills/lark-slides/assets/templates/personal--promotion_report.xml +1039 -0
- package/skills/lark-slides/assets/templates/personal--self_intro.xml +696 -0
- package/skills/lark-slides/assets/templates/personal--teaching_sharing.xml +3013 -0
- package/skills/lark-slides/assets/templates/product--business_case_analysis.xml +1341 -0
- package/skills/lark-slides/assets/templates/product--market_analysis.xml +898 -0
- package/skills/lark-slides/assets/templates/product--product_analysis.xml +1537 -0
- package/skills/lark-slides/assets/templates/product--product_intro.xml +2838 -0
- package/skills/lark-slides/assets/templates/product--product_promotion.xml +687 -0
- package/skills/lark-slides/assets/templates/product--product_promotion_2.xml +687 -0
- package/skills/lark-slides/references/asset-planning.md +124 -0
- package/skills/lark-slides/references/examples.md +261 -0
- package/skills/lark-slides/references/iconpark-index.json +41901 -0
- package/skills/lark-slides/references/iconpark.md +46 -0
- package/skills/lark-slides/references/lark-slides-create.md +137 -0
- package/skills/lark-slides/references/lark-slides-edit-workflows.md +144 -0
- package/skills/lark-slides/references/lark-slides-media-upload.md +128 -0
- package/skills/lark-slides/references/lark-slides-replace-pages.md +95 -0
- package/skills/lark-slides/references/lark-slides-replace-slide.md +240 -0
- package/skills/lark-slides/references/lark-slides-screenshot.md +94 -0
- package/skills/lark-slides/references/lark-slides-whiteboard.md +330 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-create.md +220 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +123 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +110 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +187 -0
- package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +98 -0
- package/skills/lark-slides/references/planning-layer.md +219 -0
- package/skills/lark-slides/references/slide-templates.md +201 -0
- package/skills/lark-slides/references/slides_demo.xml +226 -0
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +3049 -0
- package/skills/lark-slides/references/template-catalog.md +463 -0
- package/skills/lark-slides/references/template-index.json +1853 -0
- package/skills/lark-slides/references/troubleshooting.md +63 -0
- package/skills/lark-slides/references/validation-checklist.md +110 -0
- package/skills/lark-slides/references/visual-planning.md +254 -0
- package/skills/lark-slides/references/xml-format-guide.md +369 -0
- package/skills/lark-slides/references/xml-schema-quick-ref.md +245 -0
- package/skills/lark-slides/scripts/iconpark_tool.py +362 -0
- package/skills/lark-slides/scripts/iconpark_tool_test.py +177 -0
- package/skills/lark-slides/scripts/template_tool.py +970 -0
- package/skills/lark-slides/scripts/template_tool_test.py +177 -0
- package/skills/lark-slides/scripts/xml_text_overlap_lint.py +367 -0
- package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +263 -0
- package/skills/lark-task/SKILL.md +167 -0
- package/skills/lark-task/references/lark-task-assign.md +38 -0
- package/skills/lark-task/references/lark-task-comment.md +28 -0
- package/skills/lark-task/references/lark-task-complete.md +27 -0
- package/skills/lark-task/references/lark-task-create.md +57 -0
- package/skills/lark-task/references/lark-task-followers.md +35 -0
- package/skills/lark-task/references/lark-task-get-my-tasks.md +61 -0
- package/skills/lark-task/references/lark-task-get-related-tasks.md +53 -0
- package/skills/lark-task/references/lark-task-reminder.md +36 -0
- package/skills/lark-task/references/lark-task-reopen.md +27 -0
- package/skills/lark-task/references/lark-task-search.md +41 -0
- package/skills/lark-task/references/lark-task-set-ancestor.md +32 -0
- package/skills/lark-task/references/lark-task-tasklist-create.md +35 -0
- package/skills/lark-task/references/lark-task-tasklist-members.md +36 -0
- package/skills/lark-task/references/lark-task-tasklist-search.md +38 -0
- package/skills/lark-task/references/lark-task-tasklist-task-add.md +38 -0
- package/skills/lark-task/references/lark-task-update.md +37 -0
- package/skills/lark-task/references/lark-task-upload-attachment.md +59 -0
- package/skills/lark-vc/SKILL.md +202 -0
- package/skills/lark-vc/references/lark-vc-detail.md +44 -0
- package/skills/lark-vc/references/lark-vc-recording.md +154 -0
- package/skills/lark-vc/references/lark-vc-search.md +163 -0
- package/skills/lark-vc/references/vc-domain-boundaries.md +188 -0
- package/skills/lark-vc-agent/SKILL.md +169 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +287 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-join.md +141 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +105 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-list-active.md +91 -0
- package/skills/lark-whiteboard/SKILL.md +47 -0
- package/skills/lark-whiteboard/elements/connectors.md +102 -0
- package/skills/lark-whiteboard/elements/content.md +40 -0
- package/skills/lark-whiteboard/elements/image.md +80 -0
- package/skills/lark-whiteboard/elements/layout.md +374 -0
- package/skills/lark-whiteboard/elements/schema.md +357 -0
- package/skills/lark-whiteboard/elements/style.md +318 -0
- package/skills/lark-whiteboard/elements/typography.md +73 -0
- package/skills/lark-whiteboard/references/lark-whiteboard-query.md +60 -0
- package/skills/lark-whiteboard/references/lark-whiteboard-update.md +122 -0
- package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +94 -0
- package/skills/lark-whiteboard/routes/dsl.md +107 -0
- package/skills/lark-whiteboard/routes/mermaid.md +27 -0
- package/skills/lark-whiteboard/routes/svg-edit.md +85 -0
- package/skills/lark-whiteboard/routes/svg.md +54 -0
- package/skills/lark-whiteboard/scenes/architecture.md +433 -0
- package/skills/lark-whiteboard/scenes/bar-chart.md +187 -0
- package/skills/lark-whiteboard/scenes/comparison.md +135 -0
- package/skills/lark-whiteboard/scenes/fishbone.md +238 -0
- package/skills/lark-whiteboard/scenes/flowchart.md +185 -0
- package/skills/lark-whiteboard/scenes/flywheel.md +195 -0
- package/skills/lark-whiteboard/scenes/funnel.md +101 -0
- package/skills/lark-whiteboard/scenes/line-chart.md +214 -0
- package/skills/lark-whiteboard/scenes/mermaid.md +130 -0
- package/skills/lark-whiteboard/scenes/milestone.md +139 -0
- package/skills/lark-whiteboard/scenes/organization.md +173 -0
- package/skills/lark-whiteboard/scenes/photo-showcase.md +126 -0
- package/skills/lark-whiteboard/scenes/pyramid.md +99 -0
- package/skills/lark-whiteboard/scenes/swimlane.md +371 -0
- package/skills/lark-whiteboard/scenes/treemap.md +216 -0
- package/skills/lark-wiki/SKILL.md +110 -0
- package/skills/lark-wiki/references/lark-wiki-delete-space.md +205 -0
- package/skills/lark-wiki/references/lark-wiki-member-add.md +67 -0
- package/skills/lark-wiki/references/lark-wiki-member-list.md +76 -0
- package/skills/lark-wiki/references/lark-wiki-member-remove.md +61 -0
- package/skills/lark-wiki/references/lark-wiki-move.md +183 -0
- package/skills/lark-wiki/references/lark-wiki-node-copy.md +72 -0
- package/skills/lark-wiki/references/lark-wiki-node-create.md +127 -0
- package/skills/lark-wiki/references/lark-wiki-node-delete.md +62 -0
- package/skills/lark-wiki/references/lark-wiki-node-get.md +57 -0
- package/skills/lark-wiki/references/lark-wiki-node-list.md +88 -0
- package/skills/lark-wiki/references/lark-wiki-space-create.md +46 -0
- package/skills/lark-wiki/references/lark-wiki-space-list.md +68 -0
- package/skills/lark-workflow-meeting-summary/SKILL.md +122 -0
- package/skills/lark-workflow-standup-report/SKILL.md +122 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# Lark Sheet Sheet Structure
|
|
2
|
+
|
|
3
|
+
## 结构性操作影响面预检(插入 / 删除行列前必做)
|
|
4
|
+
|
|
5
|
+
插入 / 删除行列、隐藏 / 取消隐藏、冻结、行列分组都会让原表的引用关系发生偏移。**操作前必须**先打印以下三类信息,并评估操作是否会让它们失效;否则禁止执行:
|
|
6
|
+
|
|
7
|
+
1. **当前合并单元格范围**(来自 `+sheet-info` 的 `merged_cells`):插入行 / 列时,跨过插入位置的合并区域可能扩张或断裂;删除行 / 列时合并区域可能直接消失。
|
|
8
|
+
2. **现有公式的引用范围**(用 `+cells-get` 抽样附近行 + 跨表引用 + 透视表 / 图表 / 条件格式 / 筛选器的数据源 range):插入 / 删除会导致 `=SUM(B4:B13)` 这种相对引用偏移;如果操作发生在引用范围内部,可能产生 `#REF!`。
|
|
9
|
+
3. **数据验证(下拉列表)规则的应用范围**:列表来源是某个区域时,区域被部分删除会让规则失效。
|
|
10
|
+
|
|
11
|
+
不可逆的影响必须先在回复中告知用户,得到确认再执行。
|
|
12
|
+
|
|
13
|
+
## 使用场景
|
|
14
|
+
|
|
15
|
+
读写。管理子表结构与布局。本 reference 覆盖 9 个 shortcut(按用途分两类):
|
|
16
|
+
|
|
17
|
+
| 操作需求 | 使用工具 | 说明 |
|
|
18
|
+
|---------|---------|------|
|
|
19
|
+
| 查看子表布局 | `+sheet-info` | 获取行高、列宽、隐藏行列、行列分组、合并单元格等信息 |
|
|
20
|
+
| 变更子表结构 | `+dim-{insert|delete|hide|unhide|freeze|group|ungroup|move}` | 插入/删除/隐藏/取消隐藏/冻结/分组/移动行列 |
|
|
21
|
+
|
|
22
|
+
注意:
|
|
23
|
+
|
|
24
|
+
- 当表格存在合并单元格时,应结合返回的 `merged_cells` 判断表头、分组标题和区域语义
|
|
25
|
+
- 不要把合并区域中非左上角的空白单元格理解为"无内容";通常应将左上角单元格的内容视为整个合并区域的语义内容
|
|
26
|
+
- 插入用 `+dim-insert`:`--position`(插入位置;行用 1-based 行号如 `3`,列用字母如 `C`,新行/列插在此位置**之前**)+ `--count`(插入数量,>0)。新行/列样式继承用 `--inherit-style`(`before`/`after`/`none`)
|
|
27
|
+
- 例如"在第 20 行后新增 116 行":`--position 21 --count 116`("第 20 行后"即 1-based 行号 21)
|
|
28
|
+
|
|
29
|
+
**区间表达统一为 A1 风格**:所有涉及"一段连续行/列"的 shortcut 都用同一套 A1 闭区间字符串语法,**不存在 inclusive / exclusive / 0-based / 1-based 跨命令差异**:
|
|
30
|
+
|
|
31
|
+
| 命令 | 用什么 flag 表达区间 / 位置 | 例子 |
|
|
32
|
+
| --- | --- | --- |
|
|
33
|
+
| `+dim-insert` | `--position` + `--count` | `--position 3 --count 5`(在第 3 行前插 5 行)/ `--position C --count 2`(在 C 列前插 2 列) |
|
|
34
|
+
| `+dim-delete` / `+dim-hide` / `+dim-unhide` / `+dim-group` / `+dim-ungroup` / `+rows-resize` / `+cols-resize` | `--range` | `"3:7"`(第 3-7 行,闭区间)/ `"C:F"`(C-F 列,闭区间)/ `"5"` 或 `"C"`(单行/列) |
|
|
35
|
+
| `+dim-move` | `--source-range`(源区间)+ `--target`(目标位置) | `--source-range "3:7" --target 12`(把第 3-7 行移到第 12 行前)/ `--source-range "C:F" --target H` |
|
|
36
|
+
|
|
37
|
+
行用 1-based 数字、列用字母——跟 Excel / 飞书 UI 看到的行号、列字母完全一致。
|
|
38
|
+
|
|
39
|
+
**常见配置错误(必须注意)**:
|
|
40
|
+
- **插入列直接用字母**:`+dim-insert` 的 `--position` 在列场景直接传字母(如 `C`),不要把列字母换算成 0-based 索引
|
|
41
|
+
- **插入后引用偏移**:插入行/列后,原有数据的行号 / 列字母会发生偏移。如果插入后还需要对原有区域执行写入操作,必须重新计算偏移后的位置
|
|
42
|
+
- **删除行列前先确认范围**:删除操作不可逆,执行前应确认 `--range` 精确无误。可先用 `+csv-get` 读取目标区域验证内容
|
|
43
|
+
- **"在 D 列左侧新增一列"的正确写法**:`--position D --count 1`(新列插在 D 列之前);要继承左侧列样式加 `--inherit-style before`
|
|
44
|
+
- **`+dim-move` 同维度约束**:`--source-range` 是行区间时 `--target` 必须是行号(数字),是列区间时 `--target` 必须是列字母——不可一行一列混用
|
|
45
|
+
- **插入列后必须检查多行表头合并区域**:很多表格有 2-3 行的合并表头。插入列后,原有的合并区域不会自动扩展到新列。必须先用 `+sheet-info --include merges` 读取合并区域,插入后将跨越插入位置的合并区域重新设置(用 `+cells-{merge|unmerge}`),否则新列的表头会是空的、格式不连续
|
|
46
|
+
- **公式写入范围跳过表头行**:写入公式时从数据行开始(不是第 1 行)。先确认表头占几行(可能 1-3 行),公式的起始行 = 表头行数 + 1
|
|
47
|
+
|
|
48
|
+
## Shortcuts
|
|
49
|
+
|
|
50
|
+
| Shortcut | Risk | 分组 |
|
|
51
|
+
| --- | --- | --- |
|
|
52
|
+
| `+sheet-info` | read | 工作表 |
|
|
53
|
+
| `+dim-insert` | write | 工作表 |
|
|
54
|
+
| `+dim-delete` | high-risk-write | 工作表 |
|
|
55
|
+
| `+dim-hide` | write | 工作表 |
|
|
56
|
+
| `+dim-unhide` | write | 工作表 |
|
|
57
|
+
| `+dim-freeze` | write | 工作表 |
|
|
58
|
+
| `+dim-group` | write | 工作表 |
|
|
59
|
+
| `+dim-ungroup` | write | 工作表 |
|
|
60
|
+
| `+dim-move` | write | 工作表 |
|
|
61
|
+
|
|
62
|
+
## Flags
|
|
63
|
+
|
|
64
|
+
### `+sheet-info`
|
|
65
|
+
|
|
66
|
+
_公共四件套 · 系统:`--dry-run`_
|
|
67
|
+
|
|
68
|
+
| Flag | Type | 必填 | 说明 |
|
|
69
|
+
| --- | --- | --- | --- |
|
|
70
|
+
| `--include` | string_slice | optional | 要返回的结构信息类别,逗号分隔多个(可选值:`merges` / `row_heights` / `col_widths` / `hidden_rows` / `hidden_cols` / `groups` / `frozen`) |
|
|
71
|
+
| `--range` | string | optional | 限定只返回该 A1 范围的结构信息;省略时返回整表 |
|
|
72
|
+
|
|
73
|
+
### `+dim-insert`
|
|
74
|
+
|
|
75
|
+
_公共四件套 · 系统:`--dry-run`_
|
|
76
|
+
|
|
77
|
+
| Flag | Type | 必填 | 说明 |
|
|
78
|
+
| --- | --- | --- | --- |
|
|
79
|
+
| `--inherit-style` | string | optional | 新行/列样式继承策略 enum:`before`(继承前一行/列)/ `after`(继承后一行/列)/ `none`(默认)(可选值:`before` / `after` / `none`) |
|
|
80
|
+
| `--position` | string | required | 插入位置(在此行/列**之前**插入):行用 1-based 行号如 `3`;列用字母如 `C` |
|
|
81
|
+
| `--count` | int | required | 插入数量(>0) |
|
|
82
|
+
|
|
83
|
+
### `+dim-delete`
|
|
84
|
+
|
|
85
|
+
_公共四件套 · 系统:`--yes`、`--dry-run`_
|
|
86
|
+
|
|
87
|
+
| Flag | Type | 必填 | 说明 |
|
|
88
|
+
| --- | --- | --- | --- |
|
|
89
|
+
| `--range` | string | required | 要删除的行/列闭区间;行用 1-based 数字如 `3:7` 或单行 `5`,列用字母如 `C:F` 或单列 `C` |
|
|
90
|
+
|
|
91
|
+
### `+dim-hide`
|
|
92
|
+
|
|
93
|
+
_公共四件套 · 系统:`--dry-run`_
|
|
94
|
+
|
|
95
|
+
| Flag | Type | 必填 | 说明 |
|
|
96
|
+
| --- | --- | --- | --- |
|
|
97
|
+
| `--range` | string | required | 要隐藏的行/列闭区间;行如 `3:7`,列如 `C:F` |
|
|
98
|
+
|
|
99
|
+
### `+dim-unhide`
|
|
100
|
+
|
|
101
|
+
_公共四件套 · 系统:`--dry-run`_
|
|
102
|
+
|
|
103
|
+
| Flag | Type | 必填 | 说明 |
|
|
104
|
+
| --- | --- | --- | --- |
|
|
105
|
+
| `--range` | string | required | 要取消隐藏的行/列闭区间;行如 `3:7`,列如 `C:F` |
|
|
106
|
+
|
|
107
|
+
### `+dim-freeze`
|
|
108
|
+
|
|
109
|
+
_公共四件套 · 系统:`--dry-run`_
|
|
110
|
+
|
|
111
|
+
| Flag | Type | 必填 | 说明 |
|
|
112
|
+
| --- | --- | --- | --- |
|
|
113
|
+
| `--dimension` | string | required | 维度方向(行或列)(可选值:`row` / `column`) |
|
|
114
|
+
| `--count` | int | required | 冻结前 N 行/列;传 0 解除冻结 |
|
|
115
|
+
|
|
116
|
+
### `+dim-group`
|
|
117
|
+
|
|
118
|
+
_公共四件套 · 系统:`--dry-run`_
|
|
119
|
+
|
|
120
|
+
| Flag | Type | 必填 | 说明 |
|
|
121
|
+
| --- | --- | --- | --- |
|
|
122
|
+
| `--depth` | int | optional | 嵌套分组的层级(创建到第几层),默认 1 |
|
|
123
|
+
| `--group-state` | string | optional | 分组初始展开状态(可选值:`expand` / `fold`)(默认 `expand`) |
|
|
124
|
+
| `--range` | string | required | 要创建分组的行/列闭区间;行如 `3:7`,列如 `C:F` |
|
|
125
|
+
|
|
126
|
+
### `+dim-ungroup`
|
|
127
|
+
|
|
128
|
+
_公共四件套 · 系统:`--dry-run`_
|
|
129
|
+
|
|
130
|
+
| Flag | Type | 必填 | 说明 |
|
|
131
|
+
| --- | --- | --- | --- |
|
|
132
|
+
| `--depth` | int | optional | 要取消的分组层级,默认 1(最外层) |
|
|
133
|
+
| `--range` | string | required | 要取消分组的行/列闭区间;行如 `3:7`,列如 `C:F` |
|
|
134
|
+
|
|
135
|
+
### `+dim-move`
|
|
136
|
+
|
|
137
|
+
_公共四件套 · 系统:`--dry-run`_
|
|
138
|
+
|
|
139
|
+
| Flag | Type | 必填 | 说明 |
|
|
140
|
+
| --- | --- | --- | --- |
|
|
141
|
+
| `--source-range` | string | required | 要移动的源行/列闭区间;行如 `3:7`,列如 `C:F` |
|
|
142
|
+
| `--target` | string | required | 目标位置(移到此行/列**之前**):行用 1-based 行号如 `12`,列用字母如 `H`。必须与 `--source-range` 同维度(行/列) |
|
|
143
|
+
|
|
144
|
+
## Examples
|
|
145
|
+
|
|
146
|
+
公共四件套:所有 shortcut 顶部排列 `--url` / `--spreadsheet-token` / `--sheet-id` / `--sheet-name`(XOR)。
|
|
147
|
+
|
|
148
|
+
### `+sheet-info`
|
|
149
|
+
|
|
150
|
+
输出契约:返回子表的行高 / 列宽 / 隐藏 / 合并 / 分组等布局元信息。
|
|
151
|
+
|
|
152
|
+
### `+dim-insert`
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# 在第 10 行前插 3 行,继承上方样式
|
|
156
|
+
lark-cli sheets +dim-insert --url "https://example.feishu.cn/sheets/shtXXX" \
|
|
157
|
+
--sheet-id "$SID" --position 10 --count 3 --inherit-style before
|
|
158
|
+
|
|
159
|
+
# 在 C 列前插 2 列
|
|
160
|
+
lark-cli sheets +dim-insert --url "..." --sheet-id "$SID" --position C --count 2
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### `+dim-delete`
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
# 删除第 5-7 行
|
|
167
|
+
lark-cli sheets +dim-delete --url "..." --sheet-id "$SID" --range "5:7" --yes
|
|
168
|
+
|
|
169
|
+
# 删除 D-F 列
|
|
170
|
+
lark-cli sheets +dim-delete --url "..." --sheet-id "$SID" --range "D:F" --yes
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### `+dim-hide` / `+dim-unhide`
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
lark-cli sheets +dim-hide --url "..." --sheet-id "$SID" --range "5:7"
|
|
177
|
+
lark-cli sheets +dim-unhide --url "..." --sheet-id "$SID" --range "5:7"
|
|
178
|
+
lark-cli sheets +dim-hide --url "..." --sheet-id "$SID" --range "C:F"
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### `+dim-move`
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
# 把第 3-7 行移到第 12 行前
|
|
185
|
+
lark-cli sheets +dim-move --url "..." --sheet-id "$SID" --source-range "3:7" --target 12
|
|
186
|
+
|
|
187
|
+
# 把 C-F 列移到 H 列前
|
|
188
|
+
lark-cli sheets +dim-move --url "..." --sheet-id "$SID" --source-range "C:F" --target H
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### `+rows-resize` / `+cols-resize`
|
|
192
|
+
|
|
193
|
+
> ⚠️ 这两条 shortcut 来自 `lark-sheets-range-operations` 的 `+rows-resize / +cols-resize` tool(分组在"工作表"是为了发现性)。详细参数和示例在 `lark-sheets-range-operations.md`。
|
|
194
|
+
>
|
|
195
|
+
> 行 vs 列底层 schema 有差异:`+rows-resize.--type` 支持 `pixel` / `standard` / `auto`,`+cols-resize.--type` 只支持 `pixel` / `standard`(列宽不支持自动适应)。
|
|
196
|
+
|
|
197
|
+
### `+dim-freeze`
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# 冻结前 1 行(--count 传 0 解除冻结)
|
|
201
|
+
lark-cli sheets +dim-freeze --url "..." --sheet-id "$SID" --dimension row --count 1
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### `+dim-group` / `+dim-ungroup`(大纲)
|
|
205
|
+
|
|
206
|
+
> 仅当用户明确说"行分组 / 列分组 / 大纲 / outline"时触发;按字段做数据分组用 `+pivot-create`。
|
|
207
|
+
|
|
208
|
+
### Validate / DryRun / Execute 约束
|
|
209
|
+
|
|
210
|
+
- `Validate`:XOR 公共四件套;`--range` / `--source-range` 必须是合法 A1 闭区间(行用数字、列用字母,不可混用);`+dim-insert` 的 `--count` > 0;`+dim-move` 的 `--target` 必须与 `--source-range` 同维度(行 vs 列);`+dim-delete` 强制 `--yes` 或 `--dry-run`;`+rows-resize` / `+cols-resize` 的 `--type` 必填,`--type pixel` 时 `--size` 必填、其它 type 时 `--size` 会被忽略(传了无害);`+rows-resize` / `+cols-resize` 的行 vs 列 `--type` 差异详见 `lark-sheets-range-operations.md`。
|
|
211
|
+
- `DryRun`:写操作输出"将要 PATCH 的目标范围 + 目标参数"。
|
|
212
|
+
- `Execute`:写后不自动回读;如需确认,自行调用 `+sheet-info --include row_heights,col_widths,hidden_rows,hidden_cols,groups,frozen` 查看受影响的范围。
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Lark Sheet Sparkline
|
|
2
|
+
|
|
3
|
+
## 真对象硬约束
|
|
4
|
+
|
|
5
|
+
当用户要求"迷你图 / 趋势线 / 单元格内图表"时,**必须**通过 `+sparkline-{create|update|delete}` 创建真实的迷你图对象。**禁止**用文本字符(如 `▁▂▃▅▇`)拼接在单元格里、或用 `SPARKLINE()` 公式函数(已禁用)代替。判断标准:交付后 `+sparkline-list` 必须能返回该对象。
|
|
6
|
+
|
|
7
|
+
## 使用场景
|
|
8
|
+
|
|
9
|
+
读写迷你图对象。本 reference 覆盖 4 个 shortcut:
|
|
10
|
+
|
|
11
|
+
| 操作需求 | 使用工具 | 说明 |
|
|
12
|
+
|---------|---------|------|
|
|
13
|
+
| 查看已有迷你图 | `+sparkline-list` | 获取迷你图的类型、数据源和样式配置 |
|
|
14
|
+
| 创建/更新/删除迷你图 | `+sparkline-{create|update|delete}` | 对迷你图执行写入操作 |
|
|
15
|
+
|
|
16
|
+
典型工作流:先读取现有迷你图了解配置 → 执行创建/更新/删除 → **必须再次读取验证结果**。
|
|
17
|
+
|
|
18
|
+
**常见配置错误(必须注意)**:
|
|
19
|
+
- **数据源范围要精确**:迷你图的数据源范围必须与实际数据行列精确对应,范围偏移会导致图形展示错误
|
|
20
|
+
- **不要与 SPARKLINE() 公式混淆**:飞书表格的 `SPARKLINE()` 公式函数已被禁用,迷你图只能通过 `+sparkline-{create|update|delete}` 的对象方式创建
|
|
21
|
+
- **创建后必须验证**:调用 `+sparkline-list` 确认迷你图配置正确
|
|
22
|
+
|
|
23
|
+
## Shortcuts
|
|
24
|
+
|
|
25
|
+
| Shortcut | Risk | 分组 |
|
|
26
|
+
| --- | --- | --- |
|
|
27
|
+
| `+sparkline-list` | read | 对象 |
|
|
28
|
+
| `+sparkline-create` | write | 对象 |
|
|
29
|
+
| `+sparkline-update` | write | 对象 |
|
|
30
|
+
| `+sparkline-delete` | high-risk-write | 对象 |
|
|
31
|
+
|
|
32
|
+
## Flags
|
|
33
|
+
|
|
34
|
+
### `+sparkline-list`
|
|
35
|
+
|
|
36
|
+
_公共四件套 · 系统:`--dry-run`_
|
|
37
|
+
|
|
38
|
+
| Flag | Type | 必填 | 说明 |
|
|
39
|
+
| --- | --- | --- | --- |
|
|
40
|
+
| `--group-id` | string | optional | 按 group_id 过滤 |
|
|
41
|
+
|
|
42
|
+
### `+sparkline-create`
|
|
43
|
+
|
|
44
|
+
_公共四件套 · 系统:`--dry-run`_
|
|
45
|
+
|
|
46
|
+
| Flag | Type | 必填 | 说明 |
|
|
47
|
+
| --- | --- | --- | --- |
|
|
48
|
+
| `--properties` | string + File + Stdin(复合 JSON) | required | JSON:`{config(共享样式配置), sparklines(迷你图数组)}`;完整字段结构跑 `--print-schema` |
|
|
49
|
+
|
|
50
|
+
### `+sparkline-update`
|
|
51
|
+
|
|
52
|
+
_公共四件套 · 系统:`--dry-run`_
|
|
53
|
+
|
|
54
|
+
| Flag | Type | 必填 | 说明 |
|
|
55
|
+
| --- | --- | --- | --- |
|
|
56
|
+
| `--group-id` | string | required | 目标组 id |
|
|
57
|
+
| `--properties` | string + File + Stdin(复合 JSON) | required | JSON:`{config, sparklines}`;先 `+sparkline-list --group-id <id>` 回读再 patch;完整字段结构跑 `--print-schema` |
|
|
58
|
+
|
|
59
|
+
### `+sparkline-delete`
|
|
60
|
+
|
|
61
|
+
_公共四件套 · 系统:`--yes`、`--dry-run`_
|
|
62
|
+
|
|
63
|
+
| Flag | Type | 必填 | 说明 |
|
|
64
|
+
| --- | --- | --- | --- |
|
|
65
|
+
| `--group-id` | string | required | 目标组 id |
|
|
66
|
+
|
|
67
|
+
## Schemas
|
|
68
|
+
|
|
69
|
+
> 复合 JSON flag 字段速查(只列顶层 + 一层嵌套)。深层结构看下方 `## Examples`,或用 `--print-schema` 读完整 JSON Schema(用法见 SKILL.md「公共 flag 速查」与「Agent 使用提示」)。
|
|
70
|
+
|
|
71
|
+
### `+sparkline-create` `--properties` / `+sparkline-update` `--properties`
|
|
72
|
+
|
|
73
|
+
_创建/更新/部分删除的迷你图属性_
|
|
74
|
+
|
|
75
|
+
**顶层字段**:
|
|
76
|
+
- `config` (object?) — 迷你图样式配置, 相同 groupId 的迷你图共享相同的样式 { theme_type?: enum, non_num_show_as?: enum, empty_show_as?: enum, contain_hidden_cells?: boolean, series_color?: string, …共 13 项 }
|
|
77
|
+
- `sparklines` (array<object>?) — 迷你图项列表 each: { sparkline_id?: string, position?: object, source?: string, source_range?: object }
|
|
78
|
+
|
|
79
|
+
## Examples
|
|
80
|
+
|
|
81
|
+
公共四件套:所有 shortcut 顶部排列 `--url` / `--spreadsheet-token` / `--sheet-id` / `--sheet-name`(XOR)。迷你图用 **两层 id** 管理——`group_id` 选组(一组同形态的迷你图共享类型 / 样式 / 数据源映射),`sparkline_id` 在组内选具体某一项。注意:不等同于已禁用的 `SPARKLINE()` 公式函数。
|
|
82
|
+
|
|
83
|
+
> **何时需要先 `+sparkline-list`:**
|
|
84
|
+
> - `+sparkline-update`:**总是**需要——拿到组内每一项的 `sparkline_id`,回填到 `properties.sparklines[i]`,server 用它做映射。
|
|
85
|
+
> - `+sparkline-delete`:**不需要** `sparkline_id`——CLI 仅支持按 `--group-id` 整组删除(该 shortcut 没有 `--properties`)。
|
|
86
|
+
|
|
87
|
+
### `+sparkline-list`
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# 列出整张子表的所有迷你图组
|
|
91
|
+
lark-cli sheets +sparkline-list --url "..." --sheet-id "$SID"
|
|
92
|
+
|
|
93
|
+
# 钉到单组:返回该组每一项的 sparkline_id(update / partial-delete 必需)
|
|
94
|
+
lark-cli sheets +sparkline-list --url "..." --sheet-id "$SID" --group-id "grpA"
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### `+sparkline-create`
|
|
98
|
+
|
|
99
|
+
> `--properties` 顶层只有 `config`(同组共享样式,如 `line_width` / `points` / `extremum_max` / `extremum_min`)和 `sparklines`(迷你图项数组)两个字段。`sparklines[i]` 每项必须含 `position`(落点 cell,`row` + `col`)+ `source`(数据 A1 范围,与 `source_range` 二选一);create 时 `sparkline_id` 可省略,由系统生成。
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
lark-cli sheets +sparkline-create --url "..." --sheet-id "$SID" --properties @sparkline.json
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
`sparkline.json` 示例(在 F 列嵌入两行折线迷你图,数据分别来自 A2:E2 和 A3:E3):
|
|
106
|
+
|
|
107
|
+
```jsonc
|
|
108
|
+
{
|
|
109
|
+
"config": { "line_width": 2 },
|
|
110
|
+
"sparklines": [
|
|
111
|
+
{"position": {"row": 1, "col": "F"}, "source": "'Sheet1'!A2:E2"},
|
|
112
|
+
{"position": {"row": 2, "col": "F"}, "source": "'Sheet1'!A3:E3"}
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### `+sparkline-update`
|
|
118
|
+
|
|
119
|
+
> 两步式:先 `+sparkline-list --group-id <id>` 拿当前组的 `sparkline_id` 列表,再构造 `properties.sparklines[]`——**每项必须带 `sparkline_id`**。只改样式可只传 `properties.config`(不带 `sparklines`,整组样式覆盖式更新)。
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# 假设 +sparkline-list 已返回 group_id=grpA,组内 sparkline_id=sl_1 / sl_2
|
|
123
|
+
lark-cli sheets +sparkline-update --url "..." --sheet-id "$SID" --group-id "grpA" --properties '{
|
|
124
|
+
"sparklines": [
|
|
125
|
+
{"sparkline_id":"sl_1","source":"'Sheet1'!A2:A20"},
|
|
126
|
+
{"sparkline_id":"sl_2","source":"'Sheet1'!B2:B20"}
|
|
127
|
+
]
|
|
128
|
+
}'
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### `+sparkline-delete`
|
|
132
|
+
|
|
133
|
+
> CLI 仅支持**整组删除**:传 `--group-id` 删掉该组全部迷你图。该 shortcut **没有** `--properties`,无法只删组内单项(需求上要"留一部分"时,改用 `+sparkline-update` 重写该组的 `sparklines` 列表,而不是 delete)。强制 `--yes` 或 `--dry-run`;先 `--dry-run` 确认要删的目标组。
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
# 删整组
|
|
137
|
+
lark-cli sheets +sparkline-delete --url "..." --sheet-id "$SID" --group-id "grpA" --yes
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Validate / DryRun / Execute 约束
|
|
141
|
+
|
|
142
|
+
- `Validate`:
|
|
143
|
+
- XOR 公共四件套;`+sparkline-{update,delete}` 必须 `--group-id`。
|
|
144
|
+
- **`+sparkline-update`**:当 `properties.sparklines` 非空时,每一项必须含 `sparkline_id`(CLI 预检,错误信息会指回 `+sparkline-list`,避免命中服务端的不可读拒绝);只传 `properties.config`(config-only update)合法、不触发 sparkline_id 检查。
|
|
145
|
+
- **`+sparkline-delete`**:只接 `--group-id`(整组删除),**没有** `--properties`,无法删组内单项。
|
|
146
|
+
- `--properties`(仅 `+sparkline-create` / `+sparkline-update`)顶层只接 `config`(同组共享样式)和 `sparklines`(迷你图项数组);`+sparkline-create` 要求每个 `sparklines[i]` 含 `position` 与 `source`(或 `source_range`,二选一)。
|
|
147
|
+
- `+sparkline-delete` 强制 `--yes` 或 `--dry-run`。
|
|
148
|
+
- `DryRun`:写操作输出"将要 POST/PATCH/DELETE 的 sparkline group 请求模板"。
|
|
149
|
+
- `Execute`:写后不自动回读;如需确认,自行调用 `+sparkline-list --group-id <id>` 查看 `config` / `sparklines`。
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# 飞书表格样式与配色规范
|
|
2
|
+
|
|
3
|
+
> **本文定位**:飞书表格"正确视觉输出"的取值标准与美化决策流——配色、表头、对齐、数值格式、斑马纹、列宽行高、图表展示,以及新增 / 继承 / 美化已有区域三类场景的做法。
|
|
4
|
+
> **边界**:本文只讲"样式长什么样、怎么决策";**怎么调用工具写入样式**(`cell_styles` / `border_styles` 字段、合并、resize 等参数)见 `lark-sheets-write-cells` / `lark-sheets-range-operations` / `lark-sheets-batch-update`。**条件格式**(高亮 / 标红 / 数据条 / 色阶)见 `lark-sheets-conditional-format`。本文不含 shortcut,铁律见 `lark-sheets-core-operations`。
|
|
5
|
+
|
|
6
|
+
## 最高优先级原则
|
|
7
|
+
|
|
8
|
+
- **用户指令优先**:用户明确提出的格式要求(如"使用红色背景")具有最高权重,即使与通用审美冲突。
|
|
9
|
+
- **继承原表风格**:编辑前先采样原文件视觉特征(色系、边框、对齐、数字格式),新增内容必须与之对齐。严禁对已有风格的文件强行施加通用标准化格式。
|
|
10
|
+
- **扩展而非覆盖**:新增行列或追加数据时,目标是"扩展原模板"——继承邻近区域的表头风格、条纹节奏、边框层级、对齐方式、数字格式和列宽/行高策略。
|
|
11
|
+
- **美化只动样式属性,不动数据**:对**已有区域**做美化时,**只能**修改 `font` / `fill` / `border` / `alignment` / `number_format` 这 5 类样式属性。**禁止**改动原始单元格的 `value` / `formula`、合并区域、行列结构、Sheet 名称。如果美化需求需要改变数据布局(例如"汇总行加进表里"),必须把"加汇总行"和"美化"拆成两步,前者属于编辑动作、需另行得到用户授权。
|
|
12
|
+
- **不可见视觉属性也属保护对象**:原表的**合并范围、对齐方式(H-Align/V-Align)、行高列宽、数字格式**是用户能感知但不一定会明示的视觉属性。即使用户没说"保留这些",**禁止**因写入新内容而修改它们;写公式 / 写值 / 写新列时只传 `value` / `formula`,不要重置 `alignment` / `number_format` 等字段为默认值(重置等同于改动)。**例外**:用户明示要修改这些属性时(如"调整对齐 / 合并 / 列宽")才能动。
|
|
13
|
+
- **美化范围必须覆盖所有用户语义目标**:用户说"给表格加边框 / 美化整个表"时,范围 = 实际数据区域**含所有数据行**(含汇总行、总计行、表尾备注行),不能停在"看起来主体内容结束"的地方。落地前先用 `current_region` + 末尾 5~10 行核对真实末行(同 `lark-sheets-read-data` 的「确定数据范围的正确流程」),再设置美化范围。范围漏掉用户提到的目标行 / 列**直接判失败**。
|
|
14
|
+
|
|
15
|
+
## 美化任务 5 维度 checklist(用户说"美化 / 整理 / 让表更清晰 / 适合打印"时必做)
|
|
16
|
+
|
|
17
|
+
当用户用"美化 / 整理表格 / 让表清晰 / 适合打印 / 调整样式"等口语表达**主动美化需求**时,**必须**遍历以下 5 个维度逐一落地,**只动一处就交付**(如只加边框)属于违规:
|
|
18
|
+
|
|
19
|
+
1. **表头格式区分**:表头行加粗 + 背景色填充(与数据行有色差)+ 居中对齐;多行表头时全部行同步处理
|
|
20
|
+
2. **对齐方式**:文本列左对齐、数值 / 货币 / 百分比列右对齐、日期 / 分类列居中;垂直方向统一居中
|
|
21
|
+
3. **数值格式**:每列统一小数位 + 千分位(用 `number_format`);金额列统一货币符号;同一列内**禁止**出现 0 位 / 1 位 / 2 位小数混杂
|
|
22
|
+
4. **边框**:覆盖范围按上方「美化范围必须覆盖所有用户语义目标」规则(含汇总 / 总计 / 表尾说明行),内外框线清晰
|
|
23
|
+
5. **列宽 + 行高 + 自动换行**:详细规则见 `lark-sheets-range-operations` 的「写入后列宽自适应」章节(按最长字符数扩列宽 / 长文本设置 `cell_styles.word_wrap="auto-wrap"` + 调高行高 / 长数字设置 `number_format` 防科学计数法)
|
|
24
|
+
|
|
25
|
+
**差异化标注场景**:用户要求"重复行 / 异常值 / 重要项视觉区分"时,标注列 / 行必须设置与普通数据**显著不同**的 `cell_styles`(背景色 + 加粗 + 字体色至少改一项),不能与普通数据格式完全一致。
|
|
26
|
+
|
|
27
|
+
**显式要求边框 / 表头 / 对齐时同样按上面标准落地**(不必等用户说"美化"):① 用户说"给某矩形区域加边框"必须**整个矩形含表头行、数据行、汇总行全部加内外框**,落地后核起 / 末行、末列三边界(反例:要求加边框的区域实际无任何边框);② **新建表头前先确认哪一行才是表头**——别把已有的第一行数据误当表头刷成蓝底白字,真正该加的表头列也要建出来(反例:把第一行数据误设成了表头样式);③ 新增 / 编辑区域的字号必须与原表一致,禁止 13 号与 14 号、10 号与 11 号混杂(反例:新列字号与原表不一致)。
|
|
28
|
+
|
|
29
|
+
## 通用样式规范
|
|
30
|
+
|
|
31
|
+
> 以下取值标准都在「最高优先级原则」的**继承原表风格 / 扩展而非覆盖**前提下生效:凡涉及"沿用原表"的条目,遵循该原则即可,本节不再逐条复述。
|
|
32
|
+
|
|
33
|
+
### 1. 表头样式
|
|
34
|
+
|
|
35
|
+
- 表头/汇总行须与数据区域有明确视觉区分。
|
|
36
|
+
- 使用低饱和度背景色搭配字体颜色(如深蓝 + 白字,浅蓝 + 黑字),文字加粗、水平居中。
|
|
37
|
+
- 表头覆盖多列时使用合并单元格。
|
|
38
|
+
|
|
39
|
+
### 2. 数据区域样式
|
|
40
|
+
|
|
41
|
+
- 减少垂直线条,优先使用水平浅灰细线。
|
|
42
|
+
- **对齐方式**:文本左对齐,数值/货币/百分比右对齐,日期或分类居中,所有内容垂直居中。
|
|
43
|
+
- 次要信息(备注、次要日期等)使用缩小字号或浅灰色。
|
|
44
|
+
- **Zebra Stripes**:数据行 > 10 行时可使用交替背景色引导视线。
|
|
45
|
+
- 设置前先清理原区域背景色为白色(#FFFFFF),再设置斑马纹色,避免新旧混杂。
|
|
46
|
+
- 优先直接设置单元格背景色,而非条件格式(除非用户要求)。
|
|
47
|
+
- 推荐配色:奇数行 #FFFFFF,偶数行 #F3F4F6 或 #EBF1F8。
|
|
48
|
+
|
|
49
|
+
### 3. 数值格式
|
|
50
|
+
|
|
51
|
+
- 百分比使用 `%` 符号,适当注明单位和货币符号(¥、$)。
|
|
52
|
+
- 大于 1000 的数字使用千分位符,保留一致的小数位数(1–2 位)。
|
|
53
|
+
- 涉及数据检索的须注明数据来源。
|
|
54
|
+
- 可使用数据条/色阶/条件格式增强可视化。
|
|
55
|
+
|
|
56
|
+
### 4. 整体结构
|
|
57
|
+
|
|
58
|
+
- 长表/宽表考虑冻结行列,方便滚动查看。
|
|
59
|
+
- **长文本处理**:启用自动换行,行高合理调整以确保阅读舒适,添加适当垂直留白,目标是清晰、专业、不拥挤的布局。
|
|
60
|
+
- 保持表格简洁,合理分组(可用合并单元格展示分组),在适当位置添加合计或汇总行。
|
|
61
|
+
- **区域分隔**:多阶段或多类别时,使用柔和背景色块进行逻辑分区,而非简单边框。
|
|
62
|
+
- **增删行列的样式规则**:
|
|
63
|
+
- 新增整列继承同组列的表头样式、列宽、对齐和数字格式;新增整行继承同层级数据行或汇总行风格,避免写成表头风格。追加列时需判断是否应加入已有合并单元格(常见于顶部标题行)。
|
|
64
|
+
- 若追加位置紧邻汇总行、说明区或空白分隔区,先判断真实数据区域边界再操作,避免破坏原有结构。
|
|
65
|
+
- **Zebra Stripes 维护**:插入或删除行后若影响后续行奇偶性,须从受影响行往后重建条纹(先清理再重设)。少量增删用局部重建,大量变动用全局清理+统一重建。
|
|
66
|
+
- 具体采样与复制流程见下方「场景二:从已有区域继承美化」。
|
|
67
|
+
- **列宽调整**(飞书 `+rows-resize / +cols-resize` 按 pixel 传值):
|
|
68
|
+
- 禁止硬编码固定列宽,须根据该列实际内容长度估算像素。
|
|
69
|
+
- 经验估算:中文每字约 15-18px,英文/数字每字约 7-9px,外加 10-16px padding。
|
|
70
|
+
- 上下限建议 80~400px;超上限启用自动换行(`word_wrap: auto-wrap`)+ 调整行高,而非无限加宽。
|
|
71
|
+
- 合并单元格不参与列宽计算,避免撑宽单列。
|
|
72
|
+
- 复制自原文件的列优先沿用原列宽,不重新计算覆盖。
|
|
73
|
+
|
|
74
|
+
### 5. 配色
|
|
75
|
+
|
|
76
|
+
- 优先沿用原表色板与明暗层级(见「继承原表风格」),新增区域不凭空换色,确保视觉连续。
|
|
77
|
+
- 背景填充选择柔和色(如浅蓝 `#DDEBF7`),区分颜色时优先同一主题色不同深浅,避免超过 3 种主题色。
|
|
78
|
+
|
|
79
|
+
### 6. 图表展示
|
|
80
|
+
|
|
81
|
+
- 遵循用户指令选择图表类型,或匹配用户意图(饼图/环形图 → 占比,折线图 → 趋势)。
|
|
82
|
+
- 包含必要元素:标题、图例、数据标签、坐标轴标题。
|
|
83
|
+
- 调整至合适大小,避免数据和标签过多堆叠。
|
|
84
|
+
- **图表放置防重叠**:新增图表前须计算放置区域,避免与已有图表重叠。具体步骤:
|
|
85
|
+
1. 调用 `+chart-list` 获取当前工作表所有已有图表的 `position`(锚点单元格:`row` 行索引、`col` 列索引如 "A"/"B")、`offset`(锚点内偏移:`row_offset`、`col_offset`,单位像素)以及 `size`(`width`、`height`,单位像素)。
|
|
86
|
+
2. 获取工作表的行高和列宽信息(像素)。
|
|
87
|
+
3. 根据每个图表的锚点 `position.row`/`position.col` + 偏移 `offset.row_offset`/`offset.col_offset` + 尺寸 `size.width`/`size.height`,结合行高列宽,计算出每个已有图表覆盖的像素矩形区域 `(x_min, y_min, x_max, y_max)`。
|
|
88
|
+
4. 为新图表选定大小后,候选放置位置应避开所有已有矩形区域;若存在重叠则向下或向右偏移,直至找到无冲突位置。
|
|
89
|
+
5. 若工作表已无足够空间,优先向下方空白区域放置,保持图表间至少 1 行或 1 列的间距。
|
|
90
|
+
|
|
91
|
+
> 飞书表格中颜色需带 `#` 前缀(如 `#0070C0`),与 openpyxl 的无前缀写法不同。
|
|
92
|
+
> 具体工具调用参数格式,请读取对应工具 skill(`lark-sheets-write-cells`、`lark-sheets-conditional-format`、`lark-sheets-range-operations` 等)。
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 场景化操作指南
|
|
97
|
+
|
|
98
|
+
### 场景一:新增独立样式
|
|
99
|
+
|
|
100
|
+
> 适用情况:在表格中创建全新的、具有独立视觉特征的区域,如汇总行、新表头、独立数据表等。
|
|
101
|
+
|
|
102
|
+
#### 1A. 添加汇总行 / 表头行
|
|
103
|
+
|
|
104
|
+
**决策流程:**
|
|
105
|
+
1. 先用 `+cells-get` 读取目标位置上方的数据区域,确认数据边界和已有样式(背景色、字体大小等)
|
|
106
|
+
2. 如果需要新增空行,先用 `+dim-{insert|delete|hide|unhide|freeze|group|ungroup}` 插入行
|
|
107
|
+
3. 用 `+cells-set` 写入汇总公式 + 特殊样式(背景色区分 + 加粗 + 边框)
|
|
108
|
+
4. 如果汇总行标题需要跨列显示,追加 `+cells-{merge|unmerge}` 合并标题区域
|
|
109
|
+
|
|
110
|
+
**样式要点:**
|
|
111
|
+
- 汇总行使用比数据区域更深的同色系背景(如数据区 #EBF1F8 → 汇总行 #D6E4F0 或 #4472C4 + 白字)
|
|
112
|
+
- 必须加粗,水平对齐方式与数据列一致(数值列右对齐,文本列左对齐)
|
|
113
|
+
- 上方加一条较粗的边框线,与数据区域形成视觉分隔
|
|
114
|
+
|
|
115
|
+
#### 1B. 添加独立数据表/独立区域
|
|
116
|
+
|
|
117
|
+
**决策流程:**
|
|
118
|
+
|
|
119
|
+
1. 新建 sheet,或用 `+cells-get` 或 `+workbook-info` 确认已有表格的占用范围,找到空闲区域
|
|
120
|
+
2. 用 `+cells-get` 采样已有表格的表头样式(背景色、字体大小、字重、对齐方式)和数据区域样式
|
|
121
|
+
3. 新表头复用已有表头的配色和字体参数(保持风格统一),但内容和列宽可独立
|
|
122
|
+
4. 新数据区域复用已有数据区域的对齐规则、边框风格、数字格式
|
|
123
|
+
5. 用 `+cells-set` 一次性写入新表头 + 数据
|
|
124
|
+
|
|
125
|
+
**样式要点:**
|
|
126
|
+
- 必须复用:背景色色系、字体大小、字重、边框风格
|
|
127
|
+
- 可以独立:列宽、行高、具体数字格式(根据新数据的类型调整)
|
|
128
|
+
- 新旧表格之间至少留 1~2 行空白作为视觉分隔
|
|
129
|
+
|
|
130
|
+
### 场景二:从已有区域继承美化
|
|
131
|
+
|
|
132
|
+
> 适用情况:新增的行/列/区域与已有内容性质相同(数据类型、层级一致),需要无缝衔接已有格式。
|
|
133
|
+
|
|
134
|
+
#### 2A. 继续补充行/列(数据性质与已有内容一致)
|
|
135
|
+
|
|
136
|
+
**核心规则**:采样紧邻 2 行 → 判断并延续 Zebra Stripes 奇偶性 → 按 write-cells 的继承清单带齐样式写入。
|
|
137
|
+
|
|
138
|
+
**斑马纹延续要点**(本节只管"奇偶判断"这一标准,"带哪些样式字段写入"的机制见下方指针):
|
|
139
|
+
|
|
140
|
+
- 至少读 2 行(末行 + 倒数第二行)才能判断是否有斑马纹交替色
|
|
141
|
+
- 若倒数两行背景色不同(如 #FFFFFF 与 #F3F4F6),新行按奇偶延续,不要固定一个色
|
|
142
|
+
|
|
143
|
+
> 具体继承哪些字段、怎么采样与写入(`+cells-get` 读源行 `cell_styles` + `border_styles`、`+sheet-info --include row_heights,merges` 读行高合并、带齐 6 类样式写入)见 `lark-sheets-write-cells` 的「新增列 / 新增行的样式继承」章节——`border_styles` 四边最易遗漏,以那里为准。
|
|
144
|
+
|
|
145
|
+
#### 2B. 基于模板区域的修改(copy 保留所有格式)
|
|
146
|
+
|
|
147
|
+
**核心思路:三步分层法**
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
Step 1 — 格式铺开:`+batch-update` + `+range-copy`(或 `+range-fill`)
|
|
151
|
+
└── 将模板行/区域的 **全部格式**(样式、边框、数字格式、数据验证等)复制到目标区域
|
|
152
|
+
└── 推荐用 `+range-copy --paste-type formats`(仅复制格式,目标值/公式保留),即"格式刷"
|
|
153
|
+
└── 若需连带公式平移填充(如公式列结构一致),改用 `+range-fill --series-type copy` 或 `+range-copy --paste-type all`
|
|
154
|
+
|
|
155
|
+
Step 2 — 内容覆写:`+batch-update` + `+cells-set`(仅传 value/formula,不传任何样式)
|
|
156
|
+
└── 将每行的实际数据写入,cell_styles 全部省略,因为格式已在 Step 1 中就位
|
|
157
|
+
|
|
158
|
+
Step 3 — 微调收尾:`+batch-update` + `+rows-resize / +cols-resize` / `+cells-{merge|unmerge}` 等
|
|
159
|
+
└── 调整行高列宽、处理合并单元格、扩展条件格式范围等边缘情况
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**关键注意事项:**
|
|
163
|
+
- Step 1 用 `+range-copy --paste-type formats` 时只铺格式、不动值/公式,Step 2 再用 `+cells-set` 写值即可(`+cells-set` 默认覆盖,无需额外 flag);若 Step 1 用 `--paste-type all` 连带复制了值/公式,Step 2 写入同样会覆盖(默认行为)
|
|
164
|
+
- `+range-fill --series-type auto`(或 `linear`/`date`)会自动递增数字序列(1→2→3)和日期序列,`+range-fill --series-type copy` 则原样复制值但公式引用会自动平移
|
|
165
|
+
- 如果模板区域存在合并单元格,copy/fill 不会复制合并状态,必须在 Step 3 中用 `+cells-{merge|unmerge}` 补全
|
|
166
|
+
- 如果模板区域有条件格式,需要在 Step 3 中通过 `+cond-format-update` 扩展 ranges
|
|
167
|
+
|
|
168
|
+
**场景:纯"格式刷"(用户说"把 A 列样式应用到 B 列"、"格式复制过去"、"只刷格式不改数据")**
|
|
169
|
+
|
|
170
|
+
单步即可,无需三步分层:调用 `+range-copy --paste-type formats`,`--source-range` 为样式来源、`--target-range` 为目标起点。参数细节见 `lark-sheets-range-operations`。
|
|
171
|
+
|
|
172
|
+
### 场景三:已有区域格式美化
|
|
173
|
+
|
|
174
|
+
> 适用情况:对已存在数据的区域进行格式美化(不改变数据内容),重点处理表头、汇总行等特殊行的识别与格式设置,需特别注意合并单元格的安全操作。
|
|
175
|
+
|
|
176
|
+
#### 整体操作流程
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
1. 探查阶段
|
|
180
|
+
├── `+workbook-info` → 获取子表列表、行列数、冻结位置
|
|
181
|
+
├── `+sheet-info --include merges` → 获取合并区域
|
|
182
|
+
├── `+cells-get`(前几行 + 末尾几行,`--include style`)→ 采样表头/数据区/汇总行样式
|
|
183
|
+
└── 分析结果 → 建立区域地图(表头行号、数据起止行号、汇总行号、合并区域列表)
|
|
184
|
+
|
|
185
|
+
2. 规划阶段
|
|
186
|
+
├── 判断表头行:通常第 1 行或前 2 行,特征为加粗/背景色/合并/居中
|
|
187
|
+
├── 判断汇总行:通常最后 1~2 行,特征为加粗/SUM/AVERAGE 公式/更深背景色
|
|
188
|
+
├── 判断合并区域:从 `+cells-get` 返回中识别(多个单元格同值且样式相同通常暗示合并)
|
|
189
|
+
└── 制定美化方案:按区域分别设置样式
|
|
190
|
+
|
|
191
|
+
3. 执行阶段(按顺序)
|
|
192
|
+
├── 先处理合并单元格(如需取消合并再重新合并,必须先 unmerge 再 merge)
|
|
193
|
+
├── 设置表头样式
|
|
194
|
+
├── 设置数据区域样式
|
|
195
|
+
├── 设置汇总行样式
|
|
196
|
+
└── 调整列宽行高
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
#### 美化中的合并单元格要点
|
|
200
|
+
|
|
201
|
+
- 编辑前先识别已有合并区域(见探查阶段),避免破坏原有语义分区。
|
|
202
|
+
- 美化表头/分组标题时,若需修改合并区域的范围或样式,遵循"先 `unmerge` → 修改 → 再 `merge`"顺序。
|
|
203
|
+
- 合并区域样式只写左上角,不要对合并内的其他单元格重复写入样式。
|
|
204
|
+
|
|
205
|
+
> 合并单元格完整的安全操作规则(含数据保护、样式占位等 5 条)见 `lark-sheets-range-operations` 的 `+cells-{merge|unmerge}` 章节。
|