@microi.net/cli 5.8.4 → 5.8.6

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.
Files changed (212) hide show
  1. package/.codebuddy-plugin/marketplace.json +2 -2
  2. package/.codebuddy-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +1 -1
  4. package/.mcp.json +1 -1
  5. package/.workbuddy-plugin/marketplace.json +2 -2
  6. package/.workbuddy-plugin/plugin.json +1 -1
  7. package/LICENSE +21 -21
  8. package/README.md +71 -71
  9. package/assets/build-meta.json +7 -7
  10. package/assets/feature-matrix.json +138 -138
  11. package/assets/logo.svg +4 -4
  12. package/cordis.patch.yml +1 -1
  13. package/package.json +1 -1
  14. package/scripts/codex-marketplace.json +20 -20
  15. package/scripts/mcp-codex-stdio-adapter.js +189 -189
  16. package/scripts/mcp-server.js +5 -0
  17. package/scripts/mcp-trae-windows-launcher.cmd +21 -21
  18. package/scripts/microi-cli-mcp.js +7 -7
  19. package/scripts/microi-cli.js +67 -66
  20. package/scripts/microi-codex-broker.js +450 -450
  21. package/scripts/microi-codex-router.js +618 -582
  22. package/scripts/microi-skills.meta.json +384 -384
  23. package/skills/.microi-skills-version.json +2 -2
  24. package/skills/.progressive-disclosure-manifest.json +3566 -3566
  25. package/skills/README.md +287 -287
  26. package/skills/ai-engine/SKILL.md +269 -265
  27. package/skills/ai-engine/agents/openai.yaml +4 -4
  28. package/skills/ai-engine/references/ai-employees.md +48 -48
  29. package/skills/ai-engine/references/self-hosted-digital-human.md +59 -59
  30. package/skills/ai-platform-governance/SKILL.md +177 -177
  31. package/skills/ai-platform-governance/references/progressive-01-/345/212/237/350/203/275/345/274/200/345/205/263.md +190 -190
  32. package/skills/app-store/SKILL.md +525 -525
  33. package/skills/app-store/agents/openai.yaml +4 -4
  34. package/skills/business-blueprint/SKILL.md +193 -193
  35. package/skills/datasource-engine/SKILL.md +93 -93
  36. package/skills/datasource-engine/agents/openai.yaml +4 -4
  37. package/skills/dos-orm/SKILL.md +97 -97
  38. package/skills/dos-orm/references/api-reference.md +229 -229
  39. package/skills/email-engine/SKILL.md +81 -81
  40. package/skills/email-engine/references/v8-email.md +34 -34
  41. package/skills/job-engine/SKILL.md +176 -176
  42. package/skills/job-engine/agents/openai.yaml +4 -4
  43. package/skills/message-notification/SKILL.md +156 -156
  44. package/skills/message-notification/agents/openai.yaml +5 -5
  45. package/skills/message-notification/references/contracts.md +102 -102
  46. package/skills/microi/SKILL.md +14 -14
  47. package/skills/microi-ai-app-auth.js +652 -652
  48. package/skills/microi-ai-application/SKILL.md +115 -115
  49. package/skills/microi-ai-application/agents/openai.yaml +4 -4
  50. package/skills/microi-ai-application/references/frontend-baseline.md +164 -164
  51. package/skills/microi-client-frontend/SKILL.md +244 -244
  52. package/skills/microi-client-frontend/references/progressive-01-3-/345/212/250/346/200/201/346/214/211/351/222/256/347/263/273/347/273/237.md +144 -144
  53. package/skills/microi-client-frontend/references/progressive-02-8-/350/277/220/350/241/214/346/227/266/351/253/230/351/242/221/345/235/221/345/244/215/347/233/230.md +196 -196
  54. package/skills/microi-client-frontend/references/progressive-03-vue3-/345/211/215/347/253/257/345/276/256/346/234/215/345/212/241/345/256/277/344/270/273/350/247/204/345/210/231.md +167 -167
  55. package/skills/microi-codex/SKILL.md +102 -100
  56. package/skills/microi-codex-installer/SKILL.md +231 -227
  57. package/skills/microi-codex-installer/agents/openai.yaml +7 -7
  58. package/skills/microi-datasource-mapping/SKILL.md +122 -122
  59. package/skills/microi-db-schema/SKILL.md +175 -175
  60. package/skills/microi-db-schema/agents/openai.yaml +4 -4
  61. package/skills/microi-db-schema/references/core-tables.md +695 -695
  62. package/skills/microi-db-schema/references/form-component-options.md +256 -256
  63. package/skills/microi-db-schema/references/schema-overview.md +202 -202
  64. package/skills/microi-db-schema/references/schema.md +646 -646
  65. package/skills/microi-db-schema/references/table-catalog.md +1599 -1599
  66. package/skills/microi-deployment/SKILL.md +221 -221
  67. package/skills/microi-deployment/references/deployment-matrix.md +109 -109
  68. package/skills/microi-docs-coverage/SKILL.md +133 -133
  69. package/skills/microi-docs-coverage/references/capability-map.md +91 -91
  70. package/skills/microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs +894 -894
  71. package/skills/microi-form-engine/SKILL.md +333 -333
  72. package/skills/microi-form-engine/references/component-catalog.md +218 -218
  73. package/skills/microi-form-engine/references/data-source-events.md +124 -124
  74. package/skills/microi-form-layout/SKILL.md +205 -205
  75. package/skills/microi-form-layout/references/progressive-01-3-/344/270/211/347/247/215/345/210/206/347/273/204/347/232/204/345/255/230/345/202/250/344/270/216/351/205/215/347/275/256.md +235 -235
  76. package/skills/microi-frontend-sdk/SKILL.md +194 -194
  77. package/skills/microi-frontend-sdk/references/progressive-01-token-/345/275/223/345/211/215/347/231/273/345/275/225/347/224/250/346/210/267/344/270/216/345/275/223/345/211/215/347/273/210/347/253/257/347/231/273/345/275/225/345/215/217/350/256/256.md +176 -176
  78. package/skills/microi-left-right-layout/SKILL.md +141 -141
  79. package/skills/microi-microservice/SKILL.md +326 -324
  80. package/skills/microi-microservice/references/runtime-delivery.md +278 -278
  81. package/skills/microi-mobile-app-quality/SKILL.md +185 -185
  82. package/skills/microi-mobile-app-quality/references/progressive-01-4-/351/207/215/350/246/201/346/214/211/351/222/256/345/277/205/351/241/273/345/270/246/345/233/276/346/240/207.md +213 -213
  83. package/skills/microi-mobile-app-quality/references/progressive-02-9-/344/270/273/351/242/230/345/210/207/346/215/242/345/277/205/351/241/273/347/234/237/345/256/236/344/270/224/345/205/250/345/261/200/347/224/237/346/225/210.md +128 -128
  84. package/skills/microi-solution-quotation/SKILL.md +78 -78
  85. package/skills/microi-solution-quotation/agents/openai.yaml +4 -4
  86. package/skills/microi-solution-quotation/scripts/build_solution_quote.py +296 -296
  87. package/skills/microi-sso/SKILL.md +92 -92
  88. package/skills/microi-sso/references/acceptance.md +49 -49
  89. package/skills/microi-sso/references/configuration-and-security.md +53 -53
  90. package/skills/microi-sso/references/inbound.md +53 -53
  91. package/skills/microi-sso/references/outbound.md +39 -39
  92. package/skills/microi-system-delivery/SKILL.md +137 -137
  93. package/skills/microi-system-delivery/references/progressive-01-/346/240/207/345/207/206/345/267/245/344/275/234/346/265/201.md +193 -193
  94. package/skills/microi-system-delivery/references/progressive-02-/350/207/252/345/212/250/345/214/226/346/265/213/350/257/225/345/277/205/351/241/273/350/246/206/347/233/226/347/232/204/345/235/221.md +217 -217
  95. package/skills/microi-ui/SKILL.md +192 -192
  96. package/skills/microi-ui/references/progressive-01-/347/247/273/345/212/250/347/253/257/345/234/272/346/231/257/350/223/235/345/233/276.md +183 -183
  97. package/skills/microi-uniapp-frontend/SKILL.md +193 -193
  98. package/skills/microi-uniapp-frontend/references/progressive-01-/347/247/273/345/212/250/347/253/257/345/210/206/347/261/273-/345/217/214/346/240/217/345/210/227/350/241/250/347/213/254/347/253/213/346/273/232/345/212/250.md +225 -225
  99. package/skills/microi-uniapp-frontend/references/progressive-02-/345/205/263/351/224/256/344/270/232/345/212/241/350/265/204/344/272/247/344/270/215/345/276/227/351/273/230/350/256/244/351/200/211/344/270/255.md +154 -154
  100. package/skills/microi.v8.js +1921 -1921
  101. package/skills/module-engine/SKILL.md +255 -255
  102. package/skills/module-engine/references/module-config.md +204 -204
  103. package/skills/ocr-engine/SKILL.md +113 -113
  104. package/skills/ocr-engine/agents/openai.yaml +4 -4
  105. package/skills/page-engine/SKILL.md +206 -206
  106. package/skills/page-engine/examples/compact-dashboard.json +1444 -1444
  107. package/skills/page-engine/references/progressive-01-/346/211/200/346/234/211/347/273/204/344/273/266/347/261/273/345/236/213.md +234 -234
  108. package/skills/page-engine/references/progressive-02-/347/211/210/346/234/254/345/216/206/345/217/262-/345/271/266/345/217/221/344/277/235/345/255/230/344/270/216/345/233/236/346/273/232.md +60 -60
  109. package/skills/performance-testing/SKILL.md +221 -221
  110. package/skills/playwright-e2e/SKILL.md +196 -196
  111. package/skills/playwright-e2e/references/progressive-01-/345/205/250/350/207/252/345/212/250/347/231/273/345/275/225-/345/205/215/351/252/214/350/257/201/347/240/201-/344/275/206/344/270/215/345/205/215/345/257/206/347/240/201-/345/277/205/350/257/273.md +173 -173
  112. package/skills/playwright-e2e/references/progressive-02-/346/226/207/345/255/227/345/257/271/346/257/224/345/272/246/344/270/216/345/217/257/350/257/273/346/200/247/350/207/252/345/212/250/345/214/226/346/243/200/346/237/245-/345/277/205/345/201/232.md +183 -183
  113. package/skills/playwright-e2e/references/progressive-03-microi-helper-/346/250/241/346/235/277.md +221 -221
  114. package/skills/playwright-e2e/references/progressive-04-ci-/345/273/272/350/256/256.md +115 -115
  115. package/skills/print-engine/SKILL.md +259 -259
  116. package/skills/production-readonly-audit/SKILL.md +41 -41
  117. package/skills/report-engine/SKILL.md +71 -71
  118. package/skills/report-engine/agents/openai.yaml +4 -4
  119. package/skills/scripts/optimize-progressive-disclosure.mjs +204 -204
  120. package/skills/scripts/refresh-progressive-disclosure.mjs +64 -64
  121. package/skills/scripts/sync-embedded-skills.mjs +46 -46
  122. package/skills/scripts/validate-progressive-disclosure.mjs +57 -57
  123. package/skills/search-engine/SKILL.md +75 -75
  124. package/skills/search-engine/agents/openai.yaml +4 -4
  125. package/skills/spider-engine/SKILL.md +190 -190
  126. package/skills/system-observability/SKILL.md +248 -248
  127. package/skills/system-observability/references/memory-incident-triage.md +77 -77
  128. package/skills/translate-engine/SKILL.md +140 -140
  129. package/skills/translate-engine/agents/openai.yaml +4 -4
  130. package/skills/ui-design/SKILL.md +223 -223
  131. package/skills/ui-design/assets/pattern-showcase/app.js +54 -54
  132. package/skills/ui-design/assets/pattern-showcase/index.html +163 -163
  133. package/skills/ui-design/assets/pattern-showcase/styles.css +311 -311
  134. package/skills/ui-design/assets/templates/MCI-DESIGN.md +206 -206
  135. package/skills/ui-design/references/design-pattern-library.md +184 -184
  136. package/skills/ui-design/references/mci-design-contract.md +163 -163
  137. package/skills/ui-design/references/motion-and-media.md +78 -78
  138. package/skills/ui-design/references/product-flow-recipes.md +94 -94
  139. package/skills/ui-design/references/progressive-01-/351/242/234/350/211/262/344/275/223/347/263/273-css-variables-/346/224/257/346/214/201/344/270/273/351/242/230/345/210/207/346/215/242.md +218 -218
  140. package/skills/ui-design/references/progressive-02-/345/255/227/344/275/223.md +164 -164
  141. package/skills/ui-design/references/progressive-03-/345/212/250/346/225/210/350/247/204/350/214/203-/344/270/260/345/257/214/344/275/206/344/270/215/345/215/241.md +235 -235
  142. package/skills/ui-design/references/progressive-04-/347/273/204/344/273/266/351/243/216/346/240/274/351/200/237/346/237/245.md +152 -152
  143. package/skills/ui-design/references/progressive-05-/347/247/273/345/212/250/347/253/257/344/270/223/347/224/250/350/247/204/350/214/203.md +238 -238
  144. package/skills/ui-design/references/progressive-06-/344/270/273/351/242/230/345/210/207/346/215/242/345/256/236/347/216/260.md +194 -194
  145. package/skills/ui-design/references/progressive-07-/351/200/237/346/237/245-/344/273/216/345/244/264/346/220/255/345/273/272/344/270/200/344/270/252/347/247/273/345/212/250/347/253/257/351/241/265/351/235/242.md +207 -207
  146. package/skills/ui-design/references/progressive-08-/350/241/250/345/215/225/345/210/206/347/273/204/350/247/204/350/214/203-tabs-vs-collapsegroup-/345/274/272/345/210/266.md +142 -142
  147. package/skills/uniapp-mall-assets/SKILL.md +176 -176
  148. package/skills/unity-integration/SKILL.md +171 -171
  149. package/skills/unity-integration/agents/openai.yaml +4 -4
  150. package/skills/unity-integration/references/ai-app-delivery.md +119 -119
  151. package/skills/unity-integration/references/sdk-api.md +82 -82
  152. package/skills/unity-integration/references/toolbox-migration.md +66 -66
  153. package/skills/unity-integration/references/webgl-hosting.md +57 -57
  154. package/skills/v8-api-config/SKILL.md +388 -388
  155. package/skills/v8-cache-pattern/SKILL.md +312 -312
  156. package/skills/v8-crud-api/SKILL.md +178 -178
  157. package/skills/v8-crud-api/references/progressive-01-/346/237/245/350/257/242/345/210/227/350/241/250-/345/210/206/351/241/265.md +226 -226
  158. package/skills/v8-crud-api/references/progressive-02-where-/346/235/241/344/273/266/350/257/255/346/263/225/351/200/237/346/237/245.md +49 -49
  159. package/skills/v8-debugging/SKILL.md +284 -284
  160. package/skills/v8-explorer-tree/SKILL.md +228 -228
  161. package/skills/v8-export-import/SKILL.md +219 -219
  162. package/skills/v8-export-import/references/progressive-01-excellayout-/351/253/230/347/272/247/350/207/252/347/224/261/345/270/203/345/261/200.md +211 -211
  163. package/skills/v8-export-import/references/progressive-02-powerpoint-/345/257/274/345/207/272.md +202 -202
  164. package/skills/v8-export-import/references/progressive-03-/345/256/211/345/205/250-/346/200/247/350/203/275/346/263/250/346/204/217.md +42 -42
  165. package/skills/v8-file-upload/SKILL.md +284 -284
  166. package/skills/v8-file-upload/references/progressive-01-/345/205/254/346/234/211/346/241/266-vs-/347/247/201/346/234/211/346/241/266.md +263 -263
  167. package/skills/v8-file-upload/references/progressive-02-office-/346/226/207/344/273/266/345/234/250/347/272/277/347/274/226/350/276/221/347/211/210/346/234/254/345/217/267/350/247/204/345/210/231.md +161 -161
  168. package/skills/v8-formengine-http/SKILL.md +238 -238
  169. package/skills/v8-frontend-events/SKILL.md +180 -180
  170. package/skills/v8-frontend-events/references/bluetooth-print-api.md +135 -135
  171. package/skills/v8-frontend-events/references/bluetooth-print.md +258 -258
  172. package/skills/v8-frontend-events/references/progressive-01-/345/210/227/350/241/250/344/272/213/344/273/266.md +219 -219
  173. package/skills/v8-http-integration/SKILL.md +182 -182
  174. package/skills/v8-http-integration/references/progressive-01-get-/350/257/267/346/261/202.md +220 -220
  175. package/skills/v8-http-integration/references/progressive-02-/351/224/231/350/257/257/345/244/204/347/220/206/346/250/241/345/274/217.md +44 -44
  176. package/skills/v8-image-processing/SKILL.md +190 -190
  177. package/skills/v8-image-processing/agents/openai.yaml +4 -4
  178. package/skills/v8-image-processing/references/api-reference.md +623 -623
  179. package/skills/v8-menu-buttons/SKILL.md +186 -186
  180. package/skills/v8-menu-buttons/references/progressive-01-2-/346/214/211/351/222/256/345/257/271/350/261/241-schema.md +222 -222
  181. package/skills/v8-menu-buttons/references/progressive-02-8-/346/250/241/345/274/217-f-/345/220/216/345/217/260/344/273/273/345/212/241/346/214/211/351/222/256-/351/225/277/344/273/273/345/212/241.md +228 -228
  182. package/skills/v8-menu-buttons/references/progressive-03-10-/345/217/215/346/250/241/345/274/217-/351/201/277/345/205/215.md +104 -104
  183. package/skills/v8-mongodb/SKILL.md +200 -200
  184. package/skills/v8-mq-mqtt/SKILL.md +176 -176
  185. package/skills/v8-mq-mqtt/references/mqtt-production.md +342 -342
  186. package/skills/v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-/347/211/251/350/201/224/347/275/221.md +181 -181
  187. package/skills/v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs +203 -203
  188. package/skills/v8-saas-multi-tenant/SKILL.md +305 -305
  189. package/skills/v8-security/SKILL.md +210 -210
  190. package/skills/v8-security/references/progressive-01-2-/346/235/203/351/231/220/346/240/241/351/252/214.md +200 -200
  191. package/skills/v8-security/references/progressive-02-7-/346/227/245/345/277/227/350/256/260/345/275/225.md +160 -160
  192. package/skills/v8-sql-query/SKILL.md +302 -302
  193. package/skills/v8-table-event/SKILL.md +176 -176
  194. package/skills/v8-table-event/references/progressive-01-informv8-js-/350/241/250/345/215/225/346/211/223/345/274/200/344/272/213/344/273/266.md +216 -216
  195. package/skills/v8-table-event/references/progressive-02-/345/211/215/347/253/257/344/272/213/344/273/266/345/220/215-v8-eventname-/345/217/257/350/203/275/347/232/204/345/200/274.md +46 -46
  196. package/skills/v8-tcp-integration/SKILL.md +147 -147
  197. package/skills/v8-tcp-integration/agents/openai.yaml +4 -4
  198. package/skills/v8-template-engine/SKILL.md +167 -167
  199. package/skills/v8-utilities/SKILL.md +104 -104
  200. package/skills/v8-utilities/references/client-api-index.md +143 -143
  201. package/skills/v8-utilities/references/platform-http-routes.md +83 -83
  202. package/skills/v8-utilities/references/server-api-index.md +188 -188
  203. package/skills/v8-workflow/SKILL.md +252 -252
  204. package/skills/v8-workflow/references/progressive-01-/350/212/202/347/202/271/345/274/200/345/247/213-v8-/344/272/213/344/273/266.md +180 -180
  205. package/skills/v8-workflow/references/workflow-configuration.md +49 -49
  206. package/skills/vision-engine/SKILL.md +160 -160
  207. package/skills/vision-engine/agents/openai.yaml +4 -4
  208. package/skills/vision-engine/references/architecture-and-acceptance.md +194 -194
  209. package/skills/workspace-conventions/SKILL.md +273 -270
  210. package/skills/workspace-conventions/references/progressive-01-/347/211/210/346/234/254/346/233/264/346/226/260/346/227/245/345/277/227/344/277/235/346/212/244/350/247/204/345/210/231-/345/274/272/345/210/266.md +209 -209
  211. package/skills/workspace-conventions/references/progressive-02-microi-net-api-/346/234/254/345/234/260/345/220/257/345/212/250/347/272/246/345/256/232.md +217 -217
  212. package/skills/workspace-conventions/references/progressive-03-cli-/344/270/216-ide-/346/217/222/344/273/266/351/224/231/347/211/210/345/205/261/345/255/230/347/272/246/345/256/232.md +27 -27
@@ -1,211 +1,211 @@
1
- # v8-export-import 详细参考 1
2
-
3
- > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
-
5
- <!-- microi-progressive:chunk id=v8-export-import-004 sha256=828669707ddc19320767ac4b787383136ec820deb6ad1dc861b42b5d39097677 -->
6
- ## `ExcelLayout` 高级自由布局
7
-
8
- 审批单、套打表、主子表、多级表头和复杂合并单元格不要硬塞入 `ExcelData + ExcelHeader`。改用 `ExcelLayout`:
9
-
10
- ```javascript
11
- var excelResult = V8.Office.ExportExcel({
12
- OsClient: V8.OsClient,
13
- ExcelSheets: [{
14
- SheetName: '审批单',
15
- ExcelLayout: {
16
- Cells: [
17
- // 先给整块区域统一画细网格
18
- { Range: 'A1:H10', Style: {
19
- FontName: 'Microsoft YaHei', BorderStyle: 'Thin', BorderColor: '7F8C9A',
20
- VerticalAlignment: 'Center', WrapText: true
21
- }},
22
- // 后写入的非空样式属性叠加/覆盖,可以再加标题和外框
23
- { Range: 'A1:H1', Value: '盘盈亏及报废申请表', Merge: true, Style: {
24
- Bold: true, FontSize: 18, HorizontalAlignment: 'Center',
25
- BorderTopStyle: 'Medium', BorderTopColor: '34495E'
26
- }},
27
- { Range: 'A2', Value: '序号', Style: { Bold: true }},
28
- { Range: 'G2', Value: '数量', Style: { Bold: true }},
29
- { Range: 'H2', Value: '金额', Style: { Bold: true }},
30
- { Range: 'A3', Value: 1 },
31
- { Range: 'G3', Value: 2, DataType: 'Number' },
32
- { Range: 'H3', Formula: 'G3*1200', Style: { NumberFormat: '#,##0.00' }},
33
- { Range: 'A8:G8', Value: '合计', Merge: true, Style: { Bold: true, HorizontalAlignment: 'Right' }},
34
- { Range: 'H8', Formula: 'SUM(H3:H7)', Style: { Bold: true, NumberFormat: '#,##0.00' }},
35
- { Range: 'A9:D9', Value: '(1) 申请人:张三(已电子签)', Merge: true },
36
- { Range: 'E9:H9', Value: '(2) 主管意见:同意(已电子签)', Merge: true }
37
- ],
38
- MergedRanges: [],
39
- Columns: [{ Column: 'A', Width: 9 }, { Column: 'H', Width: 16 }],
40
- Rows: [{ Row: 1, Height: 42 }, { Row: 2, Height: 32 }],
41
- RowGroups: [{ StartRow: 3, EndRow: 7, Collapsed: false }]
42
- },
43
- ExcelOptions: {
44
- ShowGridLines: false,
45
- FreezeRows: 2,
46
- FreezeColumns: 1,
47
- AutoFilterRange: 'A2:H8',
48
- PrintOrientation: 'Landscape',
49
- PaperSize: 'A4',
50
- FitToWidth: 1,
51
- PrintArea: 'A1:H10',
52
- ShowPageNumber: true
53
- }
54
- }]
55
- });
56
- ```
57
-
58
- 规则:
59
-
60
- - `Range` 使用 `A1` / `A1:K15`,不允许跨 Sheet 的 `Sheet1!A1`;`Value/Formula` 写入左上角,样式作用于全部单元格。
61
- - `Merge:true` 合并当前 `Range`;也可集中传 `MergedRanges`。不完全相同的合并区域不得重叠。
62
- - `DataType` 可传 `String/Number/Boolean/DateTime/Blank`,不传时按值推断;公式可带或不带 `=`。
63
- - `Columns` 用列字母或从 1 开始的 `Index`,支持 `Width/Hidden/AutoSize/MinWidth/MaxWidth`;`Rows.Row`、`RowGroups.StartRow/EndRow` 均从 1 开始。
64
- - 主表/子表使用 `RowGroups` 生成 Excel 原生展开/折叠行,不要只靠缩进文本模拟层级。
65
- - 先给实际数据块统一网格样式,再用小范围样式叠加标题、表头、合计和外框,可以显著减少 V8 代码重复。
66
- - 官方完整接口引擎 `export-excel-advanced-demo` 一次导出 5 Sheet,覆盖截图同款申请单、主子表、复杂合并表头、标准表格和边框样式库。
67
- - 高级布局会为覆盖区域创建真实单元格。不要对整列或百万行套样式;只配置实际使用区域,避免不必要的内存和 CPU。
68
-
69
- ### 匿名下载与 OnlyOffice 在线预览配套模式
70
-
71
- 响应文件接口本身可以同时作为浏览器下载地址和 OnlyOffice 文件源:
72
-
73
- - `export-excel-advanced-demo` 开启【响应文件】,返回 `FileName/ContentType/FileByteBase64`,可配置 `AllowAnonymous=1` 供客户直接下载。
74
- - `export-excel-advanced-demo-preview` 也开启【响应文件】和【允许匿名】,直接响应同一 `.xlsx`;它的完整 HTTP 地址可以传给 `/online-office?fileUrl=...`。V8 接口不需要先上传 HDFS,也不返回 `FileUrl/OnlineOfficePath` JSON;在线页面会调用后端安全中转,透明缓存到当前租户公有 HDFS 后再交给 OnlyOffice。
75
- - `fileUrl` 必须整体 URL 编码,同时传 `fileName`(或 `fileType`)让 OnlyOffice 确定类型。
76
- - 匿名 `fileUrl` 只能是当前平台正式 `ApiBase`,或同端口本地后端可读取的 loopback `/apiengine/...`;路径或 query 必须显式携带当前 `OsClient`,禁止接受任意外部 URL,避免 SSRF。
77
- - 开发环境传入 `localhost/127.0.0.1` 时,只允许当前同端口后端读取源接口。后端按 URL 与文件名的 SHA-256 使用确定性 `/{OsClient}/office-preview/...` 路径写入公有对象存储,Redis 共享缓存 10 分钟;OnlyOffice 使用公网 `FileServer` 地址。中转限制 50MB、不跟随重定向并校验 Office/PDF 文件头,禁止实现成任意 URL 代理。
78
- - 匿名链接只能用于可公开数据。敏感数据必须关闭匿名调用、上传私有桶,并要求登录后由 `/api/HDFS/OpenPrivateFile` 审计代理提供临时地址。
79
-
80
- 配套预览接口核心写法:
81
-
82
- ```javascript
83
- var exportResult = V8.ApiEngine.Run('export-excel-advanced-demo', {});
84
- if (!exportResult || exportResult.Code != 1 || !exportResult.Data || !exportResult.Data.FileByteBase64) {
85
- V8.Result = exportResult && exportResult.Code != 1
86
- ? exportResult
87
- : { Code: 0, Msg: 'Excel 生成失败' };
88
- return;
89
- }
90
- // 当前接口配置:AllowAnonymous=1、ResponseFile=1、StopHttp=0。
91
- V8.Result = exportResult;
92
- ```
93
-
94
- 预览 URL 形式:`/?OsClient=tenant_demo#/online-office?fileUrl=<URL编码后的接口地址>&fileName=示例.xlsx&fileType=xlsx&canEdit=0`。`canEdit` 只是编辑申请,不是授权依据;未登录时即使传 `canEdit=1` 也必须强制只读,并隐藏左侧菜单、顶部导航和页签。公网匿名文件接口应配置频率限制或让导出逻辑足够轻量,不能依赖进程内变量控制并发。
95
-
96
- <!-- /microi-progressive:chunk -->
97
- <!-- microi-progressive:chunk id=v8-export-import-005 sha256=401c2cd0a4b9ea45b1709d14277cf71d74ab29dcda72d404f452a0e67b56eddc -->
98
- ## 多 Sheet Excel 导出
99
-
100
- `ExcelSheets` 中每项是一张独立工作表,可以使用 `ExcelLayout` 高级布局,也可以传 `ExcelData + ExcelHeader` 标准表格;标准表格还可传 `FormEngineKey`、查询条件等让后端自行查询。两种模式可以在同一工作簿混用。`Sheets` 是兼容别名;新代码统一使用 `ExcelSheets`。
101
-
102
- ```javascript
103
- var excelResult = V8.Office.ExportExcel({
104
- OsClient: V8.OsClient,
105
- ExcelOptions: {
106
- DefaultColumnWidth: 14,
107
- HeaderRowHeight: 28,
108
- HeaderStyle: { Bold: true, BackgroundColor: 'D9EAF7' }
109
- },
110
- ExcelSheets: [
111
- {
112
- SheetName: '订单',
113
- ExcelData: orderList,
114
- ExcelHeader: [
115
- { Name: 'OrderNo', Label: '订单号', Component: 'Text', Width: 22 },
116
- { Name: 'Amount', Label: '金额', Component: 'NumberText', Type: 'decimal', Width: 16, NumberFormat: '#,##0.00' }
117
- ],
118
- ExcelOptions: { FreezeHeader: true, AutoFilter: true }
119
- },
120
- {
121
- SheetName: '客户',
122
- ExcelData: customerList,
123
- ExcelHeader: [
124
- { Name: 'Name', Label: '客户名称', Component: 'Text', Width: 24 },
125
- { Name: 'Phone', Label: '联系电话', Component: 'Text', Width: 18 }
126
- ],
127
- ExcelOptions: { DataRowHeight: 22 }
128
- }
129
- ]
130
- });
131
- if (excelResult.Code !== 1) return excelResult;
132
-
133
- return {
134
- Code: 1,
135
- Data: {
136
- FileName: '业务数据.xlsx',
137
- ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
138
- FileByteBase64: System.Convert.ToBase64String(excelResult.Data)
139
- }
140
- };
141
- ```
142
-
143
- `SheetName` 会自动处理 Excel 非法字符、31 字符上限和重名。未传 `ExcelHeader` 时,可以在每个 Sheet 中传 `TableId`、`FormEngineKey`、`_Where`、`_OrderBy`、`_PageSize` 等查询参数,并继承外层的 `OsClient`、`TableId`、`_SysMenuId` 等默认值。外层 `ExcelOptions` 也是所有 Sheet 的默认值;Sheet 内的 `ExcelOptions` 只覆盖已传属性。
144
-
145
- 图片列:`ImgUpload.Multiple=1` 会按最大图片数展开为多列并合并表头;列上的 `Width` 会应用到每个展开列,`DataRowHeight/RowHeight` 控制图片行高。自动列宽会遍历单元格,大批量导出不要对所有列盲目开启。
146
-
147
- <!-- /microi-progressive:chunk -->
148
- <!-- microi-progressive:chunk id=v8-export-import-006 sha256=1a74f8359e67ca4b270de414000f8416a7564c1595189c091281d0fea6dd4a45 -->
149
- ## Word 导出
150
-
151
- 新代码使用对象参数的 `ExportWord`;`ExportWordText` 继续保留,只用于兼容旧版纯文本场景。Word 的页面边距、图片宽高单位为厘米,字体大小单位为磅。
152
-
153
- ```javascript
154
- var wordResult = V8.Office.ExportWord({
155
- Title: '月度经营报告',
156
- Subtitle: DateNow('yyyy年MM月'),
157
- Author: V8.CurrentUser.Name,
158
- Subject: '经营分析',
159
- Keywords: '经营,月报',
160
- PageSize: 'A4', // A4 | Letter
161
- Orientation: 'Portrait', // Portrait | Landscape
162
- MarginTop: 2.2,
163
- MarginRight: 2.0,
164
- MarginBottom: 2.2,
165
- MarginLeft: 2.0,
166
- FontFamily: 'Microsoft YaHei',
167
- FontSize: 10.5,
168
- TitleFontSize: 20,
169
- HeaderText: '吾码经营中心',
170
- FooterText: '内部资料',
171
- ShowPageNumber: true,
172
- Paragraphs: [
173
- { Text: '本月经营情况总体稳定。', FirstLineIndent: 0.74 },
174
- { Text: '以下数据未经授权不得外传。', Bold: true, FontColor: 'C00000' }
175
- ],
176
- Sections: [{
177
- Heading: '一、核心指标',
178
- HeadingLevel: 1,
179
- Content: '本节展示主要经营指标。',
180
- Tables: [{
181
- Title: '指标明细',
182
- Headers: ['指标', '本月', '同比'],
183
- Rows: [['销售额', 1280000, '12.5%'], ['订单数', 860, '8.1%']],
184
- ColumnWidths: [4, 4, 4],
185
- HeaderBackgroundColor: 'D9EAF7'
186
- }]
187
- }],
188
- Images: [{
189
- FileByteBase64: chartBase64, // 支持纯 Base64 或 data URI
190
- FileName: 'chart.png',
191
- ContentType: 'image/png',
192
- Width: 15,
193
- Height: 8,
194
- Alignment: 'Center',
195
- Caption: '图 1:趋势分析'
196
- }]
197
- });
198
- if (wordResult.Code !== 1) return wordResult;
199
- return {
200
- Code: 1,
201
- Data: {
202
- FileName: '月度经营报告.docx',
203
- ContentType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
204
- FileByteBase64: System.Convert.ToBase64String(wordResult.Data)
205
- }
206
- };
207
- ```
208
-
209
- 段落支持 `Text/Alignment/Bold/Italic/Underline/FontFamily/FontSize/FontColor/SpacingBefore/SpacingAfter/LineSpacing/FirstLineIndent/PageBreakBefore`。章节支持 `Heading/HeadingLevel/Content/Paragraphs/Tables/Images/PageBreakBefore`;表格支持 `Headers/Rows/ColumnWidths/Alignment/HeaderBold/HeaderBackgroundColor/HeaderFontColor/BorderColor/FontSize`。
210
-
211
- <!-- /microi-progressive:chunk -->
1
+ # v8-export-import 详细参考 1
2
+
3
+ > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
+
5
+ <!-- microi-progressive:chunk id=v8-export-import-004 sha256=828669707ddc19320767ac4b787383136ec820deb6ad1dc861b42b5d39097677 -->
6
+ ## `ExcelLayout` 高级自由布局
7
+
8
+ 审批单、套打表、主子表、多级表头和复杂合并单元格不要硬塞入 `ExcelData + ExcelHeader`。改用 `ExcelLayout`:
9
+
10
+ ```javascript
11
+ var excelResult = V8.Office.ExportExcel({
12
+ OsClient: V8.OsClient,
13
+ ExcelSheets: [{
14
+ SheetName: '审批单',
15
+ ExcelLayout: {
16
+ Cells: [
17
+ // 先给整块区域统一画细网格
18
+ { Range: 'A1:H10', Style: {
19
+ FontName: 'Microsoft YaHei', BorderStyle: 'Thin', BorderColor: '7F8C9A',
20
+ VerticalAlignment: 'Center', WrapText: true
21
+ }},
22
+ // 后写入的非空样式属性叠加/覆盖,可以再加标题和外框
23
+ { Range: 'A1:H1', Value: '盘盈亏及报废申请表', Merge: true, Style: {
24
+ Bold: true, FontSize: 18, HorizontalAlignment: 'Center',
25
+ BorderTopStyle: 'Medium', BorderTopColor: '34495E'
26
+ }},
27
+ { Range: 'A2', Value: '序号', Style: { Bold: true }},
28
+ { Range: 'G2', Value: '数量', Style: { Bold: true }},
29
+ { Range: 'H2', Value: '金额', Style: { Bold: true }},
30
+ { Range: 'A3', Value: 1 },
31
+ { Range: 'G3', Value: 2, DataType: 'Number' },
32
+ { Range: 'H3', Formula: 'G3*1200', Style: { NumberFormat: '#,##0.00' }},
33
+ { Range: 'A8:G8', Value: '合计', Merge: true, Style: { Bold: true, HorizontalAlignment: 'Right' }},
34
+ { Range: 'H8', Formula: 'SUM(H3:H7)', Style: { Bold: true, NumberFormat: '#,##0.00' }},
35
+ { Range: 'A9:D9', Value: '(1) 申请人:张三(已电子签)', Merge: true },
36
+ { Range: 'E9:H9', Value: '(2) 主管意见:同意(已电子签)', Merge: true }
37
+ ],
38
+ MergedRanges: [],
39
+ Columns: [{ Column: 'A', Width: 9 }, { Column: 'H', Width: 16 }],
40
+ Rows: [{ Row: 1, Height: 42 }, { Row: 2, Height: 32 }],
41
+ RowGroups: [{ StartRow: 3, EndRow: 7, Collapsed: false }]
42
+ },
43
+ ExcelOptions: {
44
+ ShowGridLines: false,
45
+ FreezeRows: 2,
46
+ FreezeColumns: 1,
47
+ AutoFilterRange: 'A2:H8',
48
+ PrintOrientation: 'Landscape',
49
+ PaperSize: 'A4',
50
+ FitToWidth: 1,
51
+ PrintArea: 'A1:H10',
52
+ ShowPageNumber: true
53
+ }
54
+ }]
55
+ });
56
+ ```
57
+
58
+ 规则:
59
+
60
+ - `Range` 使用 `A1` / `A1:K15`,不允许跨 Sheet 的 `Sheet1!A1`;`Value/Formula` 写入左上角,样式作用于全部单元格。
61
+ - `Merge:true` 合并当前 `Range`;也可集中传 `MergedRanges`。不完全相同的合并区域不得重叠。
62
+ - `DataType` 可传 `String/Number/Boolean/DateTime/Blank`,不传时按值推断;公式可带或不带 `=`。
63
+ - `Columns` 用列字母或从 1 开始的 `Index`,支持 `Width/Hidden/AutoSize/MinWidth/MaxWidth`;`Rows.Row`、`RowGroups.StartRow/EndRow` 均从 1 开始。
64
+ - 主表/子表使用 `RowGroups` 生成 Excel 原生展开/折叠行,不要只靠缩进文本模拟层级。
65
+ - 先给实际数据块统一网格样式,再用小范围样式叠加标题、表头、合计和外框,可以显著减少 V8 代码重复。
66
+ - 官方完整接口引擎 `export-excel-advanced-demo` 一次导出 5 Sheet,覆盖截图同款申请单、主子表、复杂合并表头、标准表格和边框样式库。
67
+ - 高级布局会为覆盖区域创建真实单元格。不要对整列或百万行套样式;只配置实际使用区域,避免不必要的内存和 CPU。
68
+
69
+ ### 匿名下载与 OnlyOffice 在线预览配套模式
70
+
71
+ 响应文件接口本身可以同时作为浏览器下载地址和 OnlyOffice 文件源:
72
+
73
+ - `export-excel-advanced-demo` 开启【响应文件】,返回 `FileName/ContentType/FileByteBase64`,可配置 `AllowAnonymous=1` 供客户直接下载。
74
+ - `export-excel-advanced-demo-preview` 也开启【响应文件】和【允许匿名】,直接响应同一 `.xlsx`;它的完整 HTTP 地址可以传给 `/online-office?fileUrl=...`。V8 接口不需要先上传 HDFS,也不返回 `FileUrl/OnlineOfficePath` JSON;在线页面会调用后端安全中转,透明缓存到当前租户公有 HDFS 后再交给 OnlyOffice。
75
+ - `fileUrl` 必须整体 URL 编码,同时传 `fileName`(或 `fileType`)让 OnlyOffice 确定类型。
76
+ - 匿名 `fileUrl` 只能是当前平台正式 `ApiBase`,或同端口本地后端可读取的 loopback `/apiengine/...`;路径或 query 必须显式携带当前 `OsClient`,禁止接受任意外部 URL,避免 SSRF。
77
+ - 开发环境传入 `localhost/127.0.0.1` 时,只允许当前同端口后端读取源接口。后端按 URL 与文件名的 SHA-256 使用确定性 `/{OsClient}/office-preview/...` 路径写入公有对象存储,Redis 共享缓存 10 分钟;OnlyOffice 使用公网 `FileServer` 地址。中转限制 50MB、不跟随重定向并校验 Office/PDF 文件头,禁止实现成任意 URL 代理。
78
+ - 匿名链接只能用于可公开数据。敏感数据必须关闭匿名调用、上传私有桶,并要求登录后由 `/api/HDFS/OpenPrivateFile` 审计代理提供临时地址。
79
+
80
+ 配套预览接口核心写法:
81
+
82
+ ```javascript
83
+ var exportResult = V8.ApiEngine.Run('export-excel-advanced-demo', {});
84
+ if (!exportResult || exportResult.Code != 1 || !exportResult.Data || !exportResult.Data.FileByteBase64) {
85
+ V8.Result = exportResult && exportResult.Code != 1
86
+ ? exportResult
87
+ : { Code: 0, Msg: 'Excel 生成失败' };
88
+ return;
89
+ }
90
+ // 当前接口配置:AllowAnonymous=1、ResponseFile=1、StopHttp=0。
91
+ V8.Result = exportResult;
92
+ ```
93
+
94
+ 预览 URL 形式:`/?OsClient=tenant_demo#/online-office?fileUrl=<URL编码后的接口地址>&fileName=示例.xlsx&fileType=xlsx&canEdit=0`。`canEdit` 只是编辑申请,不是授权依据;未登录时即使传 `canEdit=1` 也必须强制只读,并隐藏左侧菜单、顶部导航和页签。公网匿名文件接口应配置频率限制或让导出逻辑足够轻量,不能依赖进程内变量控制并发。
95
+
96
+ <!-- /microi-progressive:chunk -->
97
+ <!-- microi-progressive:chunk id=v8-export-import-005 sha256=401c2cd0a4b9ea45b1709d14277cf71d74ab29dcda72d404f452a0e67b56eddc -->
98
+ ## 多 Sheet Excel 导出
99
+
100
+ `ExcelSheets` 中每项是一张独立工作表,可以使用 `ExcelLayout` 高级布局,也可以传 `ExcelData + ExcelHeader` 标准表格;标准表格还可传 `FormEngineKey`、查询条件等让后端自行查询。两种模式可以在同一工作簿混用。`Sheets` 是兼容别名;新代码统一使用 `ExcelSheets`。
101
+
102
+ ```javascript
103
+ var excelResult = V8.Office.ExportExcel({
104
+ OsClient: V8.OsClient,
105
+ ExcelOptions: {
106
+ DefaultColumnWidth: 14,
107
+ HeaderRowHeight: 28,
108
+ HeaderStyle: { Bold: true, BackgroundColor: 'D9EAF7' }
109
+ },
110
+ ExcelSheets: [
111
+ {
112
+ SheetName: '订单',
113
+ ExcelData: orderList,
114
+ ExcelHeader: [
115
+ { Name: 'OrderNo', Label: '订单号', Component: 'Text', Width: 22 },
116
+ { Name: 'Amount', Label: '金额', Component: 'NumberText', Type: 'decimal', Width: 16, NumberFormat: '#,##0.00' }
117
+ ],
118
+ ExcelOptions: { FreezeHeader: true, AutoFilter: true }
119
+ },
120
+ {
121
+ SheetName: '客户',
122
+ ExcelData: customerList,
123
+ ExcelHeader: [
124
+ { Name: 'Name', Label: '客户名称', Component: 'Text', Width: 24 },
125
+ { Name: 'Phone', Label: '联系电话', Component: 'Text', Width: 18 }
126
+ ],
127
+ ExcelOptions: { DataRowHeight: 22 }
128
+ }
129
+ ]
130
+ });
131
+ if (excelResult.Code !== 1) return excelResult;
132
+
133
+ return {
134
+ Code: 1,
135
+ Data: {
136
+ FileName: '业务数据.xlsx',
137
+ ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
138
+ FileByteBase64: System.Convert.ToBase64String(excelResult.Data)
139
+ }
140
+ };
141
+ ```
142
+
143
+ `SheetName` 会自动处理 Excel 非法字符、31 字符上限和重名。未传 `ExcelHeader` 时,可以在每个 Sheet 中传 `TableId`、`FormEngineKey`、`_Where`、`_OrderBy`、`_PageSize` 等查询参数,并继承外层的 `OsClient`、`TableId`、`_SysMenuId` 等默认值。外层 `ExcelOptions` 也是所有 Sheet 的默认值;Sheet 内的 `ExcelOptions` 只覆盖已传属性。
144
+
145
+ 图片列:`ImgUpload.Multiple=1` 会按最大图片数展开为多列并合并表头;列上的 `Width` 会应用到每个展开列,`DataRowHeight/RowHeight` 控制图片行高。自动列宽会遍历单元格,大批量导出不要对所有列盲目开启。
146
+
147
+ <!-- /microi-progressive:chunk -->
148
+ <!-- microi-progressive:chunk id=v8-export-import-006 sha256=1a74f8359e67ca4b270de414000f8416a7564c1595189c091281d0fea6dd4a45 -->
149
+ ## Word 导出
150
+
151
+ 新代码使用对象参数的 `ExportWord`;`ExportWordText` 继续保留,只用于兼容旧版纯文本场景。Word 的页面边距、图片宽高单位为厘米,字体大小单位为磅。
152
+
153
+ ```javascript
154
+ var wordResult = V8.Office.ExportWord({
155
+ Title: '月度经营报告',
156
+ Subtitle: DateNow('yyyy年MM月'),
157
+ Author: V8.CurrentUser.Name,
158
+ Subject: '经营分析',
159
+ Keywords: '经营,月报',
160
+ PageSize: 'A4', // A4 | Letter
161
+ Orientation: 'Portrait', // Portrait | Landscape
162
+ MarginTop: 2.2,
163
+ MarginRight: 2.0,
164
+ MarginBottom: 2.2,
165
+ MarginLeft: 2.0,
166
+ FontFamily: 'Microsoft YaHei',
167
+ FontSize: 10.5,
168
+ TitleFontSize: 20,
169
+ HeaderText: '吾码经营中心',
170
+ FooterText: '内部资料',
171
+ ShowPageNumber: true,
172
+ Paragraphs: [
173
+ { Text: '本月经营情况总体稳定。', FirstLineIndent: 0.74 },
174
+ { Text: '以下数据未经授权不得外传。', Bold: true, FontColor: 'C00000' }
175
+ ],
176
+ Sections: [{
177
+ Heading: '一、核心指标',
178
+ HeadingLevel: 1,
179
+ Content: '本节展示主要经营指标。',
180
+ Tables: [{
181
+ Title: '指标明细',
182
+ Headers: ['指标', '本月', '同比'],
183
+ Rows: [['销售额', 1280000, '12.5%'], ['订单数', 860, '8.1%']],
184
+ ColumnWidths: [4, 4, 4],
185
+ HeaderBackgroundColor: 'D9EAF7'
186
+ }]
187
+ }],
188
+ Images: [{
189
+ FileByteBase64: chartBase64, // 支持纯 Base64 或 data URI
190
+ FileName: 'chart.png',
191
+ ContentType: 'image/png',
192
+ Width: 15,
193
+ Height: 8,
194
+ Alignment: 'Center',
195
+ Caption: '图 1:趋势分析'
196
+ }]
197
+ });
198
+ if (wordResult.Code !== 1) return wordResult;
199
+ return {
200
+ Code: 1,
201
+ Data: {
202
+ FileName: '月度经营报告.docx',
203
+ ContentType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
204
+ FileByteBase64: System.Convert.ToBase64String(wordResult.Data)
205
+ }
206
+ };
207
+ ```
208
+
209
+ 段落支持 `Text/Alignment/Bold/Italic/Underline/FontFamily/FontSize/FontColor/SpacingBefore/SpacingAfter/LineSpacing/FirstLineIndent/PageBreakBefore`。章节支持 `Heading/HeadingLevel/Content/Paragraphs/Tables/Images/PageBreakBefore`;表格支持 `Headers/Rows/ColumnWidths/Alignment/HeaderBold/HeaderBackgroundColor/HeaderFontColor/BorderColor/FontSize`。
210
+
211
+ <!-- /microi-progressive:chunk -->