You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fesod.apache.org by gi...@apache.org on 2025/09/27 08:03:59 UTC
(fesod) branch gh-pages updated (835d49b1 -> 2de869fd)
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a change to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/fesod.git
discard 835d49b1 deploy: bd4d6f925be4d05d306b576140ace4a60cd7e4d1
new 2de869fd deploy: 07fbf0a94bd52e0d98a18fd99f60a8200052242b
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (835d49b1)
\
N -- N -- N refs/heads/gh-pages (2de869fd)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@fesod.apache.org
For additional commands, e-mail: commits-help@fesod.apache.org
(fesod) 01/01: deploy: 07fbf0a94bd52e0d98a18fd99f60a8200052242b
Posted by gi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/fesod.git
commit 2de869fdac09792651020fdc0f82980172ea36ed
Author: psxjoy <ps...@users.noreply.github.com>
AuthorDate: Sat Sep 27 08:03:54 2025 +0000
deploy: 07fbf0a94bd52e0d98a18fd99f60a8200052242b
---
.asf.yaml | 39 ++
.nojekyll | 0
404.html | 16 +
assets/css/styles.bc7e7220.css | 1 +
...StyleWrite-daf422cde61cef375e3a694c3c64a0cb.png | Bin 0 -> 56825 bytes
...mmentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png | Bin 0 -> 53531 bytes
...ble_result-21cb25bd329df76baf680fd0f94ef43b.png | Bin 0 -> 31232 bytes
...ill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png | Bin 0 -> 32716 bytes
...xHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png | Bin 0 -> 56538 bytes
...eFill_file-ba1c7222a9c310e389363a04777fa279.png | Bin 0 -> 18904 bytes
...ill_result-94a945a637d60e2b0e8c055c83f92d8e.png | Bin 0 -> 49857 bytes
...erterWrite-3246357a06c3ba04afb519b820c19bb2.png | Bin 0 -> 80499 bytes
...ndlerWrite-c05ff79257df5ba72a311793a6e9db60.png | Bin 0 -> 53697 bytes
...cHeadWrite-b33468bf605a16abf195c740309137e3.png | Bin 0 -> 63141 bytes
...cludeWrite-bea7b205e7748fd8b55311383c344df1.png | Bin 0 -> 32442 bytes
...StyleWrite-082ae37a51bd9252f6900ab754387401.png | Bin 0 -> 39403 bytes
...ill_result-6c236308703bda3338b429425b18c2a4.png | Bin 0 -> 14550 bytes
.../imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png | Bin 0 -> 40697 bytes
...indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png | Bin 0 -> 56419 bytes
...ill_result-c126158195ba15c7ad37c143c1f2940b.png | Bin 0 -> 37910 bytes
...mergeWrite-976e024ef4e1613c6dab373937cc56ff.png | Bin 0 -> 48814 bytes
...ModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png | Bin 0 -> 65511 bytes
...eatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png | Bin 0 -> 56050 bytes
...tableWrite-1b3814878a3fc0ef244f767899675190.png | Bin 0 -> 109269 bytes
...hat-public-d649d5c1c7820d27a8fbf279da1a9518.jpg | Bin 0 -> 27895 bytes
...eightWrite-77c049fb68d1ac806c1ba21e82c45f45.png | Bin 0 -> 58569 bytes
...lDataWrite-4dacef4c542b683bc9477c595ba19c4c.png | Bin 0 -> 26177 bytes
assets/js/0179594a.d4d1e81a.js | 1 +
assets/js/11b43341.8d308023.js | 1 +
assets/js/141.39d742dd.js | 1 +
assets/js/1562.1ea87018.js | 1 +
assets/js/1706.fbda918c.js | 1 +
assets/js/1726.60d074ab.js | 1 +
assets/js/17896441.72a406a8.js | 2 +
assets/js/17896441.72a406a8.js.LICENSE.txt | 1 +
assets/js/1874.d9c6043a.js | 1 +
assets/js/1bf466c2.b3b2ded9.js | 1 +
assets/js/224f0d80.de04297d.js | 1 +
assets/js/2774.d7f551ed.js | 1 +
assets/js/2798b208.32694f9f.js | 1 +
assets/js/2903.0dccbc71.js | 1 +
assets/js/299aa024.389a929a.js | 1 +
assets/js/33ed5212.6220037d.js | 1 +
assets/js/3497.b684f39c.js | 1 +
assets/js/3582.71d1712e.js | 1 +
assets/js/3981.ae44cea0.js | 1 +
assets/js/3a5084d4.6d44dcd9.js | 1 +
assets/js/3e8bb567.08dcf233.js | 1 +
assets/js/4051.86786135.js | 1 +
assets/js/4249.9799276f.js | 1 +
assets/js/4273.e570c98a.js | 1 +
assets/js/4326.4529f1bb.js | 1 +
assets/js/4422.7ee629cf.js | 1 +
assets/js/45.8be39409.js | 1 +
assets/js/452acb72.c883213a.js | 1 +
assets/js/4546.c9018ea7.js | 1 +
assets/js/4739.5ae6df50.js | 1 +
assets/js/512a93d9.a07cf858.js | 1 +
assets/js/5373.7c701c42.js | 1 +
assets/js/542af253.10425003.js | 1 +
assets/js/5438.25d23f12.js | 1 +
assets/js/55f30539.577cfe80.js | 1 +
assets/js/5739.e4d0f187.js | 1 +
assets/js/5789.bea20fd6.js | 1 +
assets/js/5e95c892.6659c2ff.js | 1 +
assets/js/6077.4f146110.js | 1 +
assets/js/6261.7a2de081.js | 1 +
assets/js/6282.ea12f5ce.js | 1 +
assets/js/638.4e38c366.js | 2 +
assets/js/638.4e38c366.js.LICENSE.txt | 9 +
assets/js/6381e667.475478c4.js | 1 +
assets/js/6404.f171f043.js | 1 +
assets/js/6771.1772a75c.js | 1 +
assets/js/700664e1.7ceda558.js | 1 +
assets/js/7370.ed1e36a4.js | 1 +
assets/js/7386.6f41cd6b.js | 1 +
assets/js/761d52bb.47bcb700.js | 1 +
assets/js/8055.3e320c96.js | 1 +
assets/js/8169.efa741e1.js | 1 +
assets/js/8183afd3.32ee477a.js | 1 +
assets/js/81c2829c.3c7cb224.js | 1 +
assets/js/8215.af7b1cee.js | 1 +
assets/js/8245.8c3a160f.js | 1 +
assets/js/8454.dfe41403.js | 1 +
assets/js/84c84ccb.8c225f2b.js | 1 +
assets/js/8868.75a81dea.js | 1 +
assets/js/8bddb7f1.4ba01e99.js | 1 +
assets/js/9076.feb860c8.js | 1 +
assets/js/9294.4210ac81.js | 1 +
assets/js/9312.8b0e39cd.js | 1 +
assets/js/939f94eb.a744d8d6.js | 1 +
assets/js/9402.dfe044b9.js | 1 +
assets/js/9629.3431bc5c.js | 1 +
assets/js/9646.4c6a489b.js | 1 +
assets/js/9dc5a89b.984d75b4.js | 1 +
assets/js/a4b4544e.0d568963.js | 1 +
assets/js/a7456010.7b4b0a20.js | 1 +
assets/js/a7bd4aaa.8584244c.js | 1 +
assets/js/a94703ab.d8dfe806.js | 1 +
assets/js/aada36dd.b5bc9b6d.js | 1 +
assets/js/aba21aa0.9ac6642b.js | 1 +
assets/js/b8958f49.393cb7c6.js | 1 +
assets/js/c4f5d8e4.4559eaca.js | 1 +
assets/js/c639369e.ae534699.js | 1 +
assets/js/cabbf3d9.7b0bd76f.js | 1 +
assets/js/cf1fd729.51272651.js | 1 +
assets/js/dd53d751.7b9f66a5.js | 1 +
assets/js/e0719818.4f1a2df1.js | 1 +
assets/js/e2f5eafd.bc508210.js | 1 +
assets/js/ecc2f85f.bfedb315.js | 1 +
assets/js/ee1b4450.08970eb2.js | 1 +
assets/js/eece2e17.af43f87d.js | 1 +
assets/js/f1f22f0f.1701aaf0.js | 1 +
assets/js/f37f84bf.441510d4.js | 1 +
assets/js/main.9880acfb.js | 2 +
assets/js/main.9880acfb.js.LICENSE.txt | 61 +++
assets/js/runtime~main.cdb58fe4.js | 1 +
community/bug-report/index.html | 62 ++++
community/contact/index.html | 24 ++
community/contribution/index.html | 155 ++++++++
community/development/index.html | 46 +++
docs/fill/index.html | 78 ++++
docs/help/annotation/index.html | 104 ++++++
docs/help/core-class/index.html | 344 +++++++++++++++++
docs/help/faq/index.html | 264 +++++++++++++
docs/help/large-data/index.html | 33 ++
docs/help/parameter/index.html | 413 +++++++++++++++++++++
docs/index.html | 33 ++
docs/quickstart/guide/index.html | 65 ++++
docs/quickstart/simple-example/index.html | 22 ++
docs/read/converter/index.html | 26 ++
docs/read/csv/index.html | 92 +++++
docs/read/exception/index.html | 23 ++
docs/read/extra/index.html | 40 ++
docs/read/head/index.html | 36 ++
docs/read/num-rows/index.html | 28 ++
docs/read/pojo/index.html | 39 ++
docs/read/sheet/index.html | 39 ++
docs/read/simple/index.html | 61 +++
docs/read/spring/index.html | 42 +++
docs/write/csv/index.html | 91 +++++
docs/write/extra/index.html | 73 ++++
docs/write/format/index.html | 26 ++
docs/write/head/index.html | 34 ++
docs/write/image/index.html | 26 ++
docs/write/pojo/index.html | 45 +++
docs/write/sheet/index.html | 40 ++
docs/write/simple/index.html | 34 ++
docs/write/spring/index.html | 22 ++
docs/write/style/index.html | 59 +++
img/docs/fill/complexFillWithTable_file.png | Bin 0 -> 8097 bytes
img/docs/fill/complexFillWithTable_result.png | Bin 0 -> 31232 bytes
img/docs/fill/complexFill_file.png | Bin 0 -> 9104 bytes
img/docs/fill/complexFill_result.png | Bin 0 -> 32716 bytes
img/docs/fill/compositeFill_file.png | Bin 0 -> 18904 bytes
img/docs/fill/compositeFill_result.png | Bin 0 -> 49857 bytes
img/docs/fill/horizontalFill_file.png | Bin 0 -> 7897 bytes
img/docs/fill/horizontalFill_result.png | Bin 0 -> 14550 bytes
img/docs/fill/listFill_file.png | Bin 0 -> 4782 bytes
img/docs/fill/listFill_result.png | Bin 0 -> 37910 bytes
img/docs/fill/simpleFill_file.png | Bin 0 -> 8953 bytes
img/docs/fill/simpleFill_result.png | Bin 0 -> 6655 bytes
img/docs/wechat-public.jpg | Bin 0 -> 27895 bytes
img/docs/write/annotationStyleWrite.png | Bin 0 -> 56825 bytes
img/docs/write/commentWrite.png | Bin 0 -> 53531 bytes
img/docs/write/complexHeadWrite.png | Bin 0 -> 56538 bytes
img/docs/write/converterWrite.png | Bin 0 -> 80499 bytes
img/docs/write/customHandlerWrite.png | Bin 0 -> 53697 bytes
img/docs/write/dynamicHeadWrite.png | Bin 0 -> 63141 bytes
img/docs/write/excludeOrIncludeWrite.png | Bin 0 -> 32442 bytes
img/docs/write/handlerStyleWrite.png | Bin 0 -> 39403 bytes
img/docs/write/ignore_row.png | Bin 0 -> 31100 bytes
img/docs/write/imgWrite.png | Bin 0 -> 40697 bytes
img/docs/write/indexRow.png | Bin 0 -> 56637 bytes
img/docs/write/indexWrite.png | Bin 0 -> 56419 bytes
img/docs/write/mergeWrite.png | Bin 0 -> 48814 bytes
img/docs/write/noModelWrite.png | Bin 0 -> 65511 bytes
img/docs/write/repeatedWrite.png | Bin 0 -> 56050 bytes
img/docs/write/tableWrite.png | Bin 0 -> 109269 bytes
img/docs/write/templateWrite.png | Bin 0 -> 71970 bytes
img/docs/write/widthAndHeightWrite.png | Bin 0 -> 58569 bytes
img/docs/write/writeCellDataWrite.png | Bin 0 -> 26177 bytes
img/favicon.ico | Bin 0 -> 23102 bytes
img/github_icon.svg | 21 ++
img/index/undraw_files.svg | 1 +
img/index/undraw_programming.svg | 125 +++++++
img/index/undraw_spreadsheet.svg | 1 +
img/logo.svg | 36 ++
index.html | 16 +
sitemap.xml | 1 +
zh-cn/.nojekyll | 0
zh-cn/404.html | 16 +
zh-cn/assets/css/styles.bc7e7220.css | 1 +
...StyleWrite-daf422cde61cef375e3a694c3c64a0cb.png | Bin 0 -> 56825 bytes
...mmentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png | Bin 0 -> 53531 bytes
...ble_result-21cb25bd329df76baf680fd0f94ef43b.png | Bin 0 -> 31232 bytes
...ill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png | Bin 0 -> 32716 bytes
...xHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png | Bin 0 -> 56538 bytes
...eFill_file-ba1c7222a9c310e389363a04777fa279.png | Bin 0 -> 18904 bytes
...ill_result-94a945a637d60e2b0e8c055c83f92d8e.png | Bin 0 -> 49857 bytes
...erterWrite-3246357a06c3ba04afb519b820c19bb2.png | Bin 0 -> 80499 bytes
...ndlerWrite-c05ff79257df5ba72a311793a6e9db60.png | Bin 0 -> 53697 bytes
...cHeadWrite-b33468bf605a16abf195c740309137e3.png | Bin 0 -> 63141 bytes
...cludeWrite-bea7b205e7748fd8b55311383c344df1.png | Bin 0 -> 32442 bytes
...StyleWrite-082ae37a51bd9252f6900ab754387401.png | Bin 0 -> 39403 bytes
...ill_result-6c236308703bda3338b429425b18c2a4.png | Bin 0 -> 14550 bytes
.../imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png | Bin 0 -> 40697 bytes
...indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png | Bin 0 -> 56419 bytes
...ill_result-c126158195ba15c7ad37c143c1f2940b.png | Bin 0 -> 37910 bytes
...mergeWrite-976e024ef4e1613c6dab373937cc56ff.png | Bin 0 -> 48814 bytes
...ModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png | Bin 0 -> 65511 bytes
...eatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png | Bin 0 -> 56050 bytes
...tableWrite-1b3814878a3fc0ef244f767899675190.png | Bin 0 -> 109269 bytes
...hat-public-d649d5c1c7820d27a8fbf279da1a9518.jpg | Bin 0 -> 27895 bytes
...eightWrite-77c049fb68d1ac806c1ba21e82c45f45.png | Bin 0 -> 58569 bytes
...lDataWrite-4dacef4c542b683bc9477c595ba19c4c.png | Bin 0 -> 26177 bytes
zh-cn/assets/js/0e7f7048.91b77052.js | 1 +
zh-cn/assets/js/12751524.33ee73b8.js | 1 +
zh-cn/assets/js/141.39d742dd.js | 1 +
zh-cn/assets/js/1562.1ea87018.js | 1 +
zh-cn/assets/js/162d40fa.3db55775.js | 1 +
zh-cn/assets/js/1706.fbda918c.js | 1 +
zh-cn/assets/js/1726.60d074ab.js | 1 +
zh-cn/assets/js/17896441.72a406a8.js | 2 +
zh-cn/assets/js/17896441.72a406a8.js.LICENSE.txt | 1 +
zh-cn/assets/js/1874.d9c6043a.js | 1 +
zh-cn/assets/js/1ba16981.db7a822a.js | 1 +
zh-cn/assets/js/1d61c132.9c807cab.js | 1 +
zh-cn/assets/js/23f7ca76.96017605.js | 1 +
zh-cn/assets/js/2774.d7f551ed.js | 1 +
zh-cn/assets/js/2810e9cc.e43acbce.js | 1 +
zh-cn/assets/js/2903.0dccbc71.js | 1 +
zh-cn/assets/js/2fc01e78.2815a4f7.js | 1 +
zh-cn/assets/js/344239d7.582235f0.js | 1 +
zh-cn/assets/js/3497.b684f39c.js | 1 +
zh-cn/assets/js/3582.71d1712e.js | 1 +
zh-cn/assets/js/3981.ae44cea0.js | 1 +
zh-cn/assets/js/3adce689.62b13e5d.js | 1 +
zh-cn/assets/js/4051.86786135.js | 1 +
zh-cn/assets/js/4249.9799276f.js | 1 +
zh-cn/assets/js/4273.e570c98a.js | 1 +
zh-cn/assets/js/4326.4529f1bb.js | 1 +
zh-cn/assets/js/4422.7ee629cf.js | 1 +
zh-cn/assets/js/45.8be39409.js | 1 +
zh-cn/assets/js/4546.c9018ea7.js | 1 +
zh-cn/assets/js/46d6cbfe.8c5eb8eb.js | 1 +
zh-cn/assets/js/4739.5ae6df50.js | 1 +
zh-cn/assets/js/4ccddeda.b11e1f12.js | 1 +
zh-cn/assets/js/5373.7c701c42.js | 1 +
zh-cn/assets/js/5438.25d23f12.js | 1 +
zh-cn/assets/js/5739.e4d0f187.js | 1 +
zh-cn/assets/js/5789.bea20fd6.js | 1 +
zh-cn/assets/js/5e95c892.6659c2ff.js | 1 +
zh-cn/assets/js/6077.4f146110.js | 1 +
zh-cn/assets/js/6261.7a2de081.js | 1 +
zh-cn/assets/js/6282.ea12f5ce.js | 1 +
zh-cn/assets/js/638.4e38c366.js | 2 +
zh-cn/assets/js/638.4e38c366.js.LICENSE.txt | 9 +
zh-cn/assets/js/6404.f171f043.js | 1 +
zh-cn/assets/js/6771.1772a75c.js | 1 +
zh-cn/assets/js/6c661db7.3091bbea.js | 1 +
zh-cn/assets/js/6f28ad3d.92801852.js | 1 +
zh-cn/assets/js/7370.b9ef7192.js | 1 +
zh-cn/assets/js/7386.6f41cd6b.js | 1 +
zh-cn/assets/js/7575123d.b0caef6b.js | 1 +
zh-cn/assets/js/76ebeaa2.a22b5846.js | 1 +
zh-cn/assets/js/7bacda60.9dfa967d.js | 1 +
zh-cn/assets/js/7c8dfedd.1ca2ad6c.js | 1 +
zh-cn/assets/js/7e8c4ece.853f495c.js | 1 +
zh-cn/assets/js/7ed646c5.db6f2288.js | 1 +
zh-cn/assets/js/8055.3e320c96.js | 1 +
zh-cn/assets/js/8169.efa741e1.js | 1 +
zh-cn/assets/js/8215.af7b1cee.js | 1 +
zh-cn/assets/js/8245.8c3a160f.js | 1 +
zh-cn/assets/js/8454.dfe41403.js | 1 +
zh-cn/assets/js/8868.75a81dea.js | 1 +
zh-cn/assets/js/8d4cdedc.a85086c8.js | 1 +
zh-cn/assets/js/9076.feb860c8.js | 1 +
zh-cn/assets/js/91fb5ccc.9f7f0aa6.js | 1 +
zh-cn/assets/js/9294.4210ac81.js | 1 +
zh-cn/assets/js/9312.8b0e39cd.js | 1 +
zh-cn/assets/js/9402.dfe044b9.js | 1 +
zh-cn/assets/js/9629.3431bc5c.js | 1 +
zh-cn/assets/js/9646.4c6a489b.js | 1 +
zh-cn/assets/js/9a0089cf.1dc0ae48.js | 1 +
zh-cn/assets/js/9d584252.213093bb.js | 1 +
zh-cn/assets/js/a4586aa9.ed4234c5.js | 1 +
zh-cn/assets/js/a7456010.7b4b0a20.js | 1 +
zh-cn/assets/js/a7bd4aaa.8584244c.js | 1 +
zh-cn/assets/js/a94703ab.d8dfe806.js | 1 +
zh-cn/assets/js/aba21aa0.9ac6642b.js | 1 +
zh-cn/assets/js/b1c23739.cfc7693f.js | 1 +
zh-cn/assets/js/b76e6c4a.ad372fa2.js | 1 +
zh-cn/assets/js/b8ed1609.dfcdb302.js | 1 +
zh-cn/assets/js/c4f5d8e4.4559eaca.js | 1 +
zh-cn/assets/js/c6ce0837.6ad57838.js | 1 +
zh-cn/assets/js/c96ca1a6.3c431974.js | 1 +
zh-cn/assets/js/cf8446db.4a22a853.js | 1 +
zh-cn/assets/js/d5087300.a8b073d1.js | 1 +
zh-cn/assets/js/ddc7dbcd.45f12fa5.js | 1 +
zh-cn/assets/js/e0719818.4f1a2df1.js | 1 +
zh-cn/assets/js/e7985601.99a58bca.js | 1 +
zh-cn/assets/js/e946020f.3ec9df4c.js | 1 +
zh-cn/assets/js/main.dad80087.js | 2 +
zh-cn/assets/js/main.dad80087.js.LICENSE.txt | 61 +++
zh-cn/assets/js/runtime~main.4bcce36e.js | 1 +
zh-cn/community/bug-report/index.html | 61 +++
zh-cn/community/contact/index.html | 24 ++
zh-cn/community/contribution/index.html | 155 ++++++++
zh-cn/community/development/index.html | 46 +++
zh-cn/docs/fill/index.html | 78 ++++
zh-cn/docs/help/annotation/index.html | 104 ++++++
zh-cn/docs/help/core-class/index.html | 353 ++++++++++++++++++
zh-cn/docs/help/faq/index.html | 264 +++++++++++++
zh-cn/docs/help/large-data/index.html | 31 ++
zh-cn/docs/help/parameter/index.html | 413 +++++++++++++++++++++
zh-cn/docs/index.html | 33 ++
zh-cn/docs/quickstart/guide/index.html | 63 ++++
zh-cn/docs/quickstart/simple-example/index.html | 22 ++
zh-cn/docs/read/converter/index.html | 26 ++
zh-cn/docs/read/csv/index.html | 90 +++++
zh-cn/docs/read/exception/index.html | 23 ++
zh-cn/docs/read/extra/index.html | 40 ++
zh-cn/docs/read/head/index.html | 36 ++
zh-cn/docs/read/num-rows/index.html | 26 ++
zh-cn/docs/read/pojo/index.html | 39 ++
zh-cn/docs/read/sheet/index.html | 38 ++
zh-cn/docs/read/simple/index.html | 61 +++
zh-cn/docs/read/spring/index.html | 40 ++
zh-cn/docs/write/csv/index.html | 90 +++++
zh-cn/docs/write/extra/index.html | 73 ++++
zh-cn/docs/write/format/index.html | 26 ++
zh-cn/docs/write/head/index.html | 34 ++
zh-cn/docs/write/image/index.html | 26 ++
zh-cn/docs/write/pojo/index.html | 45 +++
zh-cn/docs/write/sheet/index.html | 40 ++
zh-cn/docs/write/simple/index.html | 33 ++
zh-cn/docs/write/spring/index.html | 22 ++
zh-cn/docs/write/style/index.html | 59 +++
zh-cn/img/docs/fill/complexFillWithTable_file.png | Bin 0 -> 8097 bytes
.../img/docs/fill/complexFillWithTable_result.png | Bin 0 -> 31232 bytes
zh-cn/img/docs/fill/complexFill_file.png | Bin 0 -> 9104 bytes
zh-cn/img/docs/fill/complexFill_result.png | Bin 0 -> 32716 bytes
zh-cn/img/docs/fill/compositeFill_file.png | Bin 0 -> 18904 bytes
zh-cn/img/docs/fill/compositeFill_result.png | Bin 0 -> 49857 bytes
zh-cn/img/docs/fill/horizontalFill_file.png | Bin 0 -> 7897 bytes
zh-cn/img/docs/fill/horizontalFill_result.png | Bin 0 -> 14550 bytes
zh-cn/img/docs/fill/listFill_file.png | Bin 0 -> 4782 bytes
zh-cn/img/docs/fill/listFill_result.png | Bin 0 -> 37910 bytes
zh-cn/img/docs/fill/simpleFill_file.png | Bin 0 -> 8953 bytes
zh-cn/img/docs/fill/simpleFill_result.png | Bin 0 -> 6655 bytes
zh-cn/img/docs/wechat-public.jpg | Bin 0 -> 27895 bytes
zh-cn/img/docs/write/annotationStyleWrite.png | Bin 0 -> 56825 bytes
zh-cn/img/docs/write/commentWrite.png | Bin 0 -> 53531 bytes
zh-cn/img/docs/write/complexHeadWrite.png | Bin 0 -> 56538 bytes
zh-cn/img/docs/write/converterWrite.png | Bin 0 -> 80499 bytes
zh-cn/img/docs/write/customHandlerWrite.png | Bin 0 -> 53697 bytes
zh-cn/img/docs/write/dynamicHeadWrite.png | Bin 0 -> 63141 bytes
zh-cn/img/docs/write/excludeOrIncludeWrite.png | Bin 0 -> 32442 bytes
zh-cn/img/docs/write/handlerStyleWrite.png | Bin 0 -> 39403 bytes
zh-cn/img/docs/write/ignore_row.png | Bin 0 -> 31100 bytes
zh-cn/img/docs/write/imgWrite.png | Bin 0 -> 40697 bytes
zh-cn/img/docs/write/indexRow.png | Bin 0 -> 56637 bytes
zh-cn/img/docs/write/indexWrite.png | Bin 0 -> 56419 bytes
zh-cn/img/docs/write/mergeWrite.png | Bin 0 -> 48814 bytes
zh-cn/img/docs/write/noModelWrite.png | Bin 0 -> 65511 bytes
zh-cn/img/docs/write/repeatedWrite.png | Bin 0 -> 56050 bytes
zh-cn/img/docs/write/tableWrite.png | Bin 0 -> 109269 bytes
zh-cn/img/docs/write/templateWrite.png | Bin 0 -> 71970 bytes
zh-cn/img/docs/write/widthAndHeightWrite.png | Bin 0 -> 58569 bytes
zh-cn/img/docs/write/writeCellDataWrite.png | Bin 0 -> 26177 bytes
zh-cn/img/favicon.ico | Bin 0 -> 23102 bytes
zh-cn/img/github_icon.svg | 21 ++
zh-cn/img/index/undraw_files.svg | 1 +
zh-cn/img/index/undraw_programming.svg | 125 +++++++
zh-cn/img/index/undraw_spreadsheet.svg | 1 +
zh-cn/img/logo.svg | 36 ++
zh-cn/index.html | 16 +
zh-cn/sitemap.xml | 1 +
379 files changed, 5830 insertions(+)
diff --git a/.asf.yaml b/.asf.yaml
new file mode 100644
index 00000000..6e82fe56
--- /dev/null
+++ b/.asf.yaml
@@ -0,0 +1,39 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# All configurations could be found here: https://github.com/apache/infrastructure-asfyaml/
+
+github:
+ description: "Fast. Easy. Done. Processing Excels without worrying about large files causing OOM."
+ homepage: https://fesod.apache.org
+ labels:
+ - java
+ - excel
+ - office
+ enabled_merge_buttons:
+ squash: true
+ merge: false
+ rebase: false
+
+notifications:
+ commits: commits@fesod.apache.org
+ issues: commits@fesod.apache.org
+ pullrequests: commits@fesod.apache.org
+ discussions: dev@fesod.apache.org
+
+publish:
+ whoami: gh-pages
diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 00000000..e69de29b
diff --git a/404.html b/404.html
new file mode 100644
index 00000000..138cb496
--- /dev/null
+++ b/404.html
@@ -0,0 +1,16 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="plugin-native plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Page Not Found | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/404.html/"><meta data-rh="true" pro [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/assets/css/styles.bc7e7220.css b/assets/css/styles.bc7e7220.css
new file mode 100644
index 00000000..d39322a3
--- /dev/null
+++ b/assets/css/styles.bc7e7220.css
@@ -0,0 +1 @@
+@layer docusaurus.infima,docusaurus.theme-common,docusaurus.theme-classic,docusaurus.core,docusaurus.plugin-debug,docusaurus.theme-mermaid,docusaurus.theme-live-codeblock,docusaurus.theme-search-algolia.docsearch,docusaurus.theme-search-algolia;@layer docusaurus.infima{.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown [...]
\ No newline at end of file
diff --git a/assets/images/annotationStyleWrite-daf422cde61cef375e3a694c3c64a0cb.png b/assets/images/annotationStyleWrite-daf422cde61cef375e3a694c3c64a0cb.png
new file mode 100644
index 00000000..6aeb9fb5
Binary files /dev/null and b/assets/images/annotationStyleWrite-daf422cde61cef375e3a694c3c64a0cb.png differ
diff --git a/assets/images/commentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png b/assets/images/commentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png
new file mode 100644
index 00000000..9ffcb125
Binary files /dev/null and b/assets/images/commentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png differ
diff --git a/assets/images/complexFillWithTable_result-21cb25bd329df76baf680fd0f94ef43b.png b/assets/images/complexFillWithTable_result-21cb25bd329df76baf680fd0f94ef43b.png
new file mode 100644
index 00000000..dc27781a
Binary files /dev/null and b/assets/images/complexFillWithTable_result-21cb25bd329df76baf680fd0f94ef43b.png differ
diff --git a/assets/images/complexFill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png b/assets/images/complexFill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png
new file mode 100644
index 00000000..0a9d289b
Binary files /dev/null and b/assets/images/complexFill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png differ
diff --git a/assets/images/complexHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png b/assets/images/complexHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png
new file mode 100644
index 00000000..e52d0960
Binary files /dev/null and b/assets/images/complexHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png differ
diff --git a/assets/images/compositeFill_file-ba1c7222a9c310e389363a04777fa279.png b/assets/images/compositeFill_file-ba1c7222a9c310e389363a04777fa279.png
new file mode 100644
index 00000000..0e9f099f
Binary files /dev/null and b/assets/images/compositeFill_file-ba1c7222a9c310e389363a04777fa279.png differ
diff --git a/assets/images/compositeFill_result-94a945a637d60e2b0e8c055c83f92d8e.png b/assets/images/compositeFill_result-94a945a637d60e2b0e8c055c83f92d8e.png
new file mode 100644
index 00000000..316a0022
Binary files /dev/null and b/assets/images/compositeFill_result-94a945a637d60e2b0e8c055c83f92d8e.png differ
diff --git a/assets/images/converterWrite-3246357a06c3ba04afb519b820c19bb2.png b/assets/images/converterWrite-3246357a06c3ba04afb519b820c19bb2.png
new file mode 100644
index 00000000..90196e1a
Binary files /dev/null and b/assets/images/converterWrite-3246357a06c3ba04afb519b820c19bb2.png differ
diff --git a/assets/images/customHandlerWrite-c05ff79257df5ba72a311793a6e9db60.png b/assets/images/customHandlerWrite-c05ff79257df5ba72a311793a6e9db60.png
new file mode 100644
index 00000000..f263d02a
Binary files /dev/null and b/assets/images/customHandlerWrite-c05ff79257df5ba72a311793a6e9db60.png differ
diff --git a/assets/images/dynamicHeadWrite-b33468bf605a16abf195c740309137e3.png b/assets/images/dynamicHeadWrite-b33468bf605a16abf195c740309137e3.png
new file mode 100644
index 00000000..68430370
Binary files /dev/null and b/assets/images/dynamicHeadWrite-b33468bf605a16abf195c740309137e3.png differ
diff --git a/assets/images/excludeOrIncludeWrite-bea7b205e7748fd8b55311383c344df1.png b/assets/images/excludeOrIncludeWrite-bea7b205e7748fd8b55311383c344df1.png
new file mode 100644
index 00000000..8911e5fb
Binary files /dev/null and b/assets/images/excludeOrIncludeWrite-bea7b205e7748fd8b55311383c344df1.png differ
diff --git a/assets/images/handlerStyleWrite-082ae37a51bd9252f6900ab754387401.png b/assets/images/handlerStyleWrite-082ae37a51bd9252f6900ab754387401.png
new file mode 100644
index 00000000..7f6248f8
Binary files /dev/null and b/assets/images/handlerStyleWrite-082ae37a51bd9252f6900ab754387401.png differ
diff --git a/assets/images/horizontalFill_result-6c236308703bda3338b429425b18c2a4.png b/assets/images/horizontalFill_result-6c236308703bda3338b429425b18c2a4.png
new file mode 100644
index 00000000..e88053d0
Binary files /dev/null and b/assets/images/horizontalFill_result-6c236308703bda3338b429425b18c2a4.png differ
diff --git a/assets/images/imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png b/assets/images/imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png
new file mode 100644
index 00000000..9ad021d5
Binary files /dev/null and b/assets/images/imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png differ
diff --git a/assets/images/indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png b/assets/images/indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png
new file mode 100644
index 00000000..238d9db8
Binary files /dev/null and b/assets/images/indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png differ
diff --git a/assets/images/listFill_result-c126158195ba15c7ad37c143c1f2940b.png b/assets/images/listFill_result-c126158195ba15c7ad37c143c1f2940b.png
new file mode 100644
index 00000000..4cdd60d4
Binary files /dev/null and b/assets/images/listFill_result-c126158195ba15c7ad37c143c1f2940b.png differ
diff --git a/assets/images/mergeWrite-976e024ef4e1613c6dab373937cc56ff.png b/assets/images/mergeWrite-976e024ef4e1613c6dab373937cc56ff.png
new file mode 100644
index 00000000..0249c4f6
Binary files /dev/null and b/assets/images/mergeWrite-976e024ef4e1613c6dab373937cc56ff.png differ
diff --git a/assets/images/noModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png b/assets/images/noModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png
new file mode 100644
index 00000000..6a66c62d
Binary files /dev/null and b/assets/images/noModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png differ
diff --git a/assets/images/repeatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png b/assets/images/repeatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png
new file mode 100644
index 00000000..df324c96
Binary files /dev/null and b/assets/images/repeatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png differ
diff --git a/assets/images/tableWrite-1b3814878a3fc0ef244f767899675190.png b/assets/images/tableWrite-1b3814878a3fc0ef244f767899675190.png
new file mode 100644
index 00000000..e1b6f2a8
Binary files /dev/null and b/assets/images/tableWrite-1b3814878a3fc0ef244f767899675190.png differ
diff --git a/assets/images/wechat-public-d649d5c1c7820d27a8fbf279da1a9518.jpg b/assets/images/wechat-public-d649d5c1c7820d27a8fbf279da1a9518.jpg
new file mode 100644
index 00000000..52255238
Binary files /dev/null and b/assets/images/wechat-public-d649d5c1c7820d27a8fbf279da1a9518.jpg differ
diff --git a/assets/images/widthAndHeightWrite-77c049fb68d1ac806c1ba21e82c45f45.png b/assets/images/widthAndHeightWrite-77c049fb68d1ac806c1ba21e82c45f45.png
new file mode 100644
index 00000000..167b5511
Binary files /dev/null and b/assets/images/widthAndHeightWrite-77c049fb68d1ac806c1ba21e82c45f45.png differ
diff --git a/assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png b/assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png
new file mode 100644
index 00000000..54b2666f
Binary files /dev/null and b/assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png differ
diff --git a/assets/js/0179594a.d4d1e81a.js b/assets/js/0179594a.d4d1e81a.js
new file mode 100644
index 00000000..7d5702e7
--- /dev/null
+++ b/assets/js/0179594a.d4d1e81a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5729],{508:(e,n,t)=>{t.d(n,{R:()=>c,x:()=>r});var o=t(9729);const i={},a=o.createContext(i);function c(e){const n=o.useContext(a);return o.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),o.createElement(a.Provider,{value:n},e.children)}},8656:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/assets/js/11b43341.8d308023.js b/assets/js/11b43341.8d308023.js
new file mode 100644
index 00000000..97b64a51
--- /dev/null
+++ b/assets/js/11b43341.8d308023.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2256],{5293:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","href":"/docs/","label":"Introduction","docId":"introduce","unlisted":false},{"type":"category","label":"Quick Start","items":[{"type":"link","href":"/docs/quickstart/guide","lab [...]
\ No newline at end of file
diff --git a/assets/js/141.39d742dd.js b/assets/js/141.39d742dd.js
new file mode 100644
index 00000000..3dadcd5f
--- /dev/null
+++ b/assets/js/141.39d742dd.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[141],{141:(e,r,s)=>{s.d(r,{diagram:()=>i});var a=s(9076),t=(s(7055),s(8943),s(5458),s(6659),s(9142),s(9124),s(7440),s(5611),s(3637),s(2133),s(1808),s(7693),s(1595)),i={parser:a._$,get db(){return new a.NM},renderer:a.Lh,styles:a.tM,init:(0,t.K2)(e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/assets/js/1562.1ea87018.js b/assets/js/1562.1ea87018.js
new file mode 100644
index 00000000..1d92dc66
--- /dev/null
+++ b/assets/js/1562.1ea87018.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1562],{1562:(e,t,s)=>{s.d(t,{diagram:()=>E});var i=s(8943),n=s(5458),r=s(6659),a=(s(9142),s(9124),s(7440),s(5611),s(3637),s(2133),s(1808)),l=s(7693),c=s(1595),o=function(){var e=(0,c.K2)(function(e,t,s,i){for(s=s||{},i=e.length;i--;s[e[i]]=t);return s},"o"),t=[1,3],s=[1,4],i=[1,5],n=[1,6],r=[5,6,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],a=[1,22],l=[2,7],o=[1,26],h=[1,27],u=[1,28],y=[1,29],m=[1,33 [...]
\ No newline at end of file
diff --git a/assets/js/1706.fbda918c.js b/assets/js/1706.fbda918c.js
new file mode 100644
index 00000000..5fdfe416
--- /dev/null
+++ b/assets/js/1706.fbda918c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1706],{1706:(t,n,e)=>{e.d(n,{diagram:()=>ct});var i=e(7693),s=e(1595),r=e(3170);function o(t,n){let e;if(void 0===n)for(const i of t)null!=i&&(e>i||void 0===e&&i>=i)&&(e=i);else{let i=-1;for(let s of t)null!=(s=n(s,++i,t))&&(e>s||void 0===e&&s>=s)&&(e=s)}return e}function c(t){return t.target.depth}function l(t,n){return t.sourceLinks.length?t.depth:n-1}function a(t,n){let e=0;if(void 0===n)for(let i of t)(i=+i)& [...]
\ No newline at end of file
diff --git a/assets/js/1726.60d074ab.js b/assets/js/1726.60d074ab.js
new file mode 100644
index 00000000..7ceadfba
--- /dev/null
+++ b/assets/js/1726.60d074ab.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1726],{1726:(e,t,i)=>{i.r(t),i.d(t,{default:()=>h});i(9729);var n=i(7268),s=i(5327),o=i(242),r=i(2432),a=i(5813);function h(){const e=(0,n.T)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(s.be,{title:e}),(0,a.jsx)(o.A,{children:(0,a.jsx)(r.A,{})})]})}},2432:(e,t,i)=>{i.d(t,{A:()=>a});i(9729);var n=i(3526),s=i(7268),o=i(1954),r=i(5813);function a({className: [...]
\ No newline at end of file
diff --git a/assets/js/17896441.72a406a8.js b/assets/js/17896441.72a406a8.js
new file mode 100644
index 00000000..da30907c
--- /dev/null
+++ b/assets/js/17896441.72a406a8.js
@@ -0,0 +1,2 @@
+/*! For license information please see 17896441.72a406a8.js.LICENSE.txt */
+(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8401],{130:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var n=r(6727),i="object"==typeof exports&&exports&&!exports.nodeType&&exports,a=i&&"object"==typeof module&&module&&!module.nodeType&&module,o=a&&a.exports===i&&n.A.process;const s=function(){try{var t=a&&a.require&&a.require("util").types;return t||o&&o.binding&&o.binding("util")}catch(e){}}()},150:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});const n=function(t,e){return function [...]
\ No newline at end of file
diff --git a/assets/js/17896441.72a406a8.js.LICENSE.txt b/assets/js/17896441.72a406a8.js.LICENSE.txt
new file mode 100644
index 00000000..3c2b5001
--- /dev/null
+++ b/assets/js/17896441.72a406a8.js.LICENSE.txt
@@ -0,0 +1 @@
+/*! @license DOMPurify 3.2.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.7/LICENSE */
diff --git a/assets/js/1874.d9c6043a.js b/assets/js/1874.d9c6043a.js
new file mode 100644
index 00000000..8228b0a6
--- /dev/null
+++ b/assets/js/1874.d9c6043a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1874],{171:(t,n,r)=>{r.d(n,{A:()=>s});var e=r(6691),o=r(9532),c=r(3924),u=r(9584),a=r(256),i=r(6687),f=r(2916);const A=a.A&&1/(0,f.A)(new a.A([,-0]))[1]==1/0?function(t){return new a.A(t)}:i.A;const s=function(t,n,r){var a=-1,i=o.A,s=t.length,v=!0,l=[],b=l;if(r)v=!1,i=c.A;else if(s>=200){var d=n?null:A(t);if(d)return(0,f.A)(d);v=!1,i=u.A,b=new e.A}else b=n?[]:l;t:for(;++a<s;){var j=t[a],p=n?n(j):j;if(j=r||0!==j?j [...]
\ No newline at end of file
diff --git a/assets/js/1bf466c2.b3b2ded9.js b/assets/js/1bf466c2.b3b2ded9.js
new file mode 100644
index 00000000..44696607
--- /dev/null
+++ b/assets/js/1bf466c2.b3b2ded9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2583],{508:(e,n,t)=>{t.d(n,{R:()=>l,x:()=>r});var o=t(9729);const s={},i=o.createContext(s);function l(e){const n=o.useContext(i);return o.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),o.createElement(i.Provider,{value:n},e.children)}},2281:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/assets/js/224f0d80.de04297d.js b/assets/js/224f0d80.de04297d.js
new file mode 100644
index 00000000..450f93fd
--- /dev/null
+++ b/assets/js/224f0d80.de04297d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6913],{508:(e,n,t)=>{t.d(n,{R:()=>d,x:()=>o});var a=t(9729);const s={},r=a.createContext(s);function d(e){const n=a.useContext(r);return a.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),a.createElement(r.Provider,{value:n},e.children)}},5902:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/assets/js/2774.d7f551ed.js b/assets/js/2774.d7f551ed.js
new file mode 100644
index 00000000..be0c800d
--- /dev/null
+++ b/assets/js/2774.d7f551ed.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2774],{2774:(t,e,a)=>{a.d(e,{diagram:()=>z});var r=a(7348),n=a(5849),i=a(1808),s=a(7693),o=a(1595),l=a(7370),c={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},d={axes:[],curves:[],options:c},g=structuredClone(d),u=s.UI.radar,h=(0,o.K2)(()=>(0,i.$t)({...u,...(0,s.zj)().radar}),"getConfig"),p=(0,o.K2)(()=>g.axes,"getAxes"),x=(0,o.K2)(()=>g.curves,"getCurves"),m=(0,o.K2)(()=>g.options,"getOptions"),$=(0,o. [...]
\ No newline at end of file
diff --git a/assets/js/2798b208.32694f9f.js b/assets/js/2798b208.32694f9f.js
new file mode 100644
index 00000000..e6f6144c
--- /dev/null
+++ b/assets/js/2798b208.32694f9f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3741],{508:(e,s,n)=>{n.d(s,{R:()=>o,x:()=>a});var t=n(9729);const i={},r=t.createContext(i);function o(e){const s=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(r.Provider,{value:s},e.children)}},6244:(e,s,n)=>{n.r(s),n [...]
\ No newline at end of file
diff --git a/assets/js/2903.0dccbc71.js b/assets/js/2903.0dccbc71.js
new file mode 100644
index 00000000..c0f9ffaa
--- /dev/null
+++ b/assets/js/2903.0dccbc71.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2903],{2903:(t,e,a)=>{a.d(e,{diagram:()=>Pt});var n=a(3369),i=a(1808),r=a(7693),s=a(1595),l=a(3170),o=a(1407),h=function(){var t=(0,s.K2)(function(t,e,a,n){for(a=a||{},n=t.length;n--;a[t[n]]=e);return a},"o"),e=[1,24],a=[1,25],n=[1,26],i=[1,27],r=[1,28],l=[1,63],o=[1,64],h=[1,65],d=[1,66],u=[1,67],p=[1,68],y=[1,69],g=[1,29],f=[1,30],b=[1,31],x=[1,32],_=[1,33],m=[1,34],E=[1,35],S=[1,36],A=[1,37],C=[1,38],w=[1,39], [...]
\ No newline at end of file
diff --git a/assets/js/299aa024.389a929a.js b/assets/js/299aa024.389a929a.js
new file mode 100644
index 00000000..6c646993
--- /dev/null
+++ b/assets/js/299aa024.389a929a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4807],{328:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>d,default:()=>u,frontMatter:()=>l,metadata:()=>i,toc:()=>o});const i=JSON.parse('{"id":"quickstart/guide","title":"Guide","description":"Compatibility Information","source":"@site/docs/quickstart/guide.md","sourceDirName":"quickstart","slug":"/quickstart/guide","permalink":"/docs/quickstart/guide","draft":false,"unlisted":false,"editUrl":"https://gi [...]
\ No newline at end of file
diff --git a/assets/js/33ed5212.6220037d.js b/assets/js/33ed5212.6220037d.js
new file mode 100644
index 00000000..22401db6
--- /dev/null
+++ b/assets/js/33ed5212.6220037d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3294],{508:(e,a,n)=>{n.d(a,{R:()=>i,x:()=>s});var d=n(9729);const r={},t=d.createContext(r);function i(e){const a=d.useContext(t);return d.useMemo(function(){return"function"==typeof e?e(a):{...a,...e}},[a,e])}function s(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),d.createElement(t.Provider,{value:a},e.children)}},7577:(e,a,n)=>{n.r(a),n [...]
\ No newline at end of file
diff --git a/assets/js/3497.b684f39c.js b/assets/js/3497.b684f39c.js
new file mode 100644
index 00000000..a7079e98
--- /dev/null
+++ b/assets/js/3497.b684f39c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3497],{3497:(t,e,n)=>{n.d(e,{diagram:()=>Y});var i=n(7693),s=n(1595),r=n(3170),a=n(3212),o=n(8480),c=n(1896),l=function(){var t=(0,s.K2)(function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},"o"),e=[6,8,10,11,12,14,16,17,20,21],n=[1,9],i=[1,10],r=[1,11],a=[1,12],o=[1,13],c=[1,16],l=[1,17],h={trace:(0,s.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8 [...]
\ No newline at end of file
diff --git a/assets/js/3582.71d1712e.js b/assets/js/3582.71d1712e.js
new file mode 100644
index 00000000..1673593e
--- /dev/null
+++ b/assets/js/3582.71d1712e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3582],{3369:(t,e,a)=>{a.d(e,{CP:()=>h,HT:()=>p,PB:()=>d,aC:()=>l,lC:()=>o,m:()=>c,tk:()=>n});var r=a(7693),s=a(1595),i=a(1407),n=(0,s.K2)((t,e)=>{const a=t.append("rect");if(a.attr("x",e.x),a.attr("y",e.y),a.attr("fill",e.fill),a.attr("stroke",e.stroke),a.attr("width",e.width),a.attr("height",e.height),e.name&&a.attr("name",e.name),e.rx&&a.attr("rx",e.rx),e.ry&&a.attr("ry",e.ry),void 0!==e.attrs)for(const r in e. [...]
\ No newline at end of file
diff --git a/assets/js/3981.ae44cea0.js b/assets/js/3981.ae44cea0.js
new file mode 100644
index 00000000..75ec1b08
--- /dev/null
+++ b/assets/js/3981.ae44cea0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3981],{3981:(e,s,a)=>{a.d(s,{createRadarServices:()=>c.f});var c=a(4289);a(4214)}}]);
\ No newline at end of file
diff --git a/assets/js/3a5084d4.6d44dcd9.js b/assets/js/3a5084d4.6d44dcd9.js
new file mode 100644
index 00000000..b1bcc343
--- /dev/null
+++ b/assets/js/3a5084d4.6d44dcd9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2272],{427:(e,i,t)=>{t.d(i,{A:()=>n});const n=t.p+"assets/images/complexHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png"},508:(e,i,t)=>{t.d(i,{R:()=>s,x:()=>l});var n=t(9729);const a={},r=n.createContext(a);function s(e){const i=n.useContext(r);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function l(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.compon [...]
\ No newline at end of file
diff --git a/assets/js/3e8bb567.08dcf233.js b/assets/js/3e8bb567.08dcf233.js
new file mode 100644
index 00000000..a1a27547
--- /dev/null
+++ b/assets/js/3e8bb567.08dcf233.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3535],{508:(e,n,a)=>{a.d(n,{R:()=>i,x:()=>r});var l=a(9729);const t={},s=l.createContext(t);function i(e){const n=l.useContext(s);return l.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),l.createElement(s.Provider,{value:n},e.children)}},8206:(e,n,a)=>{a.r(n),a [...]
\ No newline at end of file
diff --git a/assets/js/4051.86786135.js b/assets/js/4051.86786135.js
new file mode 100644
index 00000000..a8e4e44d
--- /dev/null
+++ b/assets/js/4051.86786135.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4051],{4051:(e,s,t)=>{t.d(s,{createGitGraphServices:()=>a.b});var a=t(6426);t(4214)}}]);
\ No newline at end of file
diff --git a/assets/js/4249.9799276f.js b/assets/js/4249.9799276f.js
new file mode 100644
index 00000000..cd5532c2
--- /dev/null
+++ b/assets/js/4249.9799276f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4249],{4249:(e,s,a)=>{a.d(s,{createTreemapServices:()=>c.d});var c=a(8047);a(4214)}}]);
\ No newline at end of file
diff --git a/assets/js/4273.e570c98a.js b/assets/js/4273.e570c98a.js
new file mode 100644
index 00000000..09c5f86a
--- /dev/null
+++ b/assets/js/4273.e570c98a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4273],{4273:(t,e,i)=>{i.d(e,{diagram:()=>I});var a=i(7693),n=i(1595),s=i(3170),r=function(){var t=(0,n.K2)(function(t,e,i,a){for(i=i||{},a=t.length;a--;i[t[a]]=e);return i},"o"),e=[1,3],i=[1,4],a=[1,5],s=[1,6],r=[1,7],o=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],l=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],h=[55,56,57], [...]
\ No newline at end of file
diff --git a/assets/js/4326.4529f1bb.js b/assets/js/4326.4529f1bb.js
new file mode 100644
index 00000000..944a07bc
--- /dev/null
+++ b/assets/js/4326.4529f1bb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4326],{129:(e,n,t)=>{t.d(n,{A:()=>o});var r=t(9759);const o=function(e){return(null==e?0:e.length)?(0,r.A)(e,1):[]}},586:(e,n,t)=>{t.d(n,{A:()=>u});var r=t(565),o=t(3145),i=t(7427);const u=function(e){return"string"==typeof e||!(0,o.A)(e)&&(0,i.A)(e)&&"[object String]"==(0,r.A)(e)}},1066:(e,n,t)=>{t.d(n,{A:()=>o});var r=t(7001);const o=function(e){var n=(0,r.A)(e),t=n%1;return n==n?t?n-t:n:0}},1159:(e,n,t)=>{t.d( [...]
\ No newline at end of file
diff --git a/assets/js/4422.7ee629cf.js b/assets/js/4422.7ee629cf.js
new file mode 100644
index 00000000..c7a0a213
--- /dev/null
+++ b/assets/js/4422.7ee629cf.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4422],{4422:(e,t,a)=>{a.d(t,{diagram:()=>C});var i=a(7348),l=a(5849),n=a(1808),r=a(7693),s=a(1595),o=a(7370),c=a(3170),p=r.UI.pie,d={sections:new Map,showData:!1,config:p},u=d.sections,g=d.showData,h=structuredClone(p),f=(0,s.K2)(()=>structuredClone(h),"getConfig"),m=(0,s.K2)(()=>{u=new Map,g=d.showData,(0,r.IU)()},"clear"),w=(0,s.K2)(({label:e,value:t})=>{if(t<0)throw new Error(`"${e}" has invalid value: ${t}. N [...]
\ No newline at end of file
diff --git a/assets/js/45.8be39409.js b/assets/js/45.8be39409.js
new file mode 100644
index 00000000..4d6917e1
--- /dev/null
+++ b/assets/js/45.8be39409.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[45],{2426:(e,s,c)=>{c.d(s,{createArchitectureServices:()=>t.S});var t=c(1544);c(4214)}}]);
\ No newline at end of file
diff --git a/assets/js/452acb72.c883213a.js b/assets/js/452acb72.c883213a.js
new file mode 100644
index 00000000..ada93709
--- /dev/null
+++ b/assets/js/452acb72.c883213a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3561],{508:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>l});var r=t(9729);const d={},s=r.createContext(d);function i(e){const n=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:i(e.components),r.createElement(s.Provider,{value:n},e.children)}},1590:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/assets/js/4546.c9018ea7.js b/assets/js/4546.c9018ea7.js
new file mode 100644
index 00000000..790cc6e1
--- /dev/null
+++ b/assets/js/4546.c9018ea7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4546],{124:(t,e,s)=>{s.d(e,{A:()=>r});var i=s(6554),n=s(7766);const r=(t,e)=>i.A.lang.round(n.A.parse(t)[e])},4546:(t,e,s)=>{s.d(e,{diagram:()=>f});var i=s(8943),n=s(5458),r=s(6659),a=(s(9142),s(9124),s(7440),s(5611),s(3637),s(2133),s(1808)),c=s(7693),o=s(1595),l=s(3170),h=s(941),u=s(124),y=function(){var t=(0,o.K2)(function(t,e,s,i){for(s=s||{},i=t.length;i--;s[t[i]]=e);return s},"o"),e=[6,8,10,22,24,26,28,33,34 [...]
\ No newline at end of file
diff --git a/assets/js/4739.5ae6df50.js b/assets/js/4739.5ae6df50.js
new file mode 100644
index 00000000..18df0a2a
--- /dev/null
+++ b/assets/js/4739.5ae6df50.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4739],{4739:(e,t,a)=>{a.d(t,{diagram:()=>v});var l=a(7348),s=a(5458),r=a(3637),n=a(5849),i=a(1808),o=a(7693),c=a(1595),d=a(7370),p=a(3170),h=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=o.SV,this.getAccTitle=o.iN,this.setDiagramTitle=o.ke,this.getDiagramTitle=o.ab,this.getAccDescription=o.m7,this.setAccDescription=o.EI}static{(0,c.K2)(this,"TreeMap [...]
\ No newline at end of file
diff --git a/assets/js/512a93d9.a07cf858.js b/assets/js/512a93d9.a07cf858.js
new file mode 100644
index 00000000..a0bd40f9
--- /dev/null
+++ b/assets/js/512a93d9.a07cf858.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4587],{508:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>s});var l=n(9729);const i={},r=l.createContext(i);function o(e){const t=l.useContext(r);return l.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),l.createElement(r.Provider,{value:t},e.children)}},3659:(e,t,n)=>{n.d(t,{A [...]
\ No newline at end of file
diff --git a/assets/js/5373.7c701c42.js b/assets/js/5373.7c701c42.js
new file mode 100644
index 00000000..85b4d2f9
--- /dev/null
+++ b/assets/js/5373.7c701c42.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5373],{4812:(t,r,e)=>{e.d(r,{m:()=>o});var n=e(1595),o=class{constructor(t){this.init=t,this.records=this.init()}static{(0,n.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},5373:(t,r,e)=>{e.d(r,{diagram:()=>ut});var n=e(5849),o=e(4812),a=e(1808),c=e(7693),s=e(1595),i=e(7370),h=e(3170),d={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},m=c.UI.gitGraph,$=(0,s.K2)(()=>(0,a.$t)({...m,...(0,c.zj) [...]
\ No newline at end of file
diff --git a/assets/js/542af253.10425003.js b/assets/js/542af253.10425003.js
new file mode 100644
index 00000000..918097c8
--- /dev/null
+++ b/assets/js/542af253.10425003.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[251],{18:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png"},294:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>s,default:()=>m,frontMatter:()=>i,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"write/extra","title":"Extra","description":"This chapter introduces how to write extra information such as comments, hyperlinks, formulas, merged cel [...]
\ No newline at end of file
diff --git a/assets/js/5438.25d23f12.js b/assets/js/5438.25d23f12.js
new file mode 100644
index 00000000..72844e16
--- /dev/null
+++ b/assets/js/5438.25d23f12.js
@@ -0,0 +1 @@
+(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5438],{26:function(t,e,i){var r;r=function(t){return function(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.i=function(t){return t},i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){re [...]
\ No newline at end of file
diff --git a/assets/js/55f30539.577cfe80.js b/assets/js/55f30539.577cfe80.js
new file mode 100644
index 00000000..3f6be65f
--- /dev/null
+++ b/assets/js/55f30539.577cfe80.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1005],{508:(e,n,a)=>{a.d(n,{R:()=>l,x:()=>d});var s=a(9729);const i={},t=s.createContext(i);function l(e){const n=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),s.createElement(t.Provider,{value:n},e.children)}},8770:(e,n,a)=>{a.r(n),a [...]
\ No newline at end of file
diff --git a/assets/js/5739.e4d0f187.js b/assets/js/5739.e4d0f187.js
new file mode 100644
index 00000000..84f2f9ce
--- /dev/null
+++ b/assets/js/5739.e4d0f187.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5739],{5739:(t,e,n)=>{n.d(e,{diagram:()=>I});var i=n(7348),s=n(7055),r=n(3767),o=n(7440),a=(n(5611),n(3637),n(2133),n(1808),n(7693)),c=n(1595),l=n(3212),h=n(8480),u=n(1896),g=function(){var t=(0,c.K2)(function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},"o"),e=[1,4],n=[1,13],i=[1,12],s=[1,15],r=[1,16],o=[1,20],a=[1,19],l=[6,7,8],h=[1,26],u=[1,24],g=[1,25],d=[6,7,11],p=[1,31],y=[6,7,11,24],f=[1,6,13,1 [...]
\ No newline at end of file
diff --git a/assets/js/5789.bea20fd6.js b/assets/js/5789.bea20fd6.js
new file mode 100644
index 00000000..af41fa53
--- /dev/null
+++ b/assets/js/5789.bea20fd6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5789],{124:(t,e,s)=>{s.d(e,{A:()=>r});var i=s(6554),n=s(7766);const r=(t,e)=>i.A.lang.round(n.A.parse(t)[e])},5458:(t,e,s)=>{s.d(e,{P:()=>r});var i=s(7693),n=s(1595),r=(0,n.K2)((t,e,s,r)=>{t.attr("class",s);const{width:o,height:l,x:c,y:h}=a(t,e);(0,i.a$)(t,l,o,r);const d=u(c,h,o,l,e);t.attr("viewBox",d),n.Rm.debug(`viewBox configured: ${d} with padding: ${e}`)},"setupViewPortForSVG"),a=(0,n.K2)((t,e)=>{const s=t. [...]
\ No newline at end of file
diff --git a/assets/js/5e95c892.6659c2ff.js b/assets/js/5e95c892.6659c2ff.js
new file mode 100644
index 00000000..2fe1b822
--- /dev/null
+++ b/assets/js/5e95c892.6659c2ff.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9647],{6606:(e,s,r)=>{r.r(s),r.d(s,{default:()=>l});r(9729);var t=r(3526),u=r(972),a=r(5327),c=r(6149),n=r(242),i=r(5813);function l(e){return(0,i.jsx)(a.e3,{className:(0,t.A)(u.G.wrapper.docsPages),children:(0,i.jsx)(n.A,{children:(0,c.v)(e.route.routes)})})}}}]);
\ No newline at end of file
diff --git a/assets/js/6077.4f146110.js b/assets/js/6077.4f146110.js
new file mode 100644
index 00000000..c6d46e84
--- /dev/null
+++ b/assets/js/6077.4f146110.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6077],{5458:(t,e,n)=>{n.d(e,{P:()=>r});var i=n(7693),s=n(1595),r=(0,s.K2)((t,e,n,r)=>{t.attr("class",n);const{width:c,height:h,x:l,y:d}=o(t,e);(0,i.a$)(t,h,c,r);const g=a(l,d,c,h,e);t.attr("viewBox",g),s.Rm.debug(`viewBox configured: ${g} with padding: ${e}`)},"setupViewPortForSVG"),o=(0,s.K2)((t,e)=>{const n=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:n.width+2*e,height:n.height+2*e,x:n.x,y:n.y} [...]
\ No newline at end of file
diff --git a/assets/js/6261.7a2de081.js b/assets/js/6261.7a2de081.js
new file mode 100644
index 00000000..897f7f9a
--- /dev/null
+++ b/assets/js/6261.7a2de081.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6261],{5849:(t,e,a)=>{function r(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}a.d(e,{S:()=>r}),(0,a(1595).K2)(r,"populateCommonDb")},6261:(t,e,a)=>{a.d(e,{diagram:()=>m});var r=a(7348),i=a(5849),s=a(1808),n=a(7693),o=a(1595),l=a(7370),c=n.UI.packet,d=class{constructor(){this.packet=[],this.setAccTitle=n.SV,this.getAccTitle=n.iN,th [...]
\ No newline at end of file
diff --git a/assets/js/6282.ea12f5ce.js b/assets/js/6282.ea12f5ce.js
new file mode 100644
index 00000000..64921735
--- /dev/null
+++ b/assets/js/6282.ea12f5ce.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6282],{3369:(t,e,n)=>{n.d(e,{CP:()=>h,HT:()=>y,PB:()=>u,aC:()=>c,lC:()=>o,m:()=>l,tk:()=>a});var i=n(7693),s=n(1595),r=n(1407),a=(0,s.K2)((t,e)=>{const n=t.append("rect");if(n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),e.name&&n.attr("name",e.name),e.rx&&n.attr("rx",e.rx),e.ry&&n.attr("ry",e.ry),void 0!==e.attrs)for(const i in e. [...]
\ No newline at end of file
diff --git a/assets/js/638.4e38c366.js b/assets/js/638.4e38c366.js
new file mode 100644
index 00000000..2117a093
--- /dev/null
+++ b/assets/js/638.4e38c366.js
@@ -0,0 +1,2 @@
+/*! For license information please see 638.4e38c366.js.LICENSE.txt */
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[638],{638:(e,t,n)=>{function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t,n){return t&&function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,c(r.key),r)}}(e.pr [...]
\ No newline at end of file
diff --git a/assets/js/638.4e38c366.js.LICENSE.txt b/assets/js/638.4e38c366.js.LICENSE.txt
new file mode 100644
index 00000000..a9f6f124
--- /dev/null
+++ b/assets/js/638.4e38c366.js.LICENSE.txt
@@ -0,0 +1,9 @@
+/*!
+Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable
+Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)
+Licensed under The MIT License (http://opensource.org/licenses/MIT)
+*/
+
+/*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */
+
+/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */
diff --git a/assets/js/6381e667.475478c4.js b/assets/js/6381e667.475478c4.js
new file mode 100644
index 00000000..19410d2d
--- /dev/null
+++ b/assets/js/6381e667.475478c4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8143],{508:(e,s,n)=>{n.d(s,{R:()=>r,x:()=>d});var t=n(9729);const l={},a=t.createContext(l);function r(e){const s=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:r(e.components),t.createElement(a.Provider,{value:s},e.children)}},5787:(e,s,n)=>{n.r(s),n [...]
\ No newline at end of file
diff --git a/assets/js/6404.f171f043.js b/assets/js/6404.f171f043.js
new file mode 100644
index 00000000..9b23d8da
--- /dev/null
+++ b/assets/js/6404.f171f043.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6404],{6404:(e,r,s)=>{s.d(r,{diagram:()=>i});var a=s(9076),t=(s(7055),s(8943),s(5458),s(6659),s(9142),s(9124),s(7440),s(5611),s(3637),s(2133),s(1808),s(7693),s(1595)),i={parser:a._$,get db(){return new a.NM},renderer:a.Lh,styles:a.tM,init:(0,t.K2)(e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/assets/js/6771.1772a75c.js b/assets/js/6771.1772a75c.js
new file mode 100644
index 00000000..02c43743
--- /dev/null
+++ b/assets/js/6771.1772a75c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6771],{6771:(e,s,c)=>{c.d(s,{createPacketServices:()=>t.$});var t=c(5450);c(4214)}}]);
\ No newline at end of file
diff --git a/assets/js/700664e1.7ceda558.js b/assets/js/700664e1.7ceda558.js
new file mode 100644
index 00000000..471710f7
--- /dev/null
+++ b/assets/js/700664e1.7ceda558.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9268],{508:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>o});var n=s(9729);const i={},l=n.createContext(i);function r(e){const t=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(l.Provider,{value:t},e.children)}},1038:(e,t,s)=>{s.r(t),s [...]
\ No newline at end of file
diff --git a/assets/js/7370.ed1e36a4.js b/assets/js/7370.ed1e36a4.js
new file mode 100644
index 00000000..fc3df53d
--- /dev/null
+++ b/assets/js/7370.ed1e36a4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7370],{129:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(9759);const i=function(e){return(null==e?0:e.length)?(0,r.A)(e,1):[]}},202:(e,t,n)=>{t.Qi=t.XO=void 0;const r=n(406),i=n(8137),s=n(436);var a;!function(e){e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:s.Event.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:s.Event.None}),e.is=function(t){const n=t;return [...]
\ No newline at end of file
diff --git a/assets/js/7386.6f41cd6b.js b/assets/js/7386.6f41cd6b.js
new file mode 100644
index 00000000..6783217f
--- /dev/null
+++ b/assets/js/7386.6f41cd6b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7386],{5458:(t,e,s)=>{s.d(e,{P:()=>r});var i=s(7693),n=s(1595),r=(0,n.K2)((t,e,s,r)=>{t.attr("class",s);const{width:c,height:l,x:h,y:d}=o(t,e);(0,i.a$)(t,l,c,r);const u=a(h,d,c,l,e);t.attr("viewBox",u),n.Rm.debug(`viewBox configured: ${u} with padding: ${e}`)},"setupViewPortForSVG"),o=(0,n.K2)((t,e)=>{const s=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*e,height:s.height+2*e,x:s.x,y:s.y} [...]
\ No newline at end of file
diff --git a/assets/js/761d52bb.47bcb700.js b/assets/js/761d52bb.47bcb700.js
new file mode 100644
index 00000000..5d857949
--- /dev/null
+++ b/assets/js/761d52bb.47bcb700.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1166],{508:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>l});var i=t(9729);const r={},d=i.createContext(r);function o(e){const n=i.useContext(d);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(d.Provider,{value:n},e.children)}},5382:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/assets/js/8055.3e320c96.js b/assets/js/8055.3e320c96.js
new file mode 100644
index 00000000..2c1c6012
--- /dev/null
+++ b/assets/js/8055.3e320c96.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8055],{8055:(e,s,c)=>{c.d(s,{createInfoServices:()=>t.v});var t=c(4555);c(4214)}}]);
\ No newline at end of file
diff --git a/assets/js/8169.efa741e1.js b/assets/js/8169.efa741e1.js
new file mode 100644
index 00000000..79a2034e
--- /dev/null
+++ b/assets/js/8169.efa741e1.js
@@ -0,0 +1 @@
+(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8169],{3798:function(t){t.exports=function(){"use strict";var t="day";return function(e,n,i){var s=function(e){return e.add(4-e.isoWeekday(),t)},r=n.prototype;r.isoWeekYear=function(){return s(this).year()},r.isoWeek=function(e){if(!this.$utils().u(e))return this.add(7*(e-this.isoWeek()),t);var n,r,a,o=s(this),c=(n=this.isoWeekYear(),a=4-(r=(this.$u?i.utc:i)().year(n).startOf("year")).isoWeekday(),r.isoWeekday()>4&&(a+=7),r.a [...]
\ No newline at end of file
diff --git a/assets/js/8183afd3.32ee477a.js b/assets/js/8183afd3.32ee477a.js
new file mode 100644
index 00000000..ea45ba05
--- /dev/null
+++ b/assets/js/8183afd3.32ee477a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4947],{508:(e,t,s)=>{s.d(t,{R:()=>a,x:()=>o});var n=s(9729);const c={},i=n.createContext(c);function a(e){const t=n.useContext(i);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:a(e.components),n.createElement(i.Provider,{value:t},e.children)}},5984:(e,t,s)=>{s.r(t),s [...]
\ No newline at end of file
diff --git a/assets/js/81c2829c.3c7cb224.js b/assets/js/81c2829c.3c7cb224.js
new file mode 100644
index 00000000..576c324f
--- /dev/null
+++ b/assets/js/81c2829c.3c7cb224.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1723],{508:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>a});var r=t(9729);const i={},o=r.createContext(i);function s(e){const n=r.useContext(o);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),r.createElement(o.Provider,{value:n},e.children)}},8981:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/assets/js/8215.af7b1cee.js b/assets/js/8215.af7b1cee.js
new file mode 100644
index 00000000..2749af11
--- /dev/null
+++ b/assets/js/8215.af7b1cee.js
@@ -0,0 +1 @@
+(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8215],{23:function(t,e,i){var n;n=function(t){return(()=>{"use strict";var e={658:t=>{t.exports=null!=Object.assign?Object.assign.bind(Object):function(t){for(var e=arguments.length,i=Array(e>1?e-1:0),n=1;n<e;n++)i[n-1]=arguments[n];return i.forEach(function(e){Object.keys(e).forEach(function(i){return t[i]=e[i]})}),t}},548:(t,e,i)=>{var n=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return funct [...]
\ No newline at end of file
diff --git a/assets/js/8245.8c3a160f.js b/assets/js/8245.8c3a160f.js
new file mode 100644
index 00000000..ba1808bc
--- /dev/null
+++ b/assets/js/8245.8c3a160f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8245],{8245:(e,s,c)=>{c.d(s,{createPieServices:()=>i.f});var i=c(2323);c(4214)}}]);
\ No newline at end of file
diff --git a/assets/js/8454.dfe41403.js b/assets/js/8454.dfe41403.js
new file mode 100644
index 00000000..2f6f2964
--- /dev/null
+++ b/assets/js/8454.dfe41403.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8454],{124:(t,e,r)=>{r.d(e,{A:()=>i});var a=r(6554),s=r(7766);const i=(t,e)=>a.A.lang.round(s.A.parse(t)[e])},4350:(t,e,r)=>{r.d(e,{A:()=>s});var a=r(5639);const s=function(t){return(0,a.A)(t,4)}},7055:(t,e,r)=>{r.d(e,{o:()=>a});var a=(0,r(1595).K2)(()=>"\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0 [...]
\ No newline at end of file
diff --git a/assets/js/84c84ccb.8c225f2b.js b/assets/js/84c84ccb.8c225f2b.js
new file mode 100644
index 00000000..3cafa3f7
--- /dev/null
+++ b/assets/js/84c84ccb.8c225f2b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9586],{508:(e,n,r)=>{r.d(n,{R:()=>s,x:()=>i});var t=r(9729);const a={},o=t.createContext(a);function s(e){const n=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),t.createElement(o.Provider,{value:n},e.children)}},9870:(e,n,r)=>{r.r(n),r [...]
\ No newline at end of file
diff --git a/assets/js/8868.75a81dea.js b/assets/js/8868.75a81dea.js
new file mode 100644
index 00000000..6583362a
--- /dev/null
+++ b/assets/js/8868.75a81dea.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8868],{8868:(t,e,a)=>{a.d(e,{diagram:()=>R});var i,n=a(7386),r=(a(8943),a(5458),a(6659),a(9142),a(9124),a(7440),a(5611),a(3637),a(2133),a(1808)),d=a(7693),s=a(1595),o=a(3170),g=a(4326),p=a(7420),h=(0,s.K2)(t=>t.append("circle").attr("class","start-state").attr("r",(0,d.D7)().state.sizeUnit).attr("cx",(0,d.D7)().state.padding+(0,d.D7)().state.sizeUnit).attr("cy",(0,d.D7)().state.padding+(0,d.D7)().state.sizeUnit), [...]
\ No newline at end of file
diff --git a/assets/js/8bddb7f1.4ba01e99.js b/assets/js/8bddb7f1.4ba01e99.js
new file mode 100644
index 00000000..3639c344
--- /dev/null
+++ b/assets/js/8bddb7f1.4ba01e99.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4491],{508:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>l});var s=t(9729);const i={},r=s.createContext(i);function a(e){const n=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(r.Provider,{value:n},e.children)}},4078:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/assets/js/9076.feb860c8.js b/assets/js/9076.feb860c8.js
new file mode 100644
index 00000000..352610ed
--- /dev/null
+++ b/assets/js/9076.feb860c8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9076],{5458:(t,e,s)=>{s.d(e,{P:()=>a});var i=s(7693),n=s(1595),a=(0,n.K2)((t,e,s,a)=>{t.attr("class",s);const{width:l,height:o,x:c,y:h}=r(t,e);(0,i.a$)(t,o,l,a);const d=u(c,h,l,o,e);t.attr("viewBox",d),n.Rm.debug(`viewBox configured: ${d} with padding: ${e}`)},"setupViewPortForSVG"),r=(0,n.K2)((t,e)=>{const s=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*e,height:s.height+2*e,x:s.x,y:s.y} [...]
\ No newline at end of file
diff --git a/assets/js/9294.4210ac81.js b/assets/js/9294.4210ac81.js
new file mode 100644
index 00000000..b520271b
--- /dev/null
+++ b/assets/js/9294.4210ac81.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9294],{4350:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(5639);const i=function(e){return(0,r.A)(e,4)}},9294:(e,n,t)=>{t.r(n),t.d(n,{render:()=>k});var r=t(9142),i=(t(9124),t(7440)),a=t(5611),o=(t(3637),t(2133),t(1808),t(7693)),d=t(1595),s=t(4326),c=t(707),g=t(4350),l=t(2185);t(9641);function f(e){var n={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:h(e),edges:p(e)};return c.A( [...]
\ No newline at end of file
diff --git a/assets/js/9312.8b0e39cd.js b/assets/js/9312.8b0e39cd.js
new file mode 100644
index 00000000..2b3823d0
--- /dev/null
+++ b/assets/js/9312.8b0e39cd.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9312],{9312:(e,r,t)=>{t.d(r,{diagram:()=>i});var s=t(7386),a=(t(8943),t(5458),t(6659),t(9142),t(9124),t(7440),t(5611),t(3637),t(2133),t(1808),t(7693),t(1595)),i={parser:s.Zk,get db(){return new s.u4(2)},renderer:s.q7,styles:s.tM,init:(0,a.K2)(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/assets/js/939f94eb.a744d8d6.js b/assets/js/939f94eb.a744d8d6.js
new file mode 100644
index 00000000..4ec75c1a
--- /dev/null
+++ b/assets/js/939f94eb.a744d8d6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[936],{508:(e,t,a)=>{a.d(t,{R:()=>s,x:()=>o});var i=a(9729);const r={},n=i.createContext(r);function s(e){const t=i.useContext(n);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),i.createElement(n.Provider,{value:t},e.children)}},2284:(e,t,a)=>{a.r(t),a. [...]
\ No newline at end of file
diff --git a/assets/js/9402.dfe044b9.js b/assets/js/9402.dfe044b9.js
new file mode 100644
index 00000000..9f520133
--- /dev/null
+++ b/assets/js/9402.dfe044b9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9402],{9402:(e,t,r)=>{r.d(t,{default:()=>rn});class a{constructor(e,t,r){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=t,this.end=r}static range(e,t){return t?e&&e.loc&&t.loc&&e.loc.lexer===t.loc.lexer?new a(e.loc.lexer,e.loc.start,t.loc.end):null:e&&e.loc}}class n{constructor(e,t){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=t}r [...]
\ No newline at end of file
diff --git a/assets/js/9629.3431bc5c.js b/assets/js/9629.3431bc5c.js
new file mode 100644
index 00000000..6e0e38d0
--- /dev/null
+++ b/assets/js/9629.3431bc5c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9629],{9629:(t,i,e)=>{e.d(i,{diagram:()=>it});var s=e(7348),a=e(2133),n=e(1808),h=e(7693),o=e(1595),r=e(3170),l=function(){var t=(0,o.K2)(function(t,i,e,s){for(e=e||{},s=t.length;s--;e[t[s]]=i);return e},"o"),i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],a=[1,5],n=[1,6],h=[1,7],r=[1,5,10,12,14,16,18,19,21,23,34,35,36],l=[1,25],c=[1,26],g=[1,28],u=[1,29],x=[1,30],d=[1,31],p=[1,32],f=[1,33],y=[1,34],m=[1,35],b=[1,3 [...]
\ No newline at end of file
diff --git a/assets/js/9646.4c6a489b.js b/assets/js/9646.4c6a489b.js
new file mode 100644
index 00000000..7942a566
--- /dev/null
+++ b/assets/js/9646.4c6a489b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9646],{9646:(e,r,t)=>{t.d(r,{diagram:()=>g});var a=t(4285),s=t(7348),n=t(7693),i=t(1595),d=t(7370),o={parse:(0,i.K2)(async e=>{const r=await(0,d.qg)("info",e);i.Rm.debug(r)},"parse")},p={version:a.n.version+""},g={parser:o,db:{getVersion:(0,i.K2)(()=>p.version,"getVersion")},renderer:{draw:(0,i.K2)((e,r,t)=>{i.Rm.debug("rendering info diagram\n"+e);const a=(0,s.D)(r);(0,n.a$)(a,100,400,!0);a.append("g").append("t [...]
\ No newline at end of file
diff --git a/assets/js/9dc5a89b.984d75b4.js b/assets/js/9dc5a89b.984d75b4.js
new file mode 100644
index 00000000..6ef4cfeb
--- /dev/null
+++ b/assets/js/9dc5a89b.984d75b4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3094],{508:(e,t,i)=>{i.d(t,{R:()=>r,x:()=>l});var a=i(9729);const n={},s=a.createContext(n);function r(e){const t=a.useContext(s);return a.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),a.createElement(s.Provider,{value:t},e.children)}},7103:(e,t,i)=>{i.r(t),i [...]
\ No newline at end of file
diff --git a/assets/js/a4b4544e.0d568963.js b/assets/js/a4b4544e.0d568963.js
new file mode 100644
index 00000000..056fb81a
--- /dev/null
+++ b/assets/js/a4b4544e.0d568963.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2340],{508:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>l});var t=i(9729);const s={},r=t.createContext(s);function o(e){const n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(r.Provider,{value:n},e.children)}},9455:(e,n,i)=>{i.r(n),i [...]
\ No newline at end of file
diff --git a/assets/js/a7456010.7b4b0a20.js b/assets/js/a7456010.7b4b0a20.js
new file mode 100644
index 00000000..2e5cf6e2
--- /dev/null
+++ b/assets/js/a7456010.7b4b0a20.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1235],{8552:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/a7bd4aaa.8584244c.js b/assets/js/a7bd4aaa.8584244c.js
new file mode 100644
index 00000000..fd0e5fb1
--- /dev/null
+++ b/assets/js/a7bd4aaa.8584244c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7098],{8499:(n,e,s)=>{s.r(e),s.d(e,{default:()=>d});s(9729);var r=s(5327);function t(n,e){return`docs-${n}-${e}`}var o=s(5633),i=s(6149),c=s(9328),u=s(5813);function a(n){const{version:e}=n;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(c.A,{version:e.version,tag:t(e.pluginId,e.version)}),(0,u.jsx)(r.be,{children:e.noIndex&&(0,u.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function l(n){const{v [...]
\ No newline at end of file
diff --git a/assets/js/a94703ab.d8dfe806.js b/assets/js/a94703ab.d8dfe806.js
new file mode 100644
index 00000000..04835cfa
--- /dev/null
+++ b/assets/js/a94703ab.d8dfe806.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9048],{2432:(e,t,n)=>{n.d(t,{A:()=>l});n(9729);var a=n(3526),i=n(7268),o=n(1954),s=n(5813);function l({className:e}){return(0,s.jsx)("main",{className:(0,a.A)("container margin-vert--xl",e),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(o.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(i.A,{id:"theme.NotFound.title",description:" [...]
\ No newline at end of file
diff --git a/assets/js/aada36dd.b5bc9b6d.js b/assets/js/aada36dd.b5bc9b6d.js
new file mode 100644
index 00000000..ea128355
--- /dev/null
+++ b/assets/js/aada36dd.b5bc9b6d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2543],{5862:e=>{e.exports=JSON.parse('{"version":{"pluginId":"community","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"community":[{"type":"link","href":"/community/contact","label":"Contact","docId":"contact","unlisted":false},{"type":"link","href":"/community/bug-report","label":"Feedback","docId":"bug-report","un [...]
\ No newline at end of file
diff --git a/assets/js/aba21aa0.9ac6642b.js b/assets/js/aba21aa0.9ac6642b.js
new file mode 100644
index 00000000..0c1598dd
--- /dev/null
+++ b/assets/js/aba21aa0.9ac6642b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5742],{7093:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/b8958f49.393cb7c6.js b/assets/js/b8958f49.393cb7c6.js
new file mode 100644
index 00000000..7b949983
--- /dev/null
+++ b/assets/js/b8958f49.393cb7c6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6900],{508:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>r});var i=t(9729);const d={},a=i.createContext(d);function s(e){const n=i.useContext(a);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:s(e.components),i.createElement(a.Provider,{value:n},e.children)}},8909:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/assets/js/c4f5d8e4.4559eaca.js b/assets/js/c4f5d8e4.4559eaca.js
new file mode 100644
index 00000000..17546ee7
--- /dev/null
+++ b/assets/js/c4f5d8e4.4559eaca.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2634],{1601:(e,a,t)=>{t.d(a,{A:()=>v});var l,r,n,c,h,i,f,m,d,s,o,g,E,p,x,w,M=t(9729);function u(){return u=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},u.apply(null,arguments)}const v=({title:e,titleId:a,...t})=>M.createElement("svg",u({xmlns:"http://www.w3.org/2000/svg",width:1008.92,heigh [...]
\ No newline at end of file
diff --git a/assets/js/c639369e.ae534699.js b/assets/js/c639369e.ae534699.js
new file mode 100644
index 00000000..0c460d5a
--- /dev/null
+++ b/assets/js/c639369e.ae534699.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7637],{508:(e,t,a)=>{a.d(t,{R:()=>s,x:()=>l});var n=a(9729);const i={},r=n.createContext(i);function s(e){const t=n.useContext(r);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),n.createElement(r.Provider,{value:t},e.children)}},8118:(e,t,a)=>{a.r(t),a [...]
\ No newline at end of file
diff --git a/assets/js/cabbf3d9.7b0bd76f.js b/assets/js/cabbf3d9.7b0bd76f.js
new file mode 100644
index 00000000..ecb43d77
--- /dev/null
+++ b/assets/js/cabbf3d9.7b0bd76f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4923],{508:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>l});var i=t(9729);const a={},r=i.createContext(a);function s(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),i.createElement(r.Provider,{value:n},e.children)}},7712:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/assets/js/cf1fd729.51272651.js b/assets/js/cf1fd729.51272651.js
new file mode 100644
index 00000000..2fa2b93e
--- /dev/null
+++ b/assets/js/cf1fd729.51272651.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9565],{508:(e,i,n)=>{n.d(i,{R:()=>r,x:()=>a});var t=n(9729);const s={},l=t.createContext(s);function r(e){const i=t.useContext(l);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(l.Provider,{value:i},e.children)}},2558:(e,i,n)=>{n.d(i,{A [...]
\ No newline at end of file
diff --git a/assets/js/dd53d751.7b9f66a5.js b/assets/js/dd53d751.7b9f66a5.js
new file mode 100644
index 00000000..c972b0db
--- /dev/null
+++ b/assets/js/dd53d751.7b9f66a5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[158],{508:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>o});var l=s(9729);const i={},t=l.createContext(i);function r(e){const n=l.useContext(t);return l.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),l.createElement(t.Provider,{value:n},e.children)}},8817:(e,n,s)=>{s.r(n),s. [...]
\ No newline at end of file
diff --git a/assets/js/e0719818.4f1a2df1.js b/assets/js/e0719818.4f1a2df1.js
new file mode 100644
index 00000000..7d1e1848
--- /dev/null
+++ b/assets/js/e0719818.4f1a2df1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5220],{8669:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"community"}')}}]);
\ No newline at end of file
diff --git a/assets/js/e2f5eafd.bc508210.js b/assets/js/e2f5eafd.bc508210.js
new file mode 100644
index 00000000..6ccfd236
--- /dev/null
+++ b/assets/js/e2f5eafd.bc508210.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9373],{508:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>l});var a=n(9729);const i={},s=a.createContext(i);function r(e){const t=a.useContext(s);return a.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),a.createElement(s.Provider,{value:t},e.children)}},7479:(e,t,n)=>{n.r(t),n [...]
\ No newline at end of file
diff --git a/assets/js/ecc2f85f.bfedb315.js b/assets/js/ecc2f85f.bfedb315.js
new file mode 100644
index 00000000..47eaeb4f
--- /dev/null
+++ b/assets/js/ecc2f85f.bfedb315.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7395],{508:(e,t,i)=>{i.d(t,{R:()=>a,x:()=>l});var s=i(9729);const n={},r=s.createContext(n);function a(e){const t=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),s.createElement(r.Provider,{value:t},e.children)}},8775:(e,t,i)=>{i.r(t),i [...]
\ No newline at end of file
diff --git a/assets/js/ee1b4450.08970eb2.js b/assets/js/ee1b4450.08970eb2.js
new file mode 100644
index 00000000..7ffaa9ba
--- /dev/null
+++ b/assets/js/ee1b4450.08970eb2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4215],{508:(e,n,t)=>{t.d(n,{R:()=>l,x:()=>o});var a=t(9729);const r={},i=a.createContext(r);function l(e){const n=a.useContext(i);return a.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),a.createElement(i.Provider,{value:n},e.children)}},5088:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/assets/js/eece2e17.af43f87d.js b/assets/js/eece2e17.af43f87d.js
new file mode 100644
index 00000000..8daaf948
--- /dev/null
+++ b/assets/js/eece2e17.af43f87d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2302],{508:(e,t,r)=>{r.d(t,{R:()=>s,x:()=>o});var n=r(9729);const i={},a=n.createContext(i);function s(e){const t=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),n.createElement(a.Provider,{value:t},e.children)}},5553:(e,t,r)=>{r.d(t,{A [...]
\ No newline at end of file
diff --git a/assets/js/f1f22f0f.1701aaf0.js b/assets/js/f1f22f0f.1701aaf0.js
new file mode 100644
index 00000000..70f1fa04
--- /dev/null
+++ b/assets/js/f1f22f0f.1701aaf0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8878],{508:(A,e,g)=>{g.d(e,{R:()=>B,x:()=>E});var C=g(9729);const i={},l=C.createContext(i);function B(A){const e=C.useContext(l);return C.useMemo(function(){return"function"==typeof A?A(e):{...e,...A}},[e,A])}function E(A){let e;return e=A.disableParentContext?"function"==typeof A.components?A.components(i):A.components||i:B(A.components),C.createElement(l.Provider,{value:e},A.children)}},1469:(A,e,g)=>{g.d(e,{A [...]
\ No newline at end of file
diff --git a/assets/js/f37f84bf.441510d4.js b/assets/js/f37f84bf.441510d4.js
new file mode 100644
index 00000000..d6228407
--- /dev/null
+++ b/assets/js/f37f84bf.441510d4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9525],{508:(e,t,i)=>{i.d(t,{R:()=>s,x:()=>a});var r=i(9729);const l={},n=r.createContext(l);function s(e){const t=r.useContext(n);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:s(e.components),r.createElement(n.Provider,{value:t},e.children)}},1698:(e,t,i)=>{i.r(t),i [...]
\ No newline at end of file
diff --git a/assets/js/main.9880acfb.js b/assets/js/main.9880acfb.js
new file mode 100644
index 00000000..958d3be7
--- /dev/null
+++ b/assets/js/main.9880acfb.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.9880acfb.js.LICENSE.txt */
+(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8792],{45:(e,t,n)=>{var r={"./prism-bash":1022,"./prism-java":2912};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=45},160:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(9729),a=n(9745),o=n(5719),i=n(3800),l=n(3016),s=n(4335),c=n(9351),u=n(2499),d= [...]
\ No newline at end of file
diff --git a/assets/js/main.9880acfb.js.LICENSE.txt b/assets/js/main.9880acfb.js.LICENSE.txt
new file mode 100644
index 00000000..4c963e46
--- /dev/null
+++ b/assets/js/main.9880acfb.js.LICENSE.txt
@@ -0,0 +1,61 @@
+/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
+ * @license MIT */
+
+/**
+ * @license React
+ * react-dom-client.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react-dom.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react-jsx-runtime.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * scheduler.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/** @license React v16.13.1
+ * react-is.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
diff --git a/assets/js/runtime~main.cdb58fe4.js b/assets/js/runtime~main.cdb58fe4.js
new file mode 100644
index 00000000..08321c20
--- /dev/null
+++ b/assets/js/runtime~main.cdb58fe4.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,a,f,t,r,c={},b={};function d(e){var a=b[e];if(void 0!==a)return a.exports;var f=b[e]={exports:{}};return c[e].call(f.exports,f,f.exports,d),f.exports}d.m=c,e=[],d.O=(a,f,t,r)=>{if(!f){var c=1/0;for(i=0;i<e.length;i++){f=e[i][0],t=e[i][1],r=e[i][2];for(var b=!0,o=0;o<f.length;o++)(!1&r||c>=r)&&Object.keys(d.O).every(e=>d.O[e](f[o]))?f.splice(o--,1):(b=!1,r<c&&(c=r));if(b){e.splice(i--,1);var n=t();void 0!==n&&(a=n)}}return a}r=r||0;for(var i=e.length;i>0&&e[i-1][2 [...]
\ No newline at end of file
diff --git a/community/bug-report/index.html b/community/bug-report/index.html
new file mode 100644
index 00000000..becea2a2
--- /dev/null
+++ b/community/bug-report/index.html
@@ -0,0 +1,62 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-bug-report" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Feedback | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community/bug-report/"><meta data-rh="tru [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>We appreciate all the feedback and suggestions you have. If you find any bugs during use, you can submit the issue through the <a href="https://github.com/fast-excel/fastexcel/issues/new/choose" target="_blank" rel="noopener noreferrer">NEW ISSUE</a> page.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="before-submitting">Before Submitting<a href="#before-submitting" class="hash-link" aria-label="Direct link to Before Submitting" title="Direct link to Before Submitting" translate="no"></a></h2>
+<p>Before creating a new issue, please ensure you have completed the following preparatory steps. This will help avoid duplicate work and save both your time and the maintainers' time.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="read-the-documentation">Read the Documentation<a href="#read-the-documentation" class="hash-link" aria-label="Direct link to Read the Documentation" title="Direct link to Read the Documentation" translate="no"></a></h3>
+<ul>
+<li>Please read the <code>README</code> file and the official documentation in the project to see if there are any solutions to the problems mentioned.</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="search-existing-issues">Search Existing Issues<a href="#search-existing-issues" class="hash-link" aria-label="Direct link to Search Existing Issues" title="Direct link to Search Existing Issues" translate="no"></a></h3>
+<ul>
+<li>Visit the <a href="https://github.com/fast-excel/fastexcel/issues" target="_blank" rel="noopener noreferrer">Issue List</a> and search for keywords.</li>
+<li>If you find a similar issue, please <strong>comment and provide additional details</strong> under that issue instead of creating a new one.</li>
+<li>If an unresolved issue is closed for some reason, please <strong>comment and provide additional details</strong> to reopen it.</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="update-to-the-latest-version">Update to the latest version<a href="#update-to-the-latest-version" class="hash-link" aria-label="Direct link to Update to the latest version" title="Direct link to Update to the latest version" translate="no"></a></h3>
+<p>Please make sure you are using the latest stable version of the project or the latest code from the main branch. Many issues have been resolved in newer versions.</p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="creating-a-new-issue">Creating a New Issue<a href="#creating-a-new-issue" class="hash-link" aria-label="Direct link to Creating a New Issue" title="Direct link to Creating a New Issue" translate="no"></a></h2>
+<p>If you confirm that your issue has not been reported, please submit a new issue through the <a href="https://github.com/fast-excel/fastexcel/issues/new/choose" target="_blank" rel="noopener noreferrer">NEW ISSUE</a> page.</p>
+<p><strong>Please use the issue template</strong> and provide as much information as possible, such as:</p>
+<ul>
+<li>Environment information (operating system, version used, etc.).</li>
+<li>Steps to reproduce the issue.</li>
+<li>Error logs or screenshots.</li>
+<li>Provide a minimal reproducible example.</li>
+</ul>
+<p>The following situations are appropriate for submitting a new issue:</p>
+<ul>
+<li>Bug reports</li>
+<li>New feature</li>
+<li>Performance issues</li>
+<li>Function proposals or design suggestions</li>
+<li>Documentation improvements</li>
+<li>Optimization of test coverage</li>
+<li>Need for technical support</li>
+<li>Other issues related to the project</li>
+</ul>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="notes">Notes<a href="#notes" class="hash-link" aria-label="Direct link to Notes" title="Direct link to Notes" translate="no"></a></h2>
+<ul>
+<li>The title of the issue should be clear and concise, and should be no longer than 50 characters.</li>
+<li>Please use polite language in the issue description and content.</li>
+<li>Each issue should focus on a single topic, please do not combine multiple issues into one.</li>
+<li>Unless a specific developer has been explicitly assigned to the issue in advance, please do not arbitrarily assign it to a particular developer.</li>
+<li>Do not include sensitive information such as passwords, keys, server addresses, or private data in the issue.</li>
+</ul>
+<p>Thank you for contributing to the improvement of the project! Every feedback you provide is the driving force behind our progress.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/community/bug-report.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/contact/index.html b/community/contact/index.html
new file mode 100644
index 00000000..daab1f1a
--- /dev/null
+++ b/community/contact/index.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-contact" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Contact | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community/contact/"><meta data-rh="true" p [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>We appreciate all the feedback and opinions you have. If you need any help or have any suggestions during use, please feel free to contact us!</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="issues">Issues<a href="#issues" class="hash-link" aria-label="Direct link to Issues" title="Direct link to Issues" translate="no"></a></h2>
+<p>All issues will be tracked and handled through <a href="https://github.com/fast-excel/fastexcel/issues" target="_blank" rel="noopener noreferrer">GitHub Issues</a>.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="discussions">Discussions<a href="#discussions" class="hash-link" aria-label="Direct link to Discussions" title="Direct link to Discussions" translate="no"></a></h2>
+<p>For development discussions and user exchanges, please use <a href="https://github.com/fast-excel/fastexcel/discussions" target="_blank" rel="noopener noreferrer">GitHub Discussions</a>.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="wechat-public">WeChat Public<a href="#wechat-public" class="hash-link" aria-label="Direct link to WeChat Public" title="Direct link to WeChat Public" translate="no"></a></h2>
+<p>Follow the author "Programmer Xiao Lan" on WeChat to join the technical discussion group and access more technical insights and the latest updates.</p>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/wechat-public-d649d5c1c7820d27a8fbf279da1a9518.jpg" width="258" height="258" class="img_U4Mj"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/community/contact.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/contribution/index.html b/community/contribution/index.html
new file mode 100644
index 00000000..a3668bca
--- /dev/null
+++ b/community/contribution/index.html
@@ -0,0 +1,155 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-contribution" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Contributor Guide | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community/contribution/"><meta d [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>Welcome every user and developer in the community to become contributors. Whether it's reporting issues, improving documentation, submitting code, or providing technical support, your participation will help make FastExcel better.</p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="contribution-directions">Contribution Directions<a href="#contribution-directions" class="hash-link" aria-label="Direct link to Contribution Directions" title="Direct link to Contribution Directions" translate="no"></a></h2>
+<p>There are many ways to contribute to FastExcel:</p>
+<ul>
+<li>Fix typos</li>
+<li>Fix bugs</li>
+<li>Remove redundant code</li>
+<li>Add test cases</li>
+<li>Enhance functionality</li>
+<li>Add comments to improve code readability</li>
+<li>Optimize code structure</li>
+<li>Improve or refine documentation</li>
+</ul>
+<p><strong>Principle</strong>:</p>
+<ul>
+<li>Any pull request that contributes to the improvement of the project should be encouraged.</li>
+<li>Before contributing a new feature, please propose and discuss it in an <code>issue</code> or <code>discussion</code>. We will not merge features that have not been discussed and confirmed.</li>
+</ul>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="contributing-code">Contributing Code<a href="#contributing-code" class="hash-link" aria-label="Direct link to Contributing Code" title="Direct link to Contributing Code" translate="no"></a></h2>
+<p>All improvements can be implemented through Pull Request (PR). Before submitting a Pull Request, please familiarise yourself with the following guidelines:</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="workspace-preparation">Workspace Preparation<a href="#workspace-preparation" class="hash-link" aria-label="Direct link to Workspace Preparation" title="Direct link to Workspace Preparation" translate="no"></a></h3>
+<p>To develop FastExcel, you need <strong>Maven 3.9 or above</strong> and <strong>JDK (Java Development Kit) 17 or above</strong>. However, you must use <strong>Java 1.8</strong> compatible language features during compilation to ensure FastExcel can run in environments with Java 1.8 or above.</p>
+<blockquote>
+<p>You can use tools such as <a href="https://sdkman.io/" target="_blank" rel="noopener noreferrer">SDKMAN</a> to configure multiple versions of the Java toolchain.</p>
+</blockquote>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="fork-the-repository">Fork the repository<a href="#fork-the-repository" class="hash-link" aria-label="Direct link to Fork the repository" title="Direct link to Fork the repository" translate="no"></a></h3>
+<p>Ensure that you have registered a GitHub account and follow the steps below to configure your local development environment:</p>
+<p><strong>Fork the repository</strong>: Click the <code>Fork</code> button on the FastExcel <a href="https://github.com/fast-excel/fastexcel" target="_blank" rel="noopener noreferrer">GitHub page</a> to copy the project to your GitHub account.</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token plain">https://github.com/</span><span class="token operator" style="color:#393A34"><</span><sp [...]
+<p><strong>Clone Repository</strong>: Run the following command to clone the forked project to your local machine:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> clone git@github.com:</span>< [...]
+<p><strong>Set Upstream Repository</strong>: Set the official repository as <code>upstream</code> for easy synchronization of updates:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> remote </span><span class="to [...]
+<p>Running <code>git remote -v</code> can verify if the configuration is correct.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="branch-definition">Branch definition<a href="#branch-definition" class="hash-link" aria-label="Direct link to Branch definition" title="Direct link to Branch definition" translate="no"></a></h3>
+<p>In FastExcel, all contributions should be based on the <code>main</code> development branch. Additionally, there are the following branch types:</p>
+<ul>
+<li><strong>release branches</strong>: Used for version releases (e.g., <code>1.1.0</code>, <code>1.1.1</code>).</li>
+<li><strong>feature branches</strong>: Used for developing major features.</li>
+<li><strong>hotfix branches</strong>: Used for fixing critical bugs.</li>
+</ul>
+<p>When submitting a PR, please ensure that the changes are based on the <code>main</code> branch.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="commit-rules">Commit Rules<a href="#commit-rules" class="hash-link" aria-label="Direct link to Commit Rules" title="Direct link to Commit Rules" translate="no"></a></h3>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="commit-message">Commit Message<a href="#commit-message" class="hash-link" aria-label="Direct link to Commit Message" title="Direct link to Commit Message" translate="no"></a></h4>
+<p>Please ensure that commit messages are clear and descriptive, use <strong>English</strong>, and do not exceed 100 characters.</p>
+<p>The following types of commit messages are allowed and must follow the following format:</p>
+<ul>
+<li><strong>docs</strong>: Update documentation, e.g., <code>docs: update README.md</code></li>
+<li><strong>feature/feat</strong>: New features, e.g., <code>feature: support for xxx</code></li>
+<li><strong>bugfix/fix</strong>: Bug fixes, e.g., <code>fix: fix NPE in the A class</code></li>
+<li><strong>refactor</strong>: Code refactoring (no functional changes), e.g., <code>refactor: optimise data processing logic</code></li>
+<li><strong>style</strong>: Code formatting, e.g., <code>style: update code style</code></li>
+<li><strong>test</strong>: Adding or improving tests, e.g., <code>test: add new test cases</code></li>
+<li><strong>chore</strong>: Changes to the build process or auxiliary tools, e.g., <code>chore: improve issue template</code></li>
+<li><strong>dependency</strong>: Modifications to third-party dependency libraries, e.g., <code>dependency: upgrade poi version to 5.4.1</code></li>
+</ul>
+<p>Avoid using vague commit messages like:</p>
+<ul>
+<li><del>fixed issue</del></li>
+<li><del>update code</del></li>
+</ul>
+<p>For assistance, refer to <a href="http://chris.beams.io/posts/git-commit/" target="_blank" rel="noopener noreferrer">How to Write a Git Commit Message</a>.</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="commit-content">Commit Content<a href="#commit-content" class="hash-link" aria-label="Direct link to Commit Content" title="Direct link to Commit Content" translate="no"></a></h4>
+<p>Each commit should contain complete and reviewable changes, ensuring:</p>
+<ul>
+<li>Avoid committing overly large changes.</li>
+<li>Each commit content is independent and can pass CI tests.</li>
+</ul>
+<p>Also, ensure the correct Git user information is configured when committing:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> config </span><span class="to [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pr-description">PR Description<a href="#pr-description" class="hash-link" aria-label="Direct link to PR Description" title="Direct link to PR Description" translate="no"></a></h3>
+<p>To help reviewers quickly understand the content and purpose of the PR, use the <a href="https://github.com/fast-excel/fastexcel/blob/main/.github/pull_request_template.md" target="_blank" rel="noopener noreferrer">pull_request_template</a>. A detailed description greatly improves code review efficiency.</p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="contribution-of-test-cases">Contribution of Test Cases<a href="#contribution-of-test-cases" class="hash-link" aria-label="Direct link to Contribution of Test Cases" title="Direct link to Contribution of Test Cases" translate="no"></a></h2>
+<p>Any contribution of test cases is encouraged, especially unit tests. It is recommended to create <code>XXXTest.java</code> files in the corresponding module's <code>test</code> directory, preferably using the <code>JUnit5</code> framework.</p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="contribution-document">Contribution Document<a href="#contribution-document" class="hash-link" aria-label="Direct link to Contribution Document" title="Direct link to Contribution Document" translate="no"></a></h2>
+<p>Documentation is an important component of the FastExcel official website and serves as a vital bridge between the project and the community.The FastExcel official website is built using <a href="https://docusaurus.io/" target="_blank" rel="noopener noreferrer">Docusaurus</a>, and the documentation is maintained in the <a href="https://github.com/fast-excel/fastexcel/tree/main/website" target="_blank" rel="noopener noreferrer">website</a> directory.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="requirements">Requirements<a href="#requirements" class="hash-link" aria-label="Direct link to Requirements" title="Direct link to Requirements" translate="no"></a></h3>
+<ul>
+<li><a href="https://nodejs.org/en/download/" target="_blank" rel="noopener noreferrer">Node.js</a> version 18.0 or above (which can be checked by running <code>node -v</code>). You can use <a href="https://github.com/nvm-sh/nvm" target="_blank" rel="noopener noreferrer">nvm</a> for managing multiple Node versions on a single machine installed.</li>
+<li>When installing Node.js, you are recommended to check all checkboxes related to dependencies.</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="directory-structure-description">Directory Structure Description<a href="#directory-structure-description" class="hash-link" aria-label="Direct link to Directory Structure Description" title="Direct link to Directory Structure Description" translate="no"></a></h3>
+<p>Docusaurus supports I18n. The main documentation directory structure that needs to be maintained is as follows:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token builtin class-name">.</span><span class="token plain"></span><br></span><span class="token-line" s [...]
+<p>The directory structure for single-language documents is as follows:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token builtin class-name">.</span><span class="token plain"></span><br></span><span class="token-line" s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="documentation-writing-guidelines">Documentation Writing Guidelines<a href="#documentation-writing-guidelines" class="hash-link" aria-label="Direct link to Documentation Writing Guidelines" title="Direct link to Documentation Writing Guidelines" translate="no"></a></h3>
+<ul>
+<li>Use file paths with the <code>.md</code> extension</li>
+</ul>
+<div class="language-markdown codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-markdown codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token url" style="color:#36acaa">[</span><span class="token url content" style="color:#36acaa">E [...]
+<ul>
+<li>Use paths relative to the docs/ directory</li>
+</ul>
+<div class="language-markdown codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-markdown codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token url" style="color:#36acaa">[</span><span class="token url content" style="color:#36acaa">E [...]
+<ul>
+<li>Image files must be stored in the <code>static/img</code> directory and referenced using relative directory paths.</li>
+</ul>
+<div class="language-markdown codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-markdown codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token url" style="color:#36acaa">[</span><span class="token url content" style="color:#36acaa">i [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="preview-and-generate-static-files">Preview and generate static files<a href="#preview-and-generate-static-files" class="hash-link" aria-label="Direct link to Preview and generate static files" title="Direct link to Preview and generate static files" translate="no"></a></h3>
+<p>Enter the <code>website</code> directory and execute the command</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="installation">Installation<a href="#installation" class="hash-link" aria-label="Direct link to Installation" title="Direct link to Installation" translate="no"></a></h4>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">yarn</span><span class="token plain"> </span><span class="token fu [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="local-development">Local Development<a href="#local-development" class="hash-link" aria-label="Direct link to Local Development" title="Direct link to Local Development" translate="no"></a></h4>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># English</span><span class="token plain"></span> [...]
+<p>This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.</p>
+<blockquote>
+<p>Only one language version can be run at a time.</p>
+</blockquote>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="buildoptional">Build(Optional)<a href="#buildoptional" class="hash-link" aria-label="Direct link to Build(Optional)" title="Direct link to Build(Optional)" translate="no"></a></h4>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">yarn</span><span class="token plain"> build</span><br></span></cod [...]
+<p>This command generates static content into the <code>build</code> directory and can be served using any static contents hosting service.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="document-format-inspection">Document Format Inspection<a href="#document-format-inspection" class="hash-link" aria-label="Direct link to Document Format Inspection" title="Direct link to Document Format Inspection" translate="no"></a></h3>
+<p>FastExcel uses <a href="https://github.com/DavidAnson/markdownlint-cli2" target="_blank" rel="noopener noreferrer">markdownlint-cli2</a> to check document formatting. After writing the relevant Markdown articles, you can run the following command locally to pre-check whether the Markdown formatting meets the requirements:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token builtin class-name">cd</span><span class="token plain"> website </span><span class="token operator [...]
+<ul>
+<li>For formatting rules for Markdown articles you can refer to: <a href="https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md" target="_blank" rel="noopener noreferrer">Markdown-lint-rules</a></li>
+<li>Markdown format configuration file in the project: <a href="https://github.com/fast-excel/fastexcel/blob/main/website/.markdownlint-cli2.jsonc" target="_blank" rel="noopener noreferrer">.markdownlint-cli2.jsonc</a></li>
+</ul>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="other-ways-to-contribute">Other Ways to Contribute<a href="#other-ways-to-contribute" class="hash-link" aria-label="Direct link to Other Ways to Contribute" title="Direct link to Other Ways to Contribute" translate="no"></a></h2>
+<p>Apart from directly contributing code, the following ways are also valuable support for FastExcel:</p>
+<ul>
+<li>Answering other users' questions.</li>
+<li>Assisting in reviewing others' PRs.</li>
+<li>Providing improvement suggestions.</li>
+<li>Writing technical blogs to promote FastExcel.</li>
+<li>Sharing project-related knowledge in the community.</li>
+</ul>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="code-style">Code Style<a href="#code-style" class="hash-link" aria-label="Direct link to Code Style" title="Direct link to Code Style" translate="no"></a></h2>
+<p>FastExcel uses <a href="https://github.com/diffplug/spotless" target="_blank" rel="noopener noreferrer">Spotless</a> as its code formatting tool. Please ensure you run the following command to automatically format your code before submitting:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token plain">mvn spotless:apply</span><br></span></code></pre></div></div>
+<hr>
+<p>Finally, thank you for your support of FastExcel!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/community/contribution.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_eJSs" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3- [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/development/index.html b/community/development/index.html
new file mode 100644
index 00000000..ee393470
--- /dev/null
+++ b/community/development/index.html
@@ -0,0 +1,46 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-development" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Run or Build | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community/development/"><meta data-rh [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This section explains how to build FastExcel from source code.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="development-environment">Development environment<a href="#development-environment" class="hash-link" aria-label="Direct link to Development environment" title="Direct link to Development environment" translate="no"></a></h2>
+<p>To develop FastExcel, you need <strong>Maven 3.8.1 or above</strong> and <strong>JDK (Java Development Kit) 17 or above</strong>. Currently, it is recommended to use <strong>Maven 3.9.0 or above</strong> and <strong>Java 21 or above</strong> for the development environment. However, you must use <strong>Java 1.8</strong> compatible language features during compilation to ensure FastExcel can run in environments with Java 1.8 or above.</p>
+<blockquote>
+<p>You can use tools such as <a href="https://sdkman.io/" target="_blank" rel="noopener noreferrer">SDKMAN</a> to configure multiple versions of the Java toolchain.</p>
+</blockquote>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="idea-settings">IDEA Settings<a href="#idea-settings" class="hash-link" aria-label="Direct link to IDEA Settings" title="Direct link to IDEA Settings" translate="no"></a></h2>
+<p>The following guidelines are for development using <code>IntelliJ IDEA</code>. Other versions may have some minor differences. Please follow all steps carefully.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="project-settings">Project Settings<a href="#project-settings" class="hash-link" aria-label="Direct link to Project Settings" title="Direct link to Project Settings" translate="no"></a></h3>
+<p>Set the project <a href="https://www.jetbrains.com/help/idea/project-settings-and-structure.html#language-level" target="_blank" rel="noopener noreferrer">Language Level</a> to <code>8</code> to ensure backward compatibility.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="git-usage">Git Usage<a href="#git-usage" class="hash-link" aria-label="Direct link to Git Usage" title="Direct link to Git Usage" translate="no"></a></h2>
+<p>Ensure that you have registered a GitHub account and follow the steps below to configure your local development environment:</p>
+<p><strong>Fork the repository</strong>: Click the <code>Fork</code> button on the FastExcel <a href="https://github.com/fast-excel/fastexcel" target="_blank" rel="noopener noreferrer">GitHub page</a> to copy the project to your GitHub account.</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token plain">https://github.com/</span><span class="token operator" style="color:#393A34"><</span><sp [...]
+<p><strong>Clone Repository</strong>: Run the following command to clone the forked project to your local machine:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> clone git@github.com:</span>< [...]
+<p><strong>Set Upstream Repository</strong>: Set the official repository as <code>upstream</code> for easy synchronization of updates:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> remote </span><span class="to [...]
+<p>Running <code>git remote -v</code> can verify if the configuration is correct.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="compilation">Compilation<a href="#compilation" class="hash-link" aria-label="Direct link to Compilation" title="Direct link to Compilation" translate="no"></a></h2>
+<p>Run the following command to compile</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token plain">mvn clean </span><span class="token function" style="color:#d73a49">install</span><span cla [...]
+<p>To speed up the build process, you can:</p>
+<ul>
+<li>Use <code>-DskipTests</code> to skip unit tests</li>
+<li>Use Maven's parallel build feature, e.g., <code>mvn clean install -DskipTests -T 1C</code></li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="code-style">Code Style<a href="#code-style" class="hash-link" aria-label="Direct link to Code Style" title="Direct link to Code Style" translate="no"></a></h2>
+<p>FastExcel uses <a href="https://github.com/diffplug/spotless" target="_blank" rel="noopener noreferrer">Spotless</a> as its code formatting tool. Please ensure you run the following command to automatically format your code before submitting:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token plain">mvn spotless:apply</span><br></span></code></pre></div></div></div><footer class="theme-doc [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/fill/index.html b/docs/fill/index.html
new file mode 100644
index 00000000..4994bdab
--- /dev/null
+++ b/docs/fill/index.html
@@ -0,0 +1,78 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-fill/fill" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Fill | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/fill/"><meta data-rh="true" property="og [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This section explains how to use FastExcel to fill data into files.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="simple-fill">Simple Fill<a href="#simple-fill" class="hash-link" aria-label="Direct link to Simple Fill" title="Direct link to Simple Fill" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Fill data into Excel based on a template file using objects or Map.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="template">Template<a href="#template" class="hash-link" aria-label="Direct link to Template" title="Direct link to Template" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsIAAABkCAYAAACMyFYDAAAABWZkRUNSJJPjAOWrYpkAACKvSURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TF3mMpf9J7zoJS9Tl7nMVS96ycvVZS5z2X/KC1/yCnXZv4sBcJnLXPbvhgCAy1zmIhAAXOYylz3bQNibIgC47N/FALjMZS77d0EgAeAyl7kIBACXucxlzzYQAFz2n2YAXOYyl/07IADgMpe5CIQEgMtc5rKnC4THA7A3BQBc9u9kAFzmMpe5zGUuc5nLXLY/gPCvADwZCiQAXPbvZgBc5jKXPdsQAHCZy1wEAoDLXOayfwcF9gbgsv8UY8M [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result">Result<a href="#result" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlUAAABZCAYAAAAXW9HgAAAABWZkRUNSJJPjAOWrYpkAABm1SURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TPflne9+r376M5/Rr33ta+qy/eXTn/mMvvPd79UXvfhl+u/ywnNfou94xzv0U5/6lH7ta19Tlz1dn/rUp/Qd73iHvvDcl+iLXvwyTbzoJS/Tvb3zPe/VT33qU/q1r31NXeYyl7nMZS4yAPuyu3cPj61ex933PYjL9pfHVq9jd+8eAP5dxBh6+4dYtXYDd9/3IC57ulat3UBv/xBiDAAIAOxtd+8eVq3bwN33P4jLXPb/1d33P4TLXOayx2M [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="fill-list">Fill List<a href="#fill-list" class="hash-link" aria-label="Direct link to Fill List" title="Direct link to Fill List" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Fill multiple data items into a template list, supporting in-memory batch operations and file cache batch filling.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="template-1">Template<a href="#template-1" class="hash-link" aria-label="Direct link to Template" title="Direct link to Template" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVcAAABOCAYAAACUn1X/AAAABWZkRUNSJJPjAOWrYpkAABJkSURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TF3mMpf9u7zoJS9Tl7lsbwbAZS5z2b8DAgAuc9nejA3L/CedfsqJ2LCMy57I6aeciA3LuOw/6fRTTsSGZZ4Ntlrm/5vTTz4RWy3jsify4hc+n6a6HPtiAP6TPM8DwGVPxPM8AFz2n+R5HgAueyKe5wHgsiciIgDsiwH4T/J9HwCXPRHf9wFw2X+S7/sAuOyJ+L4PgMueiIgAsC8G4D/J8zwAXPZEPM8DwGX/SZ7nAeCyJ+J5HgAueyIiAsC [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result-1">Result<a href="#result-1" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/listFill_result-c126158195ba15c7ad37c143c1f2940b.png" width="445" height="432" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="complex-fill">Complex Fill<a href="#complex-fill" class="hash-link" aria-label="Direct link to Complex Fill" title="Direct link to Complex Fill" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Fill various data types in a template, including lists and regular variables.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="template-2">Template<a href="#template-2" class="hash-link" aria-label="Direct link to Template" title="Direct link to Template" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfcAAACICAYAAAD6dqKHAAAABWZkRUNSJJPjAOWrYpkAACNGSURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TF3mMpf9u7zoJS9Tl7nMVS96ycvVZf+tDIDLXOYyl7nMZS5zkQFwmctc9u+AAIDLXOYiEABc9t/K2LDMf9Lpp5yIDcu47ImcfsqJ2LCMy/6TTj/lRGxY5tlgq2Vc9v/R6SefiK2WcdkTsdUS/ymnn3wCtlrCZU/k9JNPwFZLTDIA/0me5wHgsifieR4ALvtP8jwPAJe57F/xPA8Al/238DwPAJc9Ec/zAJhkAP6TfN8HwGVPxPd9AFz2n+T [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result-2">Result<a href="#result-2" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/complexFill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png" width="502" height="471" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="complex-fill-with-large-data">Complex Fill with Large Data<a href="#complex-fill-with-large-data" class="hash-link" aria-label="Direct link to Complex Fill with Large Data" title="Direct link to Complex Fill with Large Data" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-3">Overview<a href="#overview-3" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Optimize performance for filling large data, ensuring the template list is at the last row, and subsequent data is filled using <code>WriteTable</code>.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-3">Code Example<a href="#code-example-3" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="template-3">Template<a href="#template-3" class="hash-link" aria-label="Direct link to Template" title="Direct link to Template" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfYAAAB7CAYAAACGsqIOAAAABWZkRUNSJJPjAOWrYpkAAB9XSURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TJ/IO9/9Xv30Zz6jX/va19Rl+8unP/MZfee736svevHL9N/lhee+RN/xjnfopz71Kf3a176mLnu6PvWpT+k73vEOfeG5L9EXvfhlmnjRS16me3vne96rn/rUp/RrX/uausxlLnPZf5IBeCK7e/fw2Op13H3fg7hsf3ls9Tp29+4B4N9FjKG3f4hVazdw930P4rKna9XaDfT2DyHGAIAAwN529+5h1boN3H3/g7jMZf9f3X3/Q7jsv4kBcJn [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result-3">Result<a href="#result-3" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/complexFillWithTable_result-21cb25bd329df76baf680fd0f94ef43b.png" width="495" height="469" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="horizontal-fill">Horizontal Fill<a href="#horizontal-fill" class="hash-link" aria-label="Direct link to Horizontal Fill" title="Direct link to Horizontal Fill" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-4">Overview<a href="#overview-4" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Fill list data horizontally, suitable for scenarios with dynamic column numbers.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-4">Code Example<a href="#code-example-4" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="template-4">Template<a href="#template-4" class="hash-link" aria-label="Direct link to Template" title="Direct link to Template" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaoAAACHCAYAAABHyh2qAAAABWZkRUNSJJPjAOWrYpkAAB6PSURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TF3mMpc9m170kpepy1zmshe95OX6n2IAXOYylz1bEABwmctcBEIC4D/FALjMZS5zmctc9r/MALjMZS57NiAA4DKXuQgEgP80Y8My/06nn3IiNizjMpf9f3T6KSdiwzK2WsZlj+f0k0/EVsu47ImcfvKJ2GqZ/0W2WuLf7fSTT8BWS9QyAP9OnucB4DKX/X/keR4ALnsinucB4LIn4nkeAC57Ip7nAVDLAPw7+b4PgMtc9v+R7/sAuOyJ+L4 [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result-4">Result<a href="#result-4" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/horizontalFill_result-6c236308703bda3338b429425b18c2a4.png" width="853" height="135" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="fill-multiple-lists-together">Fill Multiple Lists Together<a href="#fill-multiple-lists-together" class="hash-link" aria-label="Direct link to Fill Multiple Lists Together" title="Direct link to Fill Multiple Lists Together" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-5">Overview<a href="#overview-5" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Support filling multiple lists simultaneously, with prefixes to differentiate between lists.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-5">Code Example<a href="#code-example-5" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="template-5">Template<a href="#template-5" class="hash-link" aria-label="Direct link to Template" title="Direct link to Template" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/compositeFill_file-ba1c7222a9c310e389363a04777fa279.png" width="847" height="242" class="img_U4Mj"></p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result-5">Result<a href="#result-5" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/compositeFill_result-94a945a637d60e2b0e8c055c83f92d8e.png" width="922" height="601" class="img_U4Mj"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/docs/fill/fill.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height= [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/help/annotation/index.html b/docs/help/annotation/index.html
new file mode 100644
index 00000000..5a8d702f
--- /dev/null
+++ b/docs/help/annotation/index.html
@@ -0,0 +1,104 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-help/annotation" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Annotation | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/help/annotation/"><meta data-rh="t [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This section describes how to read annotations provided in FastExcel.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="entity-class-annotations">Entity Class Annotations<a href="#entity-class-annotations" class="hash-link" aria-label="Direct link to Entity Class Annotations" title="Direct link to Entity Class Annotations" translate="no"></a></h2>
+<p>Entity classes are the foundation of read and write operations. FastExcel provides various annotations to help developers easily define fields and formats.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="excelproperty"><code>@ExcelProperty</code><a href="#excelproperty" class="hash-link" aria-label="Direct link to excelproperty" title="Direct link to excelproperty" translate="no"></a></h3>
+<p>Defines the column name in Excel and the field name to map. Specific parameters are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>value</td><td>Empty</td><td>Used to match the header in Excel, must be fully matched. If there are multiple header rows, it will match the last row header.</td></tr><tr><td>order</td><td>Integer.MAX_VALUE</td><td>Higher priority than <code>value</code>, will match the order of entities and data in Excel according to the order of <code>order</code>.</td></tr><tr><td>index</td><td>-1</td><t [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="excelignore"><code>@ExcelIgnore</code><a href="#excelignore" class="hash-link" aria-label="Direct link to excelignore" title="Direct link to excelignore" translate="no"></a></h3>
+<p>By default, all fields will match Excel. Adding this annotation will ignore the field.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="excelignoreunannotated"><code>@ExcelIgnoreUnannotated</code><a href="#excelignoreunannotated" class="hash-link" aria-label="Direct link to excelignoreunannotated" title="Direct link to excelignoreunannotated" translate="no"></a></h3>
+<p>By default, all properties without the <code>@ExcelProperty</code> annotation are involved in read/write operations. Properties with this annotation are not involved in read/write operations.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="datetimeformat"><code>@DateTimeFormat</code><a href="#datetimeformat" class="hash-link" aria-label="Direct link to datetimeformat" title="Direct link to datetimeformat" translate="no"></a></h3>
+<p>Date conversion: When using <code>String</code> to receive data in Excel date format, this annotation will be called. The parameters are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>value</td><td>Empty</td><td>Refer to <code>java.text.SimpleDateFormat</code> .</td></tr><tr><td>use1904windowing</td><td>Automatically selected</td><td>In Excel, time is stored as a double-precision floating-point number starting from 1900, but sometimes the default start date is 1904, so set this value to change the default start date to 1904.</td></tr></tbody></table>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="numberformat"><code>@NumberFormat</code><a href="#numberformat" class="hash-link" aria-label="Direct link to numberformat" title="Direct link to numberformat" translate="no"></a></h3>
+<p>Number conversion, using <code>String</code> to receive data in Excel number format will trigger this annotation.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>value</td><td>Empty</td><td>Refer to <code>java.text.DecimalFormat</code>.</td></tr><tr><td>roundingMode</td><td>RoundingMode.HALF_UP</td><td>Set the rounding mode when formatting</td></tr></tbody></table>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="columnwidth"><code>@ColumnWidth</code><a href="#columnwidth" class="hash-link" aria-label="Direct link to columnwidth" title="Direct link to columnwidth" translate="no"></a></h3>
+<p>Specifies the column width.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/docs/help/annotation.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_eJSs" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0. [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/help/core-class/index.html b/docs/help/core-class/index.html
new file mode 100644
index 00000000..784581ed
--- /dev/null
+++ b/docs/help/core-class/index.html
@@ -0,0 +1,344 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-help/core-class" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Core Class | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/help/core-class/"><meta data-rh="t [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This section introduces the core classes in FastExcel.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
+<p>If you use FastExcel for custom read/write operations, you need to understand its important concepts and classes.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="core-concepts">Core Concepts<a href="#core-concepts" class="hash-link" aria-label="Direct link to Core Concepts" title="Direct link to Core Concepts" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="fastexcel">FastExcel<a href="#fastexcel" class="hash-link" aria-label="Direct link to FastExcel" title="Direct link to FastExcel" translate="no"></a></h3>
+<p>Entry class used to start various operations</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="multiple-builders">Multiple Builders<a href="#multiple-builders" class="hash-link" aria-label="Direct link to Multiple Builders" title="Direct link to Multiple Builders" translate="no"></a></h3>
+<p>There are corresponding Builder classes for read and write operations:</p>
+<ul>
+<li><strong><code>ExcelReaderBuilder</code> and <code>ExcelWriterBuilder</code></strong>:Constructs a <code>ReadWorkbook</code> or <code>WriteWorkbook</code>, which can be understood as an Excel object; only one Excel needs to be constructed</li>
+<li><strong><code>ExcelReaderSheetBuilder</code> and <code>ExcelWriterSheetBuilder</code></strong>:Constructs a <code>ReadSheet</code> or <code>WriteSheet</code> object, which can be understood as a page in Excel; each page needs to be constructed</li>
+<li><strong><code>CsvReaderBuilder</code> and <code>CsvWriterBuilder</code></strong>:Construct the CsvFormat required internally.</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="readlistener">ReadListener<a href="#readlistener" class="hash-link" aria-label="Direct link to ReadListener" title="Direct link to ReadListener" translate="no"></a></h3>
+<p>Called to handle data after each row is read</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="writehandler">WriteHandler<a href="#writehandler" class="hash-link" aria-label="Direct link to WriteHandler" title="Direct link to WriteHandler" translate="no"></a></h3>
+<p>Called to handle data for each operation, including creating cells, creating tables, etc.</p>
+<p>All configurations are inherited. The configuration of <code>Workbook</code> will be inherited by <code>Sheet</code>, so when setting parameters in FastExcel, the scope is the entire sheet before the <code>FastExcel...sheet()</code> method, and the scope is the entire csv before the <code>FastExcel...csv()</code> method.</p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="writehandler-1">WriteHandler<a href="#writehandler-1" class="hash-link" aria-label="Direct link to WriteHandler" title="Direct link to WriteHandler" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p><code>WriteHandler</code> is an interface provided by FastExcel for intercepting the writing process when writing to an Excel file, allowing developers to customize operations such as setting cell styles, merging cells, adding hyperlinks, inserting comments, etc. By implementing <code>WriteHandler</code>, developers can have precise control over the writing process to meet complex business requirements.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="writehandler-interface-categories">WriteHandler Interface Categories<a href="#writehandler-interface-categories" class="hash-link" aria-label="Direct link to WriteHandler Interface Categories" title="Direct link to WriteHandler Interface Categories" translate="no"></a></h3>
+<p>FastExcel provides the following WriteHandler interfaces for handling different writing scenarios:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Interface Name</th><th>Description</th></tr></thead><tbody><tr><td><strong>CellWriteHandler</strong></td><td>Interceptor at the cell level, allows custom operations on cell data and styles.</td></tr><tr><td><strong>RowWriteHandler</strong></td><td>Row-level interceptor, used to perform additional operations after row data is written.</td></tr><tr><td><strong>SheetWriteHandler</strong></td><td>Worksheet-level interceptor, used to set worksheet-level properties (such [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="use">Use<a href="#use" class="hash-link" aria-label="Direct link to Use" title="Direct link to Use" translate="no"></a></h3>
+<ol>
+<li>
+<p>Implement the corresponding <code>WriteHandler</code> interface:</p>
+<ul>
+<li>Choose the appropriate interface (<code>CellWriteHandler</code>, <code>RowWriteHandler</code>, or <code>SheetWriteHandler</code>).</li>
+<li>Implement the methods in the interface, defining custom logic in the methods.</li>
+</ul>
+</li>
+<li>
+<p>Register the WriteHandler:</p>
+<ul>
+<li>Register your custom WriteHandler when calling <code>FastExcel.write()</code> using <code>.registerWriteHandler()</code>.</li>
+</ul>
+</li>
+</ol>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h3>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="set-cell-style">Set Cell Style<a href="#set-cell-style" class="hash-link" aria-label="Direct link to Set Cell Style" title="Direct link to Set Cell Style" translate="no"></a></h4>
+<p>Set the background color to yellow and font color to blue for all content cells.</p>
+<p>Customise a <code>CellWriteHandler</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Register and Use</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="inserting-comments">Inserting Comments<a href="#inserting-comments" class="hash-link" aria-label="Direct link to Inserting Comments" title="Direct link to Inserting Comments" translate="no"></a></h4>
+<p>Insert a comment for the first row, second column of the header.</p>
+<p>Customise a <code>RowWriteHandler</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Register and Use</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="adding-dropdown-lists">Adding Dropdown Lists<a href="#adding-dropdown-lists" class="hash-link" aria-label="Direct link to Adding Dropdown Lists" title="Direct link to Adding Dropdown Lists" translate="no"></a></h4>
+<p>Add a dropdown list for the first column of the first two rows.</p>
+<p>Customise a <code>SheetWriteHandler</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Register and Use</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="readlistener-1">ReadListener<a href="#readlistener-1" class="hash-link" aria-label="Direct link to ReadListener" title="Direct link to ReadListener" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p><code>ReadListener</code> is an interface provided by FastExcel for processing each row of data when reading an Excel file. It is one of the core components of FastExcel, allowing developers to implement custom logic to handle data rows, process headers, and even perform specific operations after reading is complete.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="methods">Methods<a href="#methods" class="hash-link" aria-label="Direct link to Methods" title="Direct link to Methods" translate="no"></a></h3>
+<p><code>ReadListener</code> is a generic interface, where the generic type is the type of object to be read (e.g., <code>DemoData</code>). Its core methods are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Method Name</th><th>Description</th></tr></thead><tbody><tr><td><code>void invoke(T data, AnalysisContext context)</code></td><td>Triggered when a line of data is read. <code>data</code> is the parsed current line object, and <code>context</code> contains the read context information.</td></tr><tr><td><code>void doAfterAllAnalysed(AnalysisContext context)</code></td><td>Called after all data parsing is complete, it can be used for resource release or statistical dat [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="use-cases">Use Cases<a href="#use-cases" class="hash-link" aria-label="Direct link to Use Cases" title="Direct link to Use Cases" translate="no"></a></h3>
+<ul>
+<li><strong>Simplify code</strong>: Suitable for simple row-by-row processing, reducing control over memory and processing logic.</li>
+<li><strong>Exception handling</strong>: Able to capture and handle exceptions during the reading process.</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="implementation-steps">Implementation Steps<a href="#implementation-steps" class="hash-link" aria-label="Direct link to Implementation Steps" title="Direct link to Implementation Steps" translate="no"></a></h3>
+<ol>
+<li>
+<p>Implement the <code>ReadListener</code> interface:</p>
+<ul>
+<li>Use an entity class as the generic type (e.g., <code>ReadListener<DemoData></code>).</li>
+<li>Implement the core methods and add data processing logic as needed.</li>
+</ul>
+</li>
+<li>
+<p>Register the custom <code>ReadListener</code> during reading:</p>
+<ul>
+<li>When calling the <code>FastExcel.read()</code> method, pass in the custom listener instance.</li>
+</ul>
+</li>
+</ol>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="example-1">Example<a href="#example-1" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h3>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="process-row-data">Process Row Data<a href="#process-row-data" class="hash-link" aria-label="Direct link to Process Row Data" title="Direct link to Process Row Data" translate="no"></a></h4>
+<p>Customise a <code>ReadListener</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="processing-table-headers">Processing Table Headers<a href="#processing-table-headers" class="hash-link" aria-label="Direct link to Processing Table Headers" title="Direct link to Processing Table Headers" translate="no"></a></h4>
+<p>Customise a <code>ReadListener</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="handling-exceptions">Handling Exceptions<a href="#handling-exceptions" class="hash-link" aria-label="Direct link to Handling Exceptions" title="Direct link to Handling Exceptions" translate="no"></a></h4>
+<p>Customise a <code>ReadListener</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="pagination">Pagination<a href="#pagination" class="hash-link" aria-label="Direct link to Pagination" title="Direct link to Pagination" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<blockquote>
+<p><strong>Note</strong>:</p>
+<ul>
+<li><code>PageReadListener</code> is a convenient utility class provided by FastExcel that supports batch processing based on pagination.</li>
+<li>The default page size is 1, which can be specified using the constructor.</li>
+</ul>
+</blockquote>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="analysiseventlistener">AnalysisEventListener<a href="#analysiseventlistener" class="hash-link" aria-label="Direct link to AnalysisEventListener" title="Direct link to AnalysisEventListener" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-3">Overview<a href="#overview-3" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p><code>AnalysisEventListener</code> is the core listener used in FastExcel for processing Excel data. It is based on an event-driven mechanism, allowing developers to perform custom operations when reading each row of data and to perform corresponding processing after all data has been parsed. It is typically used for streaming large amounts of data and is suitable for scenarios that require processing large data volumes and performing batch operations (such as batch insertion into a d [...]
+<p>Core Features:</p>
+<ul>
+<li><strong>Line-by-line reading</strong>: <code>AnalysisEventListener</code> reads data from Excel files line by line, executing the <code>invoke</code> method when reading each line of data, making it suitable for streaming processing.</li>
+<li><strong>Memory control</strong>: You can set <code>BATCH_COUNT</code> to control the amount of data processed each time, preventing memory overflow.</li>
+<li><strong>Batch Processing</strong>: You can cache a certain amount of data and process it in batches, suitable for scenarios with large data volumes.</li>
+<li><strong>Event-Driven</strong>: The <code>invoke</code> method is called when reading each row of data; after all data has been read, the <code>doAfterAllAnalysed</code> method is called.</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="methods-1">Methods<a href="#methods-1" class="hash-link" aria-label="Direct link to Methods" title="Direct link to Methods" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Method Name</th><th>Description</th></tr></thead><tbody><tr><td><code>invoke(T data, AnalysisContext context)</code></td><td>Triggered when a line of data is read. <code>data</code> is the parsed current line object, and <code>context</code> contains the read context information.</td></tr><tr><td><code>doAfterAllAnalysed(AnalysisContext context)</code></td><td>Called after all data parsing is complete, used for resource cleanup or post-processing of batch operations [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="use-cases-1">Use Cases<a href="#use-cases-1" class="hash-link" aria-label="Direct link to Use Cases" title="Direct link to Use Cases" translate="no"></a></h3>
+<ul>
+<li><strong>Streaming Data Processing</strong>: For example, when reading large amounts of data, you can process the data as you read it, reducing memory consumption.</li>
+<li><strong>Batch insertion into a database</strong>: For example, batch processing row data from Excel and storing it in a database.</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="implementation-steps-1">Implementation Steps<a href="#implementation-steps-1" class="hash-link" aria-label="Direct link to Implementation Steps" title="Direct link to Implementation Steps" translate="no"></a></h3>
+<ol>
+<li>Inherit from <code>AnalysisEventListener</code> and implement its methods.</li>
+<li>Pass in a custom listener during reading and register it using <code>FastExcel.read()</code>.</li>
+</ol>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="example-2">Example<a href="#example-2" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h3>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="process-each-row-of-data-and-batch-import-into-the-database">Process each row of data and batch import into the database<a href="#process-each-row-of-data-and-batch-import-into-the-database" class="hash-link" aria-label="Direct link to Process each row of data and batch import into the database" title="Direct link to Process each row of data and batch import into the database" translate="no"></a></h4>
+<p>Inherit <code>AnalysisEventListener</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="processing-table-headers-1">Processing Table Headers<a href="#processing-table-headers-1" class="hash-link" aria-label="Direct link to Processing Table Headers" title="Direct link to Processing Table Headers" translate="no"></a></h4>
+<p>You can use the <code>invokeHead</code> method to obtain header information for handling dynamic header scenarios or for customising header data parsing.</p>
+<p>Inherit <code>AnalysisEventListener</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="handling-exceptions-1">Handling Exceptions<a href="#handling-exceptions-1" class="hash-link" aria-label="Direct link to Handling Exceptions" title="Direct link to Handling Exceptions" translate="no"></a></h4>
+<p>The <code>onException</code> method is provided so that developers can catch exceptions during reading and handle them (e.g., log errors, skip error lines, etc.).</p>
+<p>Inherit <code>AnalysisEventListener</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="compared-to-readlistener">Compared to ReadListener<a href="#compared-to-readlistener" class="hash-link" aria-label="Direct link to Compared to ReadListener" title="Direct link to Compared to ReadListener" translate="no"></a></h3>
+<p><code>AnalysisEventListener</code> and <code>ReadListener</code> are both interfaces provided by FastExcel, designed to allow developers to perform customised processing when reading Excel files. However, they have some key differences in terms of functionality and use cases.</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="different">Different<a href="#different" class="hash-link" aria-label="Direct link to Different" title="Direct link to Different" translate="no"></a></h4>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Features</th><th><code>AnalysisEventListener</code></th><th><code>ReadListener</code></th></tr></thead><tbody><tr><td><strong>Interface Design</strong></td><td>Event-driven, processes each row of data and saves batch data</td><td>Callback interface, simplifies processing, suitable for simple use</td></tr><tr><td><strong>Memory Control</strong></td><td>Controls memory usage via <code>BATCH_COUNT</code>, suitable for large data volume processing</td><td>No dedicated m [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="how-to-choose">How to choose<a href="#how-to-choose" class="hash-link" aria-label="Direct link to How to choose" title="Direct link to How to choose" translate="no"></a></h4>
+<p>Use <code>AnalysisEventListener</code>:</p>
+<ul>
+<li>If you need to control memory consumption, batch process data, or handle complex read logic (such as paginated reading or batch writing to a database).</li>
+<li>Suitable for processing large datasets, offering greater flexibility.</li>
+</ul>
+<p>Use <code>ReadListener</code>:</p>
+<ul>
+<li>If you want to simplify your code and do not have complex memory control requirements, and only need to handle the logic for each row of data.</li>
+<li>Suitable for simple Excel data reading and exception handling scenarios.</li>
+</ul>
+<p>In summary, <code>ReadListener</code> is a more simplified interface suitable for simpler scenarios, while <code>AnalysisEventListener</code> offers greater control and scalability, making it suitable for complex data processing requirements. Developers can choose the appropriate listener based on their actual needs.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="converter">Converter<a href="#converter" class="hash-link" aria-label="Direct link to Converter" title="Direct link to Converter" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-4">Overview<a href="#overview-4" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p><code>Converter</code> is an interface provided by FastExcel for converting data when processing Excel files. It allows developers to customise operations by implementing the <code>Converter</code> interface to define custom data conversion logic.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="methods-2">Methods<a href="#methods-2" class="hash-link" aria-label="Direct link to Methods" title="Direct link to Methods" translate="no"></a></h3>
+<p><code>Converter</code> is a generic interface, and the generic type is the object type to be converted (such as <code>Date</code>). Its core methods are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Method Name</th><th>Description</th></tr></thead><tbody><tr><td><code>Class<?> supportJavaTypeKey()</code><em>(Optional)</em></td><td>Returns the supported Java object types.</td></tr><tr><td><code>CellDataTypeEnum supportExcelTypeKey()</code><em>(Optional)</em></td><td>Returns the supported Excel cell types, enumerated as CellDataTypeEnum.</td></tr><tr><td><code>T convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalCo [...]
+<p>FastExcel provides many commonly used type converters by default, which are already registered in <code>DefaultConverterLoader</code>.</p>
+<p>You can customise converters, but the types must not overlap with the default types. When registering types, use <code>ConverterKeyBuild.buildKey(converter.supportJavaTypeKey(), converter.supportExcelTypeKey())</code> as the key value.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="use-cases-2">Use Cases<a href="#use-cases-2" class="hash-link" aria-label="Direct link to Use Cases" title="Direct link to Use Cases" translate="no"></a></h3>
+<ul>
+<li><strong>Data Conversion</strong>: Convert Excel data, such as converting dates to strings, converting strings to dates, etc.</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="implementation-steps-2">Implementation Steps<a href="#implementation-steps-2" class="hash-link" aria-label="Direct link to Implementation Steps" title="Direct link to Implementation Steps" translate="no"></a></h3>
+<ol>
+<li>Implement the <code>Converter</code> interface and its methods.</li>
+<li>Pass in a custom converter when reading or writing.</li>
+</ol>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="example-3">Example<a href="#example-3" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h3>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="timestampnumber-converter">TimestampNumber Converter<a href="#timestampnumber-converter" class="hash-link" aria-label="Direct link to TimestampNumber Converter" title="Direct link to TimestampNumber Converter" translate="no"></a></h4>
+<p>Implement <code>Converter</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/help/faq/index.html b/docs/help/faq/index.html
new file mode 100644
index 00000000..1ab772b0
--- /dev/null
+++ b/docs/help/faq/index.html
@@ -0,0 +1,264 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-help/faq" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">FAQ | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/help/faq/"><meta data-rh="true" property= [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This section describes common issues that may arise when using FastExcel.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="feature-limitations">Feature Limitations<a href="#feature-limitations" class="hash-link" aria-label="Direct link to Feature Limitations" title="Direct link to Feature Limitations" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> What functions does FastExcel support? What functions are not supported?</li>
+<li><strong>A:</strong> FastExcel supports efficient reading and writing operations for Excel files, including support for CSV format. Unsupported functions include concurrent writing to a single file, reading and writing image macros, etc.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="choosing-write-operations">Choosing Write Operations<a href="#choosing-write-operations" class="hash-link" aria-label="Direct link to Choosing Write Operations" title="Direct link to Choosing Write Operations" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> When writing to Excel, when should I choose the fill mode and when should I choose direct writing?</li>
+<li><strong>A:</strong> For complex export content, it is recommended to use template filling; for simple format scenarios, direct writing is more efficient.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="lombok-annotations">Lombok Annotations<a href="#lombok-annotations" class="hash-link" aria-label="Direct link to Lombok Annotations" title="Direct link to Lombok Annotations" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> What is the role of Lombok annotations in using FastExcel?</li>
+<li><strong>A:</strong> Commonly used Lombok annotations in entity classes such as <code>@Getter</code>, <code>@Setter</code>, <code>@EqualsAndHashCode</code> are used to automatically generate getter, setter methods, equals, and hashCode methods. If you do not want to use these auto-generated methods, you can implement them yourself.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="field-matching">Field Matching<a href="#field-matching" class="hash-link" aria-label="Direct link to Field Matching" title="Direct link to Field Matching" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> How to solve the problem of some fields not being read or written correctly?</li>
+<li><strong>A:</strong> Ensure that the entity class fields follow the camel case naming convention, avoid using <code>@Accessors(chain = true)</code>, and recommend using <code>@Builder</code> instead. Also, ensure that the entity class uses the <code>@ExcelProperty</code> annotation to mark the fields participating in reading and writing.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="compatibility-issues">Compatibility Issues<a href="#compatibility-issues" class="hash-link" aria-label="Direct link to Compatibility Issues" title="Direct link to Compatibility Issues" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> What should I do if I encounter compatibility issues when using FastExcel?</li>
+<li><strong>A:</strong> Common compatibility issues include <code>NoSuchMethodException</code>, <code>ClassNotFoundException</code>, <code>NoClassDefFoundError</code>, etc., usually caused by jar conflicts. It is recommended to check and clean up dependencies in the project to ensure that the version of FastExcel used is compatible with other libraries in the project.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="online-deployment">Online Deployment<a href="#online-deployment" class="hash-link" aria-label="Direct link to Online Deployment" title="Direct link to Online Deployment" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> Why are there issues in the online environment when it runs fine locally?</li>
+<li><strong>A:</strong> In most cases, this is due to the lack of necessary font libraries in the online environment. You can solve this problem by installing font libraries (such as <code>dejavu-sans-fonts</code> and <code>fontconfig</code>) or enabling memory processing mode.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="concurrent-reading">Concurrent Reading<a href="#concurrent-reading" class="hash-link" aria-label="Direct link to Concurrent Reading" title="Direct link to Concurrent Reading" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> Why shouldn't the Listener be managed by Spring?</li>
+<li><strong>A:</strong> Listeners should not be managed by Spring because this would cause the Listener to become a singleton, which may lead to data confusion when reading files concurrently. A new Listener instance should be created each time a file is read.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="performance-optimization">Performance Optimization<a href="#performance-optimization" class="hash-link" aria-label="Direct link to Performance Optimization" title="Direct link to Performance Optimization" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> For large files over 10M, what reading strategies does FastExcel provide?</li>
+<li><strong>A:</strong> FastExcel supports default large file processing strategies, as well as customizable high-speed modes and optimization settings for high concurrency and super large files.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="writing-and-format-setting">Writing and Format Setting<a href="#writing-and-format-setting" class="hash-link" aria-label="Direct link to Writing and Format Setting" title="Direct link to Writing and Format Setting" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> How to set cell formats?</li>
+<li><strong>A:</strong> You can set cell formats by using annotations such as <code>@ContentStyle</code> on entity class properties, for example, numeric formats, date formats, etc.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="export-issues">Export Issues<a href="#export-issues" class="hash-link" aria-label="Direct link to Export Issues" title="Direct link to Export Issues" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> How to resolve the issue of Excel files exported cannot be opened or prompt for repair?</li>
+<li><strong>A:</strong> This is usually caused by frontend frameworks or backend interceptors modifying the file stream. It is recommended to test local exports first, ensure the backend logic is correct, and then investigate frontend and network-related issues.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="large-file-reading-optimization">Large File Reading Optimization<a href="#large-file-reading-optimization" class="hash-link" aria-label="Direct link to Large File Reading Optimization" title="Direct link to Large File Reading Optimization" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> How does FastExcel optimize memory usage when reading large files?</li>
+<li><strong>A:</strong> FastExcel automatically determines the processing method for large files. For files with shared strings exceeding 5MB, a file storage strategy is used to reduce memory usage. You can enable ultra-fast mode by setting the <code>readCache</code> parameter, but this will increase memory consumption.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="concurrent-processing">Concurrent Processing<a href="#concurrent-processing" class="hash-link" aria-label="Direct link to Concurrent Processing" title="Direct link to Concurrent Processing" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> How to efficiently read Excel files in a high-concurrency environment?</li>
+<li><strong>A:</strong> In a high-concurrency environment, you can optimize reading performance using <code>SimpleReadCacheSelector</code>. By setting the <code>maxUseMapCacheSize</code> and <code>maxCacheActivateBatchCount</code> parameters, you can control the cache strategy for shared strings, improve hit rates, and reduce file read delays.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="field-mapping">Field Mapping<a href="#field-mapping" class="hash-link" aria-label="Direct link to Field Mapping" title="Direct link to Field Mapping" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to handle cases where entity class fields do not match Excel column names?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can use the <code>@ExcelProperty</code> annotation to specify the correspondence between entity class fields and Excel column names. For example:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@ExcelProperty</span><span class="token punctuation" [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="data-validation">Data Validation<a href="#data-validation" class="hash-link" aria-label="Direct link to Data Validation" title="Direct link to Data Validation" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to validate data when reading Excel data?</p>
+</li>
+<li>
+<p><strong>A:</strong> Data validation logic can be implemented in the <code>ReadListener</code>. For example:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="custom-styles">Custom Styles<a href="#custom-styles" class="hash-link" aria-label="Direct link to Custom Styles" title="Direct link to Custom Styles" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to customize cell styles?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can customize cell styles by implementing the <code>WriteHandler</code> interface. For example:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="fill-mode">Fill Mode<a href="#fill-mode" class="hash-link" aria-label="Direct link to Fill Mode" title="Direct link to Fill Mode" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to solve the issue of fields not being replaced in fill mode?</p>
+</li>
+<li>
+<p><strong>A:</strong> Using the <code>inMemory(true)</code> parameter can ensure correct field replacement. For example:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token class-name">FastExcel</span><span class="token punctuation" style="color:#393A34">.</span><span cl [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="error-handling">Error Handling<a href="#error-handling" class="hash-link" aria-label="Direct link to Error Handling" title="Direct link to Error Handling" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to handle exceptions thrown during the reading process?</p>
+</li>
+<li>
+<p><strong>A:</strong> Exceptions can be caught and handled in the <code>ReadListener</code>. For example:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="dependency-conflict">Dependency Conflict<a href="#dependency-conflict" class="hash-link" aria-label="Direct link to Dependency Conflict" title="Direct link to Dependency Conflict" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> How to resolve dependency conflict issues?</li>
+<li><strong>A:</strong> Common dependency conflicts include POI, ehcache, commons-io, etc. It is recommended to check the dependency tree in the project, ensure that the versions used are compatible with FastExcel. You can use the Maven <code>dependency:tree</code> command to view the dependency tree.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="performance-monitoring">Performance Monitoring<a href="#performance-monitoring" class="hash-link" aria-label="Direct link to Performance Monitoring" title="Direct link to Performance Monitoring" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to monitor the performance of FastExcel?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can monitor the performance of FastExcel by enabling debug logging. For example:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token class-name">LoggerContext</span><span class="token plain"> lc </span><span class="token operator" [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="multi-sheet-reading">Multi-Sheet Reading<a href="#multi-sheet-reading" class="hash-link" aria-label="Direct link to Multi-Sheet Reading" title="Direct link to Multi-Sheet Reading" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to monitor the performance of FastExcel?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can monitor the performance of FastExcel by enabling debug logging. For example:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token class-name">FastExcel</span><span class="token punctuation" style="color:#393A34">.</span><span cl [...]
+<p>Alternatively, you can get information on all sheets before reading:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token class-name">ExcelReader</span><span class="token plain"> excelReader </span><span class="token ope [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="get-total-rows-in-excel">Get Total Rows in Excel<a href="#get-total-rows-in-excel" class="hash-link" aria-label="Direct link to Get Total Rows in Excel" title="Direct link to Get Total Rows in Excel" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to get the total number of rows in an Excel file?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can use <code>analysisContext.readSheetHolder().getApproximateTotalRowNumber()</code> method in the listener to get an approximate number of rows. For example:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Override</span><span class="token plain"></span><br [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="memory-mode">Memory Mode<a href="#memory-mode" class="hash-link" aria-label="Direct link to Memory Mode" title="Direct link to Memory Mode" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to use memory mode to process Excel files?</p>
+</li>
+<li>
+<p><strong>A:</strong> Memory mode is suitable for processing smaller files and can significantly improve processing speed. For example:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token class-name">FastExcel</span><span class="token punctuation" style="color:#393A34">.</span><span cl [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="read-csv-files">Read CSV Files<a href="#read-csv-files" class="hash-link" aria-label="Direct link to Read CSV Files" title="Direct link to Read CSV Files" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to read CSV files and modify the delimiter?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can modify the delimiter of CSV files by setting <code>CsvFormat</code>. For example:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token class-name">FastExcel</span><span class="token punctuation" style="color:#393A34">.</span><span cl [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="custom-read-listener">Custom Read Listener<a href="#custom-read-listener" class="hash-link" aria-label="Direct link to Custom Read Listener" title="Direct link to Custom Read Listener" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to customize the read listener?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can inherit the <code>AnalysisEventListener</code> class and implement your own logic. For example:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="ignore-unannotated-fields-during-reading">Ignore Unannotated Fields During Reading<a href="#ignore-unannotated-fields-during-reading" class="hash-link" aria-label="Direct link to Ignore Unannotated Fields During Reading" title="Direct link to Ignore Unannotated Fields During Reading" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to ignore fields not annotated with <code>@ExcelProperty</code> during reading?</p>
+</li>
+<li>
+<p><strong>A:</strong> Add the <code>@ExcelIgnoreUnannotated</code> annotation at the top of the class. For example:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Data</span><span class="token plain"></span><br></s [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="set-header-style-during-export">Set Header Style During Export<a href="#set-header-style-during-export" class="hash-link" aria-label="Direct link to Set Header Style During Export" title="Direct link to Set Header Style During Export" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to set header style during export?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can customize the header style by implementing the <code>WriteHandler</code> interface. For example:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="set-cell-data-format-during-export">Set Cell Data Format During Export<a href="#set-cell-data-format-during-export" class="hash-link" aria-label="Direct link to Set Cell Data Format During Export" title="Direct link to Set Cell Data Format During Export" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to set the data format of cells during export?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can set the data format by using the <code>@ContentStyle</code> annotation on entity class properties. For example:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@ExcelProperty</span><span class="token punctuation" [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="merge-cells-during-export">Merge Cells During Export<a href="#merge-cells-during-export" class="hash-link" aria-label="Direct link to Merge Cells During Export" title="Direct link to Merge Cells During Export" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to merge cells during export?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can customize the logic for merging cells by implementing the <code>WriteHandler</code> interface. For example:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="set-font-during-export">Set Font During Export<a href="#set-font-during-export" class="hash-link" aria-label="Direct link to Set Font During Export" title="Direct link to Set Font During Export" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to set the font of cells during export?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can set the font by creating a <code>Font</code> object and applying it to the <code>CellStyle</code>. For example:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="handle-null-values-during-reading">Handle Null Values During Reading<a href="#handle-null-values-during-reading" class="hash-link" aria-label="Direct link to Handle Null Values During Reading" title="Direct link to Handle Null Values During Reading" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to handle null values during reading?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can handle null values in the <code>ReadListener</code>. For example:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="data-filtering-during-reading">Data Filtering During Reading<a href="#data-filtering-during-reading" class="hash-link" aria-label="Direct link to Data Filtering During Reading" title="Direct link to Data Filtering During Reading" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to filter data during reading?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can implement filtering logic in the <code>ReadListener</code>. For example:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/docs/help/faq.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_eJSs" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/help/large-data/index.html b/docs/help/large-data/index.html
new file mode 100644
index 00000000..b4f95059
--- /dev/null
+++ b/docs/help/large-data/index.html
@@ -0,0 +1,33 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-help/large-data" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Large Data | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/help/large-data/"><meta data-rh="t [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="reading">Reading<a href="#reading" class="hash-link" aria-label="Direct link to Reading" title="Direct link to Reading" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>When reading files larger than 10 MB, Excel 03 is unable to handle them and consumes significantly more memory. Excel 2007 introduces the concept of <a href="https://learn.microsoft.com/en-us/office/open-xml/spreadsheet/working-with-the-shared-string-table" target="_blank" rel="noopener noreferrer">Shared Strings</a>, which can consume a significant amount of memory.
+If all shared strings are loaded into memory, the memory usage can be approximately 3 to 10 times the size of the Excel file. Therefore, FastExcel uses a strategy of first storing the file and then deserialising it to read the data, thereby saving memory. Of course, after deserialising the file, efficiency will decrease by approximately 30-50% (this is not fixed and depends on the hit rate, which may exceed 100%).</p>
+<p>If the read efficiency is acceptable, use the default setting. The permanent memory usage (for the entire process of reading a single Excel file) generally does not exceed 50MB (most likely around 30MB), and the remaining temporary memory is quickly recycled by the garbage collector.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="default-policy">Default Policy<a href="#default-policy" class="hash-link" aria-label="Direct link to Default Policy" title="Direct link to Default Policy" translate="no"></a></h3>
+<p>By default, large file processing is automatically determined. Shared strings under 5M are stored in memory, which occupies approximately 15-50M of memory. Strings over 5M are stored in files, and file storage also requires additional memory to store temporary shared strings, with a default of 20M. Apart from the memory used by shared strings, other memory usage is minimal, so it can be estimated at 10MB. Therefore, the default of approximately 30MB is sufficient to read an extremely [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="configure-memory">Configure Memory<a href="#configure-memory" class="hash-link" aria-label="Direct link to Configure Memory" title="Direct link to Configure Memory" translate="no"></a></h3>
+<p>If you want to customise the settings, first determine how much memory you are willing to allocate for reading a very large Excel file.
+For example, if you want the Excel file to occupy a maximum of 100MB of memory during the reading process (this is the permanent memory usage during reading, not including memory immediately reclaimed by the young generation), then set the size of the shared string stored in the file to 20MB (less than 20MB is stored in memory, more than 20MB is stored in a temporary file), and then set the memory size occupied by the temporary shared string when stored in the file to approximately 90MB.</p>
+<p>If the maximum number of file entries is only a few hundred thousand, and the Excel file is only a few dozen megabytes, and there is no high concurrency, and memory is sufficient,</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// Force memory storage, so a 20M Excel file will [...]
+<p>High concurrency requirements, and often involve extremely large files.</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// The first parameter specifies how many MB of s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="about-maxcacheactivatesize">About maxCacheActivateSize<a href="#about-maxcacheactivatesize" class="hash-link" aria-label="Direct link to About maxCacheActivateSize" title="Direct link to About maxCacheActivateSize" translate="no"></a></h3>
+<p>When using file storage, FastExcel splits the shared string into batches of <strong>1000</strong> items and then stores them in file storage. Excel typically reads shared strings in sequential order, so by default, 1000 entries (approximately 20MB) are kept in memory. If a match is found, the data is returned directly; if not, the file is read. Therefore, the size should not be set too small, as this makes it difficult to find a match and results in constant file reads. Conversely, se [...]
+<p>To determine whether <code>maxCacheActivateSize</code> needs adjustment, enabling <code>debug</code> logs will output <code>Already put :4000000</code> as the last value, which can be estimated to be 4 million. Then, checking <code>Cache misses count:4001</code> yields a value of 4,000. <code>4 million / 4,000 = 1,000</code> indicates that <code>maxCacheActivateSize</code> is already very reasonable. If the value is less than 500, there is a significant issue. Values between 500 and 1 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/help/parameter/index.html b/docs/help/parameter/index.html
new file mode 100644
index 00000000..7ecaea52
--- /dev/null
+++ b/docs/help/parameter/index.html
@@ -0,0 +1,413 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-help/parameter" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Parameter | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/help/parameter/"><meta data-rh="tru [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This section introduces the parameters used in FastExcel.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="class-diagram">Class Diagram<a href="#class-diagram" class="hash-link" aria-label="Direct link to Class Diagram" title="Direct link to Class Diagram" translate="no"></a></h2>
+<!-- -->
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="general-parameters">General Parameters<a href="#general-parameters" class="hash-link" aria-label="Direct link to General Parameters" title="Direct link to General Parameters" translate="no"></a></h2>
+<p>All parameters inherit from <code>BasicParameter</code>.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>head</td><td>Empty</td><td>Choose one of <code>head</code> or <code>clazz</code>. Reads the list corresponding to the file header and matches the data based on the list. It is recommended to use class.</td></tr><tr><td>clazz</td><td>Empty</td><td>Choose one of <code>head</code> or <code>clazz</code>. Reads the class corresponding to the file header, and annotations can also be used. If ne [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="reading-operations">Reading Operations<a href="#reading-operations" class="hash-link" aria-label="Direct link to Reading Operations" title="Direct link to Reading Operations" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="readbasicparameter">ReadBasicParameter<a href="#readbasicparameter" class="hash-link" aria-label="Direct link to ReadBasicParameter" title="Direct link to ReadBasicParameter" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>customReadListenerList</td><td>Empty</td><td>Can register multiple listeners. When reading Excel, the listener's methods will be continuously called.</td></tr><tr><td>headRowNumber</td><td>1</td><td>The number of rows in the header of Excel, default is 1 row.</td></tr></tbody></table>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="readworkbook">ReadWorkbook<a href="#readworkbook" class="hash-link" aria-label="Direct link to ReadWorkbook" title="Direct link to ReadWorkbook" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>excelType</td><td>Empty</td><td>The current type of Excel, supports XLS, XLSX, CSV.</td></tr><tr><td>inputStream</td><td>Empty</td><td>Choose between <code>file</code> and <code>inputStream</code>. Reads the file stream. If a stream is received, it is used directly. If not, it is recommended to use the <code>file</code> parameter. Using <code>inputStream</code> will help create temporary [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="readsheet">ReadSheet<a href="#readsheet" class="hash-link" aria-label="Direct link to ReadSheet" title="Direct link to ReadSheet" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>sheetNo</td><td>0</td><td>The code of the Sheet to be read, recommended to use this to specify which Sheet to read.</td></tr><tr><td>sheetName</td><td>Empty</td><td>Match the Sheet by name.</td></tr><tr><td>sheetHidden</td><td>false</td><td>Normal Hidden Status</td></tr><tr><td>sheetVeryHidden</td><td>false</td><td>Absolute Hidden State</td></tr><tr><td>numRows</td><td>0</td><td>Read the [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="writing-operations">Writing Operations<a href="#writing-operations" class="hash-link" aria-label="Direct link to Writing Operations" title="Direct link to Writing Operations" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="writebasicparameter">WriteBasicParameter<a href="#writebasicparameter" class="hash-link" aria-label="Direct link to WriteBasicParameter" title="Direct link to WriteBasicParameter" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>customWriteHandlerList</td><td>Empty</td><td>Writing handler. Can implement <code>WorkbookWriteHandler</code>, <code>SheetWriteHandler</code>, <code>RowWriteHandler</code>, <code>CellWriteHandler</code>, which will be called at different stages of writing to Excel.</td></tr><tr><td>relativeHeadRowIndex</td><td>0</td><td>Number of rows to leave blank above Excel.</td></tr><tr><td>needHead< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="writeworkbook">WriteWorkbook<a href="#writeworkbook" class="hash-link" aria-label="Direct link to WriteWorkbook" title="Direct link to WriteWorkbook" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>excelType</td><td>Empty</td><td>The current type of Excel, supports XLS, XLSX, CSV.</td></tr><tr><td>outputStream</td><td>Empty</td><td>Choose between <code>file</code> and <code>outputStream</code>. Writes the file stream.</td></tr><tr><td>file</td><td>Empty</td><td>Choose between <code>outputStream</code> and <code>file</code>. Writes the file.</td></tr><tr><td>templateInputStream</td>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="writesheet">WriteSheet<a href="#writesheet" class="hash-link" aria-label="Direct link to WriteSheet" title="Direct link to WriteSheet" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>sheetNo</td><td>0</td><td>Code of the Sheet to be written.</td></tr><tr><td>sheetName</td><td>Empty</td><td>Name of the Sheet to be written, defaults to <code>sheetNo</code>.</td></tr></tbody></table>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="writetable">WriteTable<a href="#writetable" class="hash-link" aria-label="Direct link to WriteTable" title="Direct link to WriteTable" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>tableNo</td><td>0</td><td>Code of the table to be written.</td></tr></tbody></table></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/docs/help/parameter.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="curren [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 00000000..bffc1fc7
--- /dev/null
+++ b/docs/index.html
@@ -0,0 +1,33 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-introduce" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Introduction | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/"><meta data-rh="true" property= [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="what-is-fastexcel">What is FastExcel<a href="#what-is-fastexcel" class="hash-link" aria-label="Direct link to What is FastExcel" title="Direct link to What is FastExcel" translate="no"></a></h2>
+<p>Fast, Concise, Java tool for processing Excel files that solves memory overflow issues with large files.</p>
+<p>FastExcel will always be free and open source , using the business-friendly Apache license, making it suitable for any commercial scenarios. This provides developers and enterprises with great freedom and flexibility.</p>
+<p>We plan to introduce more new features in the future to continuously enhance user experience and tool usability. We welcome everyone to continue following the development of FastExcel. FastExcel is committed to becoming your best choice for handling Excel files.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="features">Features<a href="#features" class="hash-link" aria-label="Direct link to Features" title="Direct link to Features" translate="no"></a></h2>
+<ul>
+<li><strong>High-performance Reading and Writing</strong>: FastExcel focuses on performance optimization, capable of efficiently handling large-scale Excel data. Compared to some traditional Excel processing libraries, it can significantly reduce memory consumption.</li>
+<li><strong>Simplicity and Ease of Use</strong>: The library offers a simple and intuitive API, allowing developers to easily integrate it into projects, whether for simple Excel operations or complex data processing.</li>
+<li><strong>Stream Operations</strong>: FastExcel supports stream reading, minimizing the problem of loading large amounts of data at once. This design is especially important when dealing with hundreds of thousands or even millions of rows of data.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="read">Read<a href="#read" class="hash-link" aria-label="Direct link to Read" title="Direct link to Read" translate="no"></a></h3>
+<p>Below is an example of reading an Excel document:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// Implement the ReadListener interface to set up [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="write">Write<a href="#write" class="hash-link" aria-label="Direct link to Write" title="Direct link to Write" translate="no"></a></h3>
+<p>Below is a simple example of creating an Excel document:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// Sample data class</span><span class="token pla [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/quickstart/guide/index.html b/docs/quickstart/guide/index.html
new file mode 100644
index 00000000..fb465791
--- /dev/null
+++ b/docs/quickstart/guide/index.html
@@ -0,0 +1,65 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-quickstart/guide" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Guide | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/quickstart/guide/"><meta data-rh="true" [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="compatibility-information">Compatibility Information<a href="#compatibility-information" class="hash-link" aria-label="Direct link to Compatibility Information" title="Direct link to Compatibility Information" translate="no"></a></h2>
+<p>The following table lists the minimum Java language version requirements for each version of the FastExcel library:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Version</th><th>JDK Version Support Range</th><th>Notes</th></tr></thead><tbody><tr><td>1.3.x</td><td>JDK8 - JDK25</td><td></td></tr><tr><td>1.2.x</td><td>JDK8 - JDK21</td><td></td></tr><tr><td>1.1.x</td><td>JDK8 - JDK21</td><td></td></tr><tr><td>1.0.x</td><td>JDK8 - JDK21</td><td></td></tr></tbody></table>
+<p>We strongly recommend using the latest version of FastExcel, as performance optimizations, bug fixes, and new features
+in the latest version will enhance your experience.</p>
+<blockquote>
+<p>Currently, FastExcel uses POI as its underlying package. If your project already includes POI-related components, you
+will need to manually exclude POI-related jar files.</p>
+</blockquote>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="version-update">Version Update<a href="#version-update" class="hash-link" aria-label="Direct link to Version Update" title="Direct link to Version Update" translate="no"></a></h2>
+<p>For detailed update logs, refer
+to <a href="https://github.com/fast-excel/fastexcel/blob/main/CHANGELOG.md" target="_blank" rel="noopener noreferrer">Details of version updates</a>. You can also find all
+available versions in the <a href="https://mvnrepository.com/artifact/cn.idev.excel/fastexcel" target="_blank" rel="noopener noreferrer">Maven Central Repository</a>.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="maven">Maven<a href="#maven" class="hash-link" aria-label="Direct link to Maven" title="Direct link to Maven" translate="no"></a></h2>
+<p>If you are using Maven for project building, add the following configuration in the <code>pom.xml</code> file:</p>
+<div class="language-xml codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-xml codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34" [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="gradle">Gradle<a href="#gradle" class="hash-link" aria-label="Direct link to Gradle" title="Direct link to Gradle" translate="no"></a></h2>
+<p>If you are using Gradle for project building, add the following configuration in the <code>build.gradle</code> file:</p>
+<div class="language-gradle codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-gradle codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token plain">dependencies {</span><br></span><span class="token-line" style="color:#393A34"><span cl [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/quickstart/simple-example/index.html b/docs/quickstart/simple-example/index.html
new file mode 100644
index 00000000..6a11aae6
--- /dev/null
+++ b/docs/quickstart/simple-example/index.html
@@ -0,0 +1,22 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-quickstart/simple-example" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Simple example | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/quickstart/simple-example/"><m [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="read">Read<a href="#read" class="hash-link" aria-label="Direct link to Read" title="Direct link to Read" translate="no"></a></h2>
+<p>Below is an example of reading an Excel document:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// Implement the ReadListener interface to set up [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="write">Write<a href="#write" class="hash-link" aria-label="Direct link to Write" title="Direct link to Write" translate="no"></a></h3>
+<p>Below is a simple example of creating an Excel document:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// Sample data class</span><span class="token pla [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/read/converter/index.html b/docs/read/converter/index.html
new file mode 100644
index 00000000..b01cb02c
--- /dev/null
+++ b/docs/read/converter/index.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/converter" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Converter | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/read/converter/"><meta data-rh="tru [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>FastExcel supports date, number, and custom format conversions.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
+<p>During usage, we may need to convert read or written data into specific formats. FastExcel provides a flexible converter mechanism that allows users to define custom data conversion rules to meet various business requirements.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="converter">Converter<a href="#converter" class="hash-link" aria-label="Direct link to Converter" title="Direct link to Converter" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/read/csv/index.html b/docs/read/csv/index.html
new file mode 100644
index 00000000..89663f05
--- /dev/null
+++ b/docs/read/csv/index.html
@@ -0,0 +1,92 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/csv" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">CSV | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/read/csv/"><meta data-rh="true" property= [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to use FastExcel to read custom CSV files.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
+<p>FastExcel reads CSV files through different parameter configurations. It uses <a href="https://commons.apache.org/proper/commons-csv" target="_blank" rel="noopener noreferrer">Apache Commons CSV</a> as the underlying implementation and also supports direct configuration through <a href="https://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/CSVFormat.html" target="_blank" rel="noopener noreferrer">CSVFormat</a> settings to achieve reading objectives.</p>
+<p>The main parameters are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th style="text-align:left">Name</th><th style="text-align:left">Default Value</th><th style="text-align:left">Description</th></tr></thead><tbody><tr><td style="text-align:left"><code>delimiter</code></td><td style="text-align:left"><code>,</code> (comma)</td><td style="text-align:left">Field delimiter. It's recommended to use predefined constants from <code>CsvConstant</code>, such as <code>CsvConstant.AT</code>(<code>@</code>), <code>CsvConstant.TAB</code>, etc. [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="parameter-details-and-examples">Parameter Details and Examples<a href="#parameter-details-and-examples" class="hash-link" aria-label="Direct link to Parameter Details and Examples" title="Direct link to Parameter Details and Examples" translate="no"></a></h2>
+<p>The following sections will explain each parameter in detail with code examples.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="delimiter">delimiter<a href="#delimiter" class="hash-link" aria-label="Direct link to delimiter" title="Direct link to delimiter" translate="no"></a></h3>
+<p><code>delimiter</code> specifies the field separator in CSV files. The default value is a comma <code>,</code>.
+Additionally, FastExcel provides constants in <code>CsvConstant</code> to simplify usage.</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<p>If the CSV file uses <code>\u0000</code> as the separator, you can configure it as follows:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="quote">quote<a href="#quote" class="hash-link" aria-label="Direct link to quote" title="Direct link to quote" translate="no"></a></h3>
+<p><code>quote</code> specifies the quote character that wraps fields. The default value is double quote <code>"</code>.
+This should be set when field content contains delimiters or line breaks.</p>
+<blockquote>
+<p>Note: This cannot be the same as the <code>recordSeparator</code> setting. It's recommended to use in combination with <code>QuoteMode</code>.</p>
+</blockquote>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="recordseparator">recordSeparator<a href="#recordseparator" class="hash-link" aria-label="Direct link to recordSeparator" title="Direct link to recordSeparator" translate="no"></a></h3>
+<p><code>recordSeparator</code> specifies the line separator in the file. Different operating systems may use different line separators (for example, Windows uses <code>CRLF</code>, while Unix/Linux uses <code>LF</code>).</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="nullstring">nullString<a href="#nullstring" class="hash-link" aria-label="Direct link to nullString" title="Direct link to nullString" translate="no"></a></h3>
+<p><code>nullString</code> defines a specific string in the file that represents <code>null</code> values. For example, you can parse the string <code>"N/A"</code> as a <code>null</code> object.</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-3">Code Example<a href="#code-example-3" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="escape">escape<a href="#escape" class="hash-link" aria-label="Direct link to escape" title="Direct link to escape" translate="no"></a></h3>
+<p><code>escape</code> specifies an escape character that can be used when quote characters (<code>quote</code>) appear within field values.</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-4">Code Example<a href="#code-example-4" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="csvformat-configuration-details-and-examples">CSVFormat Configuration Details and Examples<a href="#csvformat-configuration-details-and-examples" class="hash-link" aria-label="Direct link to CSVFormat Configuration Details and Examples" title="Direct link to CSVFormat Configuration Details and Examples" translate="no"></a></h2>
+<p>Supports directly building a <code>CSVFormat</code> object.</p>
+<blockquote>
+<p>FastExcel currently still supports this approach, but it's not the most recommended usage method.</p>
+</blockquote>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-5">Code Example<a href="#code-example-5" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/read/exception/index.html b/docs/read/exception/index.html
new file mode 100644
index 00000000..97fb75c2
--- /dev/null
+++ b/docs/read/exception/index.html
@@ -0,0 +1,23 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/exception" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Exception | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/read/exception/"><meta data-rh="tru [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to handle exceptions.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
+<p>Handle data conversion or other reading exceptions by overriding the <code>onException</code> method in the listener.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="data-listener">Data Listener<a href="#data-listener" class="hash-link" aria-label="Direct link to Data Listener" title="Direct link to Data Listener" translate="no"></a></h2>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h2>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/read/extra/index.html b/docs/read/extra/index.html
new file mode 100644
index 00000000..c35d1acd
--- /dev/null
+++ b/docs/read/extra/index.html
@@ -0,0 +1,40 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/extra" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Extra | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/read/extra/"><meta data-rh="true" prope [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to read extra information such as comments, hyperlinks, merged cells, etc.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="comments">Comments<a href="#comments" class="hash-link" aria-label="Direct link to Comments" title="Direct link to Comments" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Read extra comment information.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="data-listener">Data Listener<a href="#data-listener" class="hash-link" aria-label="Direct link to Data Listener" title="Direct link to Data Listener" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="hyperlinks">Hyperlinks<a href="#hyperlinks" class="hash-link" aria-label="Direct link to Hyperlinks" title="Direct link to Hyperlinks" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Read extra hyperlink information.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="data-listener-1">Data Listener<a href="#data-listener-1" class="hash-link" aria-label="Direct link to Data Listener" title="Direct link to Data Listener" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="merged-cells">Merged Cells<a href="#merged-cells" class="hash-link" aria-label="Direct link to Merged Cells" title="Direct link to Merged Cells" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Read merged cell range information.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="data-listener-2">Data Listener<a href="#data-listener-2" class="hash-link" aria-label="Direct link to Data Listener" title="Direct link to Data Listener" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/read/head/index.html b/docs/read/head/index.html
new file mode 100644
index 00000000..80335400
--- /dev/null
+++ b/docs/read/head/index.html
@@ -0,0 +1,36 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/head" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Head | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/read/head/"><meta data-rh="true" propert [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to read header data from Excel files.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="reading-header-data">Reading Header Data<a href="#reading-header-data" class="hash-link" aria-label="Direct link to Reading Header Data" title="Direct link to Reading Header Data" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>You can obtain header information by overriding the <code>invokeHead</code> method in the listener.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="data-listener">Data Listener<a href="#data-listener" class="hash-link" aria-label="Direct link to Data Listener" title="Direct link to Data Listener" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="multi-row-header-reading">Multi-Row Header Reading<a href="#multi-row-header-reading" class="hash-link" aria-label="Direct link to Multi-Row Header Reading" title="Direct link to Multi-Row Header Reading" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Parse multi-row headers by setting the <code>headRowNumber</code> parameter or automatically based on header annotations in entity classes.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="header-pojo">Header POJO<a href="#header-pojo" class="hash-link" aria-label="Direct link to Header POJO" title="Direct link to Header POJO" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Set header POJO using the <code>head()</code> method.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/read/num-rows/index.html b/docs/read/num-rows/index.html
new file mode 100644
index 00000000..f9ead092
--- /dev/null
+++ b/docs/read/num-rows/index.html
@@ -0,0 +1,28 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/num-rows" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Rows | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/read/num-rows/"><meta data-rh="true" pro [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to read a specified number of rows.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
+<p>During data analysis and processing, quickly viewing the first few rows of an Excel file can help us better understand the data structure and content.
+By default, FastExcel reads all data from the entire Excel file.
+However, by setting the <code>numRows</code> parameter, you can limit the number of rows to read. 0 means no limit on the number of rows, i.e., read all rows. The row count includes header rows.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="all-sheets">All Sheets<a href="#all-sheets" class="hash-link" aria-label="Direct link to All Sheets" title="Direct link to All Sheets" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="single-sheet">Single Sheet<a href="#single-sheet" class="hash-link" aria-label="Direct link to Single Sheet" title="Direct link to Single Sheet" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/read/pojo/index.html b/docs/read/pojo/index.html
new file mode 100644
index 00000000..4ddc75c1
--- /dev/null
+++ b/docs/read/pojo/index.html
@@ -0,0 +1,39 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/pojo" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">POJO | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/read/pojo/"><meta data-rh="true" propert [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to read data by configuring POJO classes.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="reading-by-column-name-or-column-index">Reading by Column Name or Column Index<a href="#reading-by-column-name-or-column-index" class="hash-link" aria-label="Direct link to Reading by Column Name or Column Index" title="Direct link to Reading by Column Name or Column Index" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>You can read Excel data by specifying <strong>column names</strong> or <strong>column indexes</strong>. This makes interaction with dynamically generated Excel files more flexible.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="example-code">Example Code<a href="#example-code" class="hash-link" aria-label="Direct link to Example Code" title="Direct link to Example Code" translate="no"></a></h3>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="Direct link to 代码示例" title="Direct link to 代码示例" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="cell-objects">Cell Objects<a href="#cell-objects" class="hash-link" aria-label="Direct link to Cell Objects" title="Direct link to Cell Objects" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Use the <code>CellData</code> type to receive cell data to support formulas and various cell formats.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-class-1">POJO Class<a href="#pojo-class-1" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="without-pojo-classes-and-listeners">Without POJO Classes and Listeners<a href="#without-pojo-classes-and-listeners" class="hash-link" aria-label="Direct link to Without POJO Classes and Listeners" title="Direct link to Without POJO Classes and Listeners" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>FastExcel supports reading Excel files directly without defining POJO classes, using <code>Map<Integer, String></code> to read data directly.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="data-listener">Data Listener<a href="#data-listener" class="hash-link" aria-label="Direct link to Data Listener" title="Direct link to Data Listener" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/read/sheet/index.html b/docs/read/sheet/index.html
new file mode 100644
index 00000000..ae9e3cc1
--- /dev/null
+++ b/docs/read/sheet/index.html
@@ -0,0 +1,39 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/sheet" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Sheet | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/read/sheet/"><meta data-rh="true" prope [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to configure Sheets to read data.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="reading-multiple-sheets">Reading Multiple Sheets<a href="#reading-multiple-sheets" class="hash-link" aria-label="Direct link to Reading Multiple Sheets" title="Direct link to Reading Multiple Sheets" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>You can read multiple Sheets from an Excel file, but the same Sheet cannot be read repeatedly.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="reading-all-sheets">Reading All Sheets<a href="#reading-all-sheets" class="hash-link" aria-label="Direct link to Reading All Sheets" title="Direct link to Reading All Sheets" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="reading-specific-sheets">Reading Specific Sheets<a href="#reading-specific-sheets" class="hash-link" aria-label="Direct link to Reading Specific Sheets" title="Direct link to Reading Specific Sheets" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>You can read a specific Sheet from an Excel file, supporting specification by Sheet index or name.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="ignoring-hidden-sheets">Ignoring Hidden Sheets<a href="#ignoring-hidden-sheets" class="hash-link" aria-label="Direct link to Ignoring Hidden Sheets" title="Direct link to Ignoring Hidden Sheets" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>By setting the <code>ignoreHiddenSheet</code> parameter to true, data from Sheets in "hidden" state will not be read.
+This supports both <strong>"normal hidden"</strong> and <strong>"very hidden"</strong> states.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<blockquote>
+<p>In Microsoft Excel, Sheets have two hidden states: "normal hidden (xlSheetHidden)" and "very hidden (xlSheetVeryHidden)". Very hidden can be set through <code>VBA</code>, and in this case, the hidden Sheet cannot be unhidden through the "Unhide" operation.</p>
+</blockquote></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/docs/read/sheet.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_eJSs" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/read/simple/index.html b/docs/read/simple/index.html
new file mode 100644
index 00000000..4511be87
--- /dev/null
+++ b/docs/read/simple/index.html
@@ -0,0 +1,61 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/simple" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Simple | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/read/simple/"><meta data-rh="true" pro [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to use FastExcel to perform simple Excel reading operations.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="data-listeners">Data Listeners<a href="#data-listeners" class="hash-link" aria-label="Direct link to Data Listeners" title="Direct link to Data Listeners" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>FastExcel provides a listener mechanism for processing each row of data while reading Excel files.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="usage">Usage<a href="#usage" class="hash-link" aria-label="Direct link to Usage" title="Direct link to Usage" translate="no"></a></h3>
+<p>Data listeners need to be instantiated and support various usage patterns.</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="instantiation">Instantiation<a href="#instantiation" class="hash-link" aria-label="Direct link to Instantiation" title="Direct link to Instantiation" translate="no"></a></h4>
+<p>Listeners cannot be managed by Spring and must be re-instantiated each time an Excel file is read.</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="lambda-expressions"><code>Lambda</code> Expressions<a href="#lambda-expressions" class="hash-link" aria-label="Direct link to lambda-expressions" title="Direct link to lambda-expressions" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="anonymous-inner-classes">Anonymous Inner Classes<a href="#anonymous-inner-classes" class="hash-link" aria-label="Direct link to Anonymous Inner Classes" title="Direct link to Anonymous Inner Classes" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="data-listeners-1">Data Listeners<a href="#data-listeners-1" class="hash-link" aria-label="Direct link to Data Listeners" title="Direct link to Data Listeners" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-classes-and-listeners">POJO Classes and Listeners<a href="#pojo-classes-and-listeners" class="hash-link" aria-label="Direct link to POJO Classes and Listeners" title="Direct link to POJO Classes and Listeners" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>FastExcel provides a simple way to read Excel files. Users only need to define a POJO class to represent the data structure, then read data through FastExcel's listener mechanism.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<p>The <code>DemoData</code> POJO class corresponding to the Excel structure:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="data-listener">Data Listener<a href="#data-listener" class="hash-link" aria-label="Direct link to Data Listener" title="Direct link to Data Listener" translate="no"></a></h3>
+<p><code>DemoDataListener</code> is a custom listener used to process data read from Excel.</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="without-pojo-classes-and-listeners">Without POJO Classes and Listeners<a href="#without-pojo-classes-and-listeners" class="hash-link" aria-label="Direct link to Without POJO Classes and Listeners" title="Direct link to Without POJO Classes and Listeners" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>FastExcel supports reading Excel files directly without defining POJO classes, using <code>Map<Integer, String></code> to read data directly, where the key is the <strong>column index</strong> and the value is the <strong>cell data</strong>.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="data-listener-1">Data Listener<a href="#data-listener-1" class="hash-link" aria-label="Direct link to Data Listener" title="Direct link to Data Listener" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="synchronous-reading">Synchronous Reading<a href="#synchronous-reading" class="hash-link" aria-label="Direct link to Synchronous Reading" title="Direct link to Synchronous Reading" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-3">Overview<a href="#overview-3" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Use the <code>doReadSync</code> method to directly read Excel data into a list <strong>in memory</strong>. This method is recommended for scenarios with <strong>small data volumes</strong>. The read data can be either a list of POJO objects or a list of Maps.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-class-1">POJO Class<a href="#pojo-class-1" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<p>The <code>DemoData</code> POJO class corresponding to the Excel structure:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-examples">Code Examples<a href="#code-examples" class="hash-link" aria-label="Direct link to Code Examples" title="Direct link to Code Examples" translate="no"></a></h3>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="reading-as-pojo-object-list">Reading as POJO Object List<a href="#reading-as-pojo-object-list" class="hash-link" aria-label="Direct link to Reading as POJO Object List" title="Direct link to Reading as POJO Object List" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="reading-as-map-list">Reading as Map List<a href="#reading-as-map-list" class="hash-link" aria-label="Direct link to Reading as Map List" title="Direct link to Reading as Map List" translate="no"></a></h4>
+<p>When not using POJOs, each row can be read as a Map, where the key is the column index and the value is the cell content.</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/read/spring/index.html b/docs/read/spring/index.html
new file mode 100644
index 00000000..cca2fb7a
--- /dev/null
+++ b/docs/read/spring/index.html
@@ -0,0 +1,42 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/spring" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Spring | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/read/spring/"><meta data-rh="true" pro [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to integrate and use FastExcel in the Spring framework to handle Excel files uploaded by users.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
+<p>By creating RESTful API endpoints, users can upload Excel files using HTTP requests, and the server uses FastExcel to parse the data.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="environment-dependencies">Environment Dependencies<a href="#environment-dependencies" class="hash-link" aria-label="Direct link to Environment Dependencies" title="Direct link to Environment Dependencies" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="maven">Maven<a href="#maven" class="hash-link" aria-label="Direct link to Maven" title="Direct link to Maven" translate="no"></a></h3>
+<p>Ensure the necessary dependencies are included in your pom.xml file:</p>
+<div class="language-xml codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-xml codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34"><</span><span class="token tag" style="color:#00009f">depe [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="creating-upload-endpoints">Creating Upload Endpoints<a href="#creating-upload-endpoints" class="hash-link" aria-label="Direct link to Creating Upload Endpoints" title="Direct link to Creating Upload Endpoints" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<p>First, define a POJO class for mapping Excel data:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="data-listener">Data Listener<a href="#data-listener" class="hash-link" aria-label="Direct link to Data Listener" title="Direct link to Data Listener" translate="no"></a></h3>
+<p>Create a listener to handle each row of data:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="spring-controller">Spring Controller<a href="#spring-controller" class="hash-link" aria-label="Direct link to Spring Controller" title="Direct link to Spring Controller" translate="no"></a></h3>
+<p>Create a controller to handle file upload requests:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@RestController</span><span class="token plain"></sp [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="complex-scenarios">Complex Scenarios<a href="#complex-scenarios" class="hash-link" aria-label="Direct link to Complex Scenarios" title="Direct link to Complex Scenarios" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="multi-template-parsing">Multi-Template Parsing<a href="#multi-template-parsing" class="hash-link" aria-label="Direct link to Multi-Template Parsing" title="Direct link to Multi-Template Parsing" translate="no"></a></h3>
+<p>By defining multiple different model classes and processing methods within the same listener, you can extend support for multi-template parsing as needed.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="exception-handling">Exception Handling<a href="#exception-handling" class="hash-link" aria-label="Direct link to Exception Handling" title="Direct link to Exception Handling" translate="no"></a></h3>
+<p>To improve user experience and ensure program robustness, exception handling logic needs to be added during data processing.
+You can override the <code>onException</code> method in custom listeners for detailed exception handling.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="practical-applications">Practical Applications<a href="#practical-applications" class="hash-link" aria-label="Direct link to Practical Applications" title="Direct link to Practical Applications" translate="no"></a></h3>
+<p>In real-world scenarios, parsed data may be stored in a database.
+Database interaction logic can be implemented in the <code>doAfterAllAnalysed</code> method to ensure data persistence.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/docs/read/spring.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdi [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/write/csv/index.html b/docs/write/csv/index.html
new file mode 100644
index 00000000..287c6a68
--- /dev/null
+++ b/docs/write/csv/index.html
@@ -0,0 +1,91 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/csv" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">CSV | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/write/csv/"><meta data-rh="true" property [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to use FastExcel to write custom CSV files.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
+<p>FastExcel writes CSV files through different parameter configurations. It uses <a href="https://commons.apache.org/proper/commons-csv" target="_blank" rel="noopener noreferrer">Apache Commons CSV</a> as the underlying implementation and also supports direct configuration through <a href="https://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/CSVFormat.html" target="_blank" rel="noopener noreferrer">CSVFormat</a> settings to achieve writing objectives.</p>
+<p>The main parameters are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th style="text-align:left">Name</th><th style="text-align:left">Default Value</th><th style="text-align:left">Description</th></tr></thead><tbody><tr><td style="text-align:left"><code>delimiter</code></td><td style="text-align:left"><code>,</code> (comma)</td><td style="text-align:left">Field delimiter. It's recommended to use predefined constants from <code>CsvConstant</code>, such as <code>CsvConstant.AT</code> (<code>@</code>), <code>CsvConstant.TAB</code>, etc [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="parameter-details-and-examples">Parameter Details and Examples<a href="#parameter-details-and-examples" class="hash-link" aria-label="Direct link to Parameter Details and Examples" title="Direct link to Parameter Details and Examples" translate="no"></a></h2>
+<p>The following sections will explain each parameter in detail with code examples.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="delimiter">delimiter<a href="#delimiter" class="hash-link" aria-label="Direct link to delimiter" title="Direct link to delimiter" translate="no"></a></h3>
+<p><code>delimiter</code> specifies the field separator in CSV files. The default value is a comma <code>,</code>. Additionally, FastExcel provides constants in <code>CsvConstant</code> to simplify usage.</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<p>If the CSV file uses <code>\u0000</code> as the separator, you can configure it as follows:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="quote">quote<a href="#quote" class="hash-link" aria-label="Direct link to quote" title="Direct link to quote" translate="no"></a></h3>
+<p><code>quote</code> specifies the quote character that wraps fields. The default value is double quote <code>"</code>. This should be set when field content contains delimiters or line breaks.</p>
+<blockquote>
+<p>Note: This cannot be the same as the <code>recordSeparator</code> setting. It's recommended to use in combination with <code>QuoteMode</code>.</p>
+</blockquote>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="recordseparator">recordSeparator<a href="#recordseparator" class="hash-link" aria-label="Direct link to recordSeparator" title="Direct link to recordSeparator" translate="no"></a></h3>
+<p><code>recordSeparator</code> specifies the line separator in the file. Different operating systems may use different line separators (for example, Windows uses <code>CRLF</code>, while Unix/Linux uses <code>LF</code>).</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="nullstring">nullString<a href="#nullstring" class="hash-link" aria-label="Direct link to nullString" title="Direct link to nullString" translate="no"></a></h3>
+<p><code>nullString</code> is used to replace <code>null</code> values with a specific string when writing to the file.
+For example, you can replace <code>null</code> objects with the string <code>"N/A"</code>.</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-3">Code Example<a href="#code-example-3" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="escape">escape<a href="#escape" class="hash-link" aria-label="Direct link to escape" title="Direct link to escape" translate="no"></a></h3>
+<p><code>escape</code> specifies the escape character. When <code>escape</code> is used, the output CSV will preserve and display the content.</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-4">Code Example<a href="#code-example-4" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="csvformat-configuration-details-and-examples">CSVFormat Configuration Details and Examples<a href="#csvformat-configuration-details-and-examples" class="hash-link" aria-label="Direct link to CSVFormat Configuration Details and Examples" title="Direct link to CSVFormat Configuration Details and Examples" translate="no"></a></h2>
+<p>Supports directly building a <code>CSVFormat</code> object.</p>
+<blockquote>
+<p>FastExcel currently still supports this approach, but it's not the most recommended usage method.</p>
+</blockquote>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-5">Code Example<a href="#code-example-5" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/write/extra/index.html b/docs/write/extra/index.html
new file mode 100644
index 00000000..16b6bdcc
--- /dev/null
+++ b/docs/write/extra/index.html
@@ -0,0 +1,73 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/extra" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Extra | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/write/extra/"><meta data-rh="true" prop [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to write extra information such as comments, hyperlinks, formulas, merged cells, etc.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="comments">Comments<a href="#comments" class="hash-link" aria-label="Direct link to Comments" title="Direct link to Comments" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Add comments to specific cells through interceptors, suitable for annotations or special reminders.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<p>Custom interceptor</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Usage</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result">Result<a href="#result" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/commentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png" width="364" height="295" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="hyperlinks">Hyperlinks<a href="#hyperlinks" class="hash-link" aria-label="Direct link to Hyperlinks" title="Direct link to Hyperlinks" translate="no"></a></h2>
+<p>Write extra hyperlink information</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result-1">Result<a href="#result-1" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png" width="576" height="158" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="formulas">Formulas<a href="#formulas" class="hash-link" aria-label="Direct link to Formulas" title="Direct link to Formulas" translate="no"></a></h2>
+<p>Write extra formula information</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-class-1">POJO Class<a href="#pojo-class-1" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result-2">Result<a href="#result-2" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png" width="576" height="158" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="template-based-writing">Template-based Writing<a href="#template-based-writing" class="hash-link" aria-label="Direct link to Template-based Writing" title="Direct link to Template-based Writing" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Supports using existing template files and filling data into templates, suitable for standardized output.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-3">Code Example<a href="#code-example-3" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="merged-cells">Merged Cells<a href="#merged-cells" class="hash-link" aria-label="Direct link to Merged Cells" title="Direct link to Merged Cells" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Supports merged cells through annotations or custom merge strategies.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-4">Code Example<a href="#code-example-4" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<p>Annotation approach</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<p>Custom merge strategy</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+<p>Usage</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result-3">Result<a href="#result-3" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/mergeWrite-976e024ef4e1613c6dab373937cc56ff.png" width="384" height="291" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="custom-interceptors">Custom Interceptors<a href="#custom-interceptors" class="hash-link" aria-label="Direct link to Custom Interceptors" title="Direct link to Custom Interceptors" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-3">Overview<a href="#overview-3" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Implement custom logic (such as adding dropdowns) through interceptor operations.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-5">Code Example<a href="#code-example-5" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<p>Setting dropdowns</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result-4">Result<a href="#result-4" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/customHandlerWrite-c05ff79257df5ba72a311793a6e9db60.png" width="387" height="299" class="img_U4Mj"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/docs/write/extra.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height= [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/write/format/index.html b/docs/write/format/index.html
new file mode 100644
index 00000000..ba8d4854
--- /dev/null
+++ b/docs/write/format/index.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/format" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Format | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/write/format/"><meta data-rh="true" pr [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces data formatting when writing data.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="custom-format-writing">Custom Format Writing<a href="#custom-format-writing" class="hash-link" aria-label="Direct link to Custom Format Writing" title="Direct link to Custom Format Writing" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Supports date, number, or other custom formats through annotations.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result">Result<a href="#result" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/converterWrite-3246357a06c3ba04afb519b820c19bb2.png" width="497" height="293" class="img_U4Mj"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/docs/write/format.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/write/head/index.html b/docs/write/head/index.html
new file mode 100644
index 00000000..1d413f01
--- /dev/null
+++ b/docs/write/head/index.html
@@ -0,0 +1,34 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/head" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Head | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/write/head/"><meta data-rh="true" proper [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to write header data in Excel.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="complex-header-writing">Complex Header Writing<a href="#complex-header-writing" class="hash-link" aria-label="Direct link to Complex Header Writing" title="Direct link to Complex Header Writing" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Supports setting multi-level headers by specifying main titles and subtitles through the <code>@ExcelProperty</code> annotation.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result">Result<a href="#result" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/complexHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png" width="518" height="299" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="dynamic-header-writing">Dynamic Header Writing<a href="#dynamic-header-writing" class="hash-link" aria-label="Direct link to Dynamic Header Writing" title="Direct link to Dynamic Header Writing" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Generate dynamic headers in real-time, suitable for scenarios where header content changes dynamically.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result-1">Result<a href="#result-1" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/dynamicHeadWrite-b33468bf605a16abf195c740309137e3.png" width="383" height="318" class="img_U4Mj"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/docs/write/head.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/write/image/index.html b/docs/write/image/index.html
new file mode 100644
index 00000000..e887b250
--- /dev/null
+++ b/docs/write/image/index.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/image" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Image | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/write/image/"><meta data-rh="true" prop [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to export files containing images.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="image-export">Image Export<a href="#image-export" class="hash-link" aria-label="Direct link to Image Export" title="Direct link to Image Export" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Supports exporting images through various methods including files, streams, byte arrays, URLs, etc.</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result">Result<a href="#result" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png" width="751" height="300" class="img_U4Mj"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/docs/write/image.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/write/pojo/index.html b/docs/write/pojo/index.html
new file mode 100644
index 00000000..12c770d7
--- /dev/null
+++ b/docs/write/pojo/index.html
@@ -0,0 +1,45 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/pojo" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">POJO | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/write/pojo/"><meta data-rh="true" proper [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to write data by configuring POJO classes.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="export-only-specified-columns-based-on-parameters">Export Only Specified Columns Based on Parameters<a href="#export-only-specified-columns-based-on-parameters" class="hash-link" aria-label="Direct link to Export Only Specified Columns Based on Parameters" title="Direct link to Export Only Specified Columns Based on Parameters" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Dynamically select columns to export by setting a collection of column names, supporting ignoring columns or exporting only specific columns.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-examples">Code Examples<a href="#code-examples" class="hash-link" aria-label="Direct link to Code Examples" title="Direct link to Code Examples" translate="no"></a></h3>
+<p>Ignore specified columns</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<p>Export only specified columns</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result">Result<a href="#result" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/excludeOrIncludeWrite-bea7b205e7748fd8b55311383c344df1.png" width="246" height="297" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="specify-column-order-for-writing">Specify Column Order for Writing<a href="#specify-column-order-for-writing" class="hash-link" aria-label="Direct link to Specify Column Order for Writing" title="Direct link to Specify Column Order for Writing" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Specify column order using the <code>index</code> attribute of the <code>@ExcelProperty</code> annotation.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result-1">Result<a href="#result-1" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png" width="439" height="299" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="writing-without-creating-objects">Writing Without Creating Objects<a href="#writing-without-creating-objects" class="hash-link" aria-label="Direct link to Writing Without Creating Objects" title="Direct link to Writing Without Creating Objects" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Write data directly using <code>List<List<String>></code> to define headers and data without creating entity classes.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result-2">Result<a href="#result-2" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/noModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png" width="384" height="356" class="img_U4Mj"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/docs/write/pojo.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" wi [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/write/sheet/index.html b/docs/write/sheet/index.html
new file mode 100644
index 00000000..18bc3745
--- /dev/null
+++ b/docs/write/sheet/index.html
@@ -0,0 +1,40 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/sheet" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Sheet | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/write/sheet/"><meta data-rh="true" prop [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to configure Sheets to write data.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="writing-to-the-same-sheet">Writing to the Same Sheet<a href="#writing-to-the-same-sheet" class="hash-link" aria-label="Direct link to Writing to the Same Sheet" title="Direct link to Writing to the Same Sheet" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Write data in batches to the same Sheet.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result">Result<a href="#result" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/repeatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png" width="386" height="298" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="writing-to-multiple-sheets">Writing to Multiple Sheets<a href="#writing-to-multiple-sheets" class="hash-link" aria-label="Direct link to Writing to Multiple Sheets" title="Direct link to Writing to Multiple Sheets" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Write data in batches to multiple Sheets, enabling paginated writing for large data volumes.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result-1">Result<a href="#result-1" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/repeatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png" width="386" height="298" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="writing-using-tables">Writing Using Tables<a href="#writing-using-tables" class="hash-link" aria-label="Direct link to Writing Using Tables" title="Direct link to Writing Using Tables" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Supports using multiple Tables within a single Sheet for segmented writing.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result-2">Result<a href="#result-2" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/tableWrite-1b3814878a3fc0ef244f767899675190.png" width="370" height="545" class="img_U4Mj"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/docs/write/sheet.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" wid [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/write/simple/index.html b/docs/write/simple/index.html
new file mode 100644
index 00000000..ab7b0d12
--- /dev/null
+++ b/docs/write/simple/index.html
@@ -0,0 +1,34 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/simple" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Simple | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/write/simple/"><meta data-rh="true" pr [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to use FastExcel to perform simple Excel writing operations.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
+<p>Use FastExcel for simple Excel data writing to quickly write entity objects to Excel files.
+This is the most basic and commonly used writing approach.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="code-examples">Code Examples<a href="#code-examples" class="hash-link" aria-label="Direct link to Code Examples" title="Direct link to Code Examples" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<p>The <code>DemoData</code> POJO class corresponding to the Excel structure:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="data-list">Data List<a href="#data-list" class="hash-link" aria-label="Direct link to Data List" title="Direct link to Data List" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">private</span><span class="token plain"> </span><span class="token [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="writing-methods">Writing Methods<a href="#writing-methods" class="hash-link" aria-label="Direct link to Writing Methods" title="Direct link to Writing Methods" translate="no"></a></h3>
+<p>FastExcel provides multiple writing methods, including <code>Lambda</code> expressions, data lists, <code>ExcelWriter</code> objects, etc.</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="lambda-expression"><code>Lambda</code> Expression<a href="#lambda-expression" class="hash-link" aria-label="Direct link to lambda-expression" title="Direct link to lambda-expression" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="data-list-1">Data List<a href="#data-list-1" class="hash-link" aria-label="Direct link to Data List" title="Direct link to Data List" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="excelwriter-object"><code>ExcelWriter</code> Object<a href="#excelwriter-object" class="hash-link" aria-label="Direct link to excelwriter-object" title="Direct link to excelwriter-object" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/write/spring/index.html b/docs/write/spring/index.html
new file mode 100644
index 00000000..129ea5af
--- /dev/null
+++ b/docs/write/spring/index.html
@@ -0,0 +1,22 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/spring" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Spring | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/write/spring/"><meta data-rh="true" pr [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to integrate and use FastExcel in the Spring framework to generate Excel files.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="spring-controller-example">Spring Controller Example<a href="#spring-controller-example" class="hash-link" aria-label="Direct link to Spring Controller Example" title="Direct link to Spring Controller Example" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>In Spring Boot projects, you can generate Excel files and provide download functionality through HTTP interfaces, making it convenient to use FastExcel in web environments.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@GetMapping</span><span class="token punctuation" st [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/write/style/index.html b/docs/write/style/index.html
new file mode 100644
index 00000000..74654a03
--- /dev/null
+++ b/docs/write/style/index.html
@@ -0,0 +1,59 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/style" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Style | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/write/style/"><meta data-rh="true" prop [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces style settings when writing data.</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="annotations">Annotations<a href="#annotations" class="hash-link" aria-label="Direct link to Annotations" title="Direct link to Annotations" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Set cell styles through annotations in entity classes, including font, background color, row height, etc.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result">Result<a href="#result" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/annotationStyleWrite-daf422cde61cef375e3a694c3c64a0cb.png" width="529" height="427" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="built-in-interceptors">Built-in Interceptors<a href="#built-in-interceptors" class="hash-link" aria-label="Direct link to Built-in Interceptors" title="Direct link to Built-in Interceptors" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Use <code>HorizontalCellStyleStrategy</code> to set styles for headers and content separately.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result-1">Result<a href="#result-1" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/handlerStyleWrite-082ae37a51bd9252f6900ab754387401.png" width="345" height="288" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="custom-interceptors">Custom Interceptors<a href="#custom-interceptors" class="hash-link" aria-label="Direct link to Custom Interceptors" title="Direct link to Custom Interceptors" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>If existing strategies cannot meet requirements, you can implement the <code>CellWriteHandler</code> interface for complete custom control over styling.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<p>Custom interceptor</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Usage</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="custom-poi-styles">Custom POI Styles<a href="#custom-poi-styles" class="hash-link" aria-label="Direct link to Custom POI Styles" title="Direct link to Custom POI Styles" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-3">Overview<a href="#overview-3" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Directly manipulate POI's <code>CellStyle</code>, suitable for precise style control.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-3">Code Example<a href="#code-example-3" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="column-width-and-row-height">Column Width and Row Height<a href="#column-width-and-row-height" class="hash-link" aria-label="Direct link to Column Width and Row Height" title="Direct link to Column Width and Row Height" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="overview-4">Overview<a href="#overview-4" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Control column width and row height through annotations, suitable for scenarios with specific table format requirements.</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-class-1">POJO Class<a href="#pojo-class-1" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="code-example-4">Code Example<a href="#code-example-4" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="result-2">Result<a href="#result-2" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/widthAndHeightWrite-77c049fb68d1ac806c1ba21e82c45f45.png" width="905" height="284" class="img_U4Mj"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/docs/write/style.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/img/docs/fill/complexFillWithTable_file.png b/img/docs/fill/complexFillWithTable_file.png
new file mode 100644
index 00000000..a87a3e75
Binary files /dev/null and b/img/docs/fill/complexFillWithTable_file.png differ
diff --git a/img/docs/fill/complexFillWithTable_result.png b/img/docs/fill/complexFillWithTable_result.png
new file mode 100644
index 00000000..dc27781a
Binary files /dev/null and b/img/docs/fill/complexFillWithTable_result.png differ
diff --git a/img/docs/fill/complexFill_file.png b/img/docs/fill/complexFill_file.png
new file mode 100644
index 00000000..b2540ed2
Binary files /dev/null and b/img/docs/fill/complexFill_file.png differ
diff --git a/img/docs/fill/complexFill_result.png b/img/docs/fill/complexFill_result.png
new file mode 100644
index 00000000..0a9d289b
Binary files /dev/null and b/img/docs/fill/complexFill_result.png differ
diff --git a/img/docs/fill/compositeFill_file.png b/img/docs/fill/compositeFill_file.png
new file mode 100644
index 00000000..0e9f099f
Binary files /dev/null and b/img/docs/fill/compositeFill_file.png differ
diff --git a/img/docs/fill/compositeFill_result.png b/img/docs/fill/compositeFill_result.png
new file mode 100644
index 00000000..316a0022
Binary files /dev/null and b/img/docs/fill/compositeFill_result.png differ
diff --git a/img/docs/fill/horizontalFill_file.png b/img/docs/fill/horizontalFill_file.png
new file mode 100644
index 00000000..70af032d
Binary files /dev/null and b/img/docs/fill/horizontalFill_file.png differ
diff --git a/img/docs/fill/horizontalFill_result.png b/img/docs/fill/horizontalFill_result.png
new file mode 100644
index 00000000..e88053d0
Binary files /dev/null and b/img/docs/fill/horizontalFill_result.png differ
diff --git a/img/docs/fill/listFill_file.png b/img/docs/fill/listFill_file.png
new file mode 100644
index 00000000..8ebb7555
Binary files /dev/null and b/img/docs/fill/listFill_file.png differ
diff --git a/img/docs/fill/listFill_result.png b/img/docs/fill/listFill_result.png
new file mode 100644
index 00000000..4cdd60d4
Binary files /dev/null and b/img/docs/fill/listFill_result.png differ
diff --git a/img/docs/fill/simpleFill_file.png b/img/docs/fill/simpleFill_file.png
new file mode 100644
index 00000000..e393bad9
Binary files /dev/null and b/img/docs/fill/simpleFill_file.png differ
diff --git a/img/docs/fill/simpleFill_result.png b/img/docs/fill/simpleFill_result.png
new file mode 100644
index 00000000..1936c0e6
Binary files /dev/null and b/img/docs/fill/simpleFill_result.png differ
diff --git a/img/docs/wechat-public.jpg b/img/docs/wechat-public.jpg
new file mode 100644
index 00000000..52255238
Binary files /dev/null and b/img/docs/wechat-public.jpg differ
diff --git a/img/docs/write/annotationStyleWrite.png b/img/docs/write/annotationStyleWrite.png
new file mode 100644
index 00000000..6aeb9fb5
Binary files /dev/null and b/img/docs/write/annotationStyleWrite.png differ
diff --git a/img/docs/write/commentWrite.png b/img/docs/write/commentWrite.png
new file mode 100644
index 00000000..9ffcb125
Binary files /dev/null and b/img/docs/write/commentWrite.png differ
diff --git a/img/docs/write/complexHeadWrite.png b/img/docs/write/complexHeadWrite.png
new file mode 100644
index 00000000..e52d0960
Binary files /dev/null and b/img/docs/write/complexHeadWrite.png differ
diff --git a/img/docs/write/converterWrite.png b/img/docs/write/converterWrite.png
new file mode 100644
index 00000000..90196e1a
Binary files /dev/null and b/img/docs/write/converterWrite.png differ
diff --git a/img/docs/write/customHandlerWrite.png b/img/docs/write/customHandlerWrite.png
new file mode 100644
index 00000000..f263d02a
Binary files /dev/null and b/img/docs/write/customHandlerWrite.png differ
diff --git a/img/docs/write/dynamicHeadWrite.png b/img/docs/write/dynamicHeadWrite.png
new file mode 100644
index 00000000..68430370
Binary files /dev/null and b/img/docs/write/dynamicHeadWrite.png differ
diff --git a/img/docs/write/excludeOrIncludeWrite.png b/img/docs/write/excludeOrIncludeWrite.png
new file mode 100644
index 00000000..8911e5fb
Binary files /dev/null and b/img/docs/write/excludeOrIncludeWrite.png differ
diff --git a/img/docs/write/handlerStyleWrite.png b/img/docs/write/handlerStyleWrite.png
new file mode 100644
index 00000000..7f6248f8
Binary files /dev/null and b/img/docs/write/handlerStyleWrite.png differ
diff --git a/img/docs/write/ignore_row.png b/img/docs/write/ignore_row.png
new file mode 100644
index 00000000..1017b472
Binary files /dev/null and b/img/docs/write/ignore_row.png differ
diff --git a/img/docs/write/imgWrite.png b/img/docs/write/imgWrite.png
new file mode 100644
index 00000000..9ad021d5
Binary files /dev/null and b/img/docs/write/imgWrite.png differ
diff --git a/img/docs/write/indexRow.png b/img/docs/write/indexRow.png
new file mode 100644
index 00000000..0010cc07
Binary files /dev/null and b/img/docs/write/indexRow.png differ
diff --git a/img/docs/write/indexWrite.png b/img/docs/write/indexWrite.png
new file mode 100644
index 00000000..238d9db8
Binary files /dev/null and b/img/docs/write/indexWrite.png differ
diff --git a/img/docs/write/mergeWrite.png b/img/docs/write/mergeWrite.png
new file mode 100644
index 00000000..0249c4f6
Binary files /dev/null and b/img/docs/write/mergeWrite.png differ
diff --git a/img/docs/write/noModelWrite.png b/img/docs/write/noModelWrite.png
new file mode 100644
index 00000000..6a66c62d
Binary files /dev/null and b/img/docs/write/noModelWrite.png differ
diff --git a/img/docs/write/repeatedWrite.png b/img/docs/write/repeatedWrite.png
new file mode 100644
index 00000000..df324c96
Binary files /dev/null and b/img/docs/write/repeatedWrite.png differ
diff --git a/img/docs/write/tableWrite.png b/img/docs/write/tableWrite.png
new file mode 100644
index 00000000..e1b6f2a8
Binary files /dev/null and b/img/docs/write/tableWrite.png differ
diff --git a/img/docs/write/templateWrite.png b/img/docs/write/templateWrite.png
new file mode 100644
index 00000000..f378efb4
Binary files /dev/null and b/img/docs/write/templateWrite.png differ
diff --git a/img/docs/write/widthAndHeightWrite.png b/img/docs/write/widthAndHeightWrite.png
new file mode 100644
index 00000000..167b5511
Binary files /dev/null and b/img/docs/write/widthAndHeightWrite.png differ
diff --git a/img/docs/write/writeCellDataWrite.png b/img/docs/write/writeCellDataWrite.png
new file mode 100644
index 00000000..54b2666f
Binary files /dev/null and b/img/docs/write/writeCellDataWrite.png differ
diff --git a/img/favicon.ico b/img/favicon.ico
new file mode 100644
index 00000000..90357161
Binary files /dev/null and b/img/favicon.ico differ
diff --git a/img/github_icon.svg b/img/github_icon.svg
new file mode 100644
index 00000000..93ebbeca
--- /dev/null
+++ b/img/github_icon.svg
@@ -0,0 +1,21 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="black">
+ <path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285 [...]
+</svg>
\ No newline at end of file
diff --git a/img/index/undraw_files.svg b/img/index/undraw_files.svg
new file mode 100644
index 00000000..16039dd0
--- /dev/null
+++ b/img/index/undraw_files.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1008.92039" height="607.44997" viewBox="0 0 1008.92039 607.44997" xmlns:xlink="http://www.w3.org/1999/xlink" role="img" artist="Katerina Limpitsouni" source="https://undraw.co/"><path d="M1104.46,620.305a15.34,15.34,0,0,1-15.25952,15.42H417.8a15.34,15.34,0,0,1-15.26-15.41955V161.695a15.34,15.34,0,0,1,15.25958-15.42H1089.2a15.34,15.34,0,0,1,15.26,15.41957h0V620.305Z" transform="translate(-95.53981 -146.27502)" fill="#e6e6e6"/><path d="M1096.5 [...]
\ No newline at end of file
diff --git a/img/index/undraw_programming.svg b/img/index/undraw_programming.svg
new file mode 100644
index 00000000..f8189de9
--- /dev/null
+++ b/img/index/undraw_programming.svg
@@ -0,0 +1,125 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="882.126" height="576.272" viewBox="0 0 882.126 576.272" xmlns:xlink="http://www.w3.org/1999/xlink" role="img" artist="Katerina Limpitsouni" source="https://undraw.co/">
+ <g id="Group_138" data-name="Group 138" transform="translate(-519 -251.864)">
+ <g id="Group_137" data-name="Group 137">
+ <path id="Path_1240-340" data-name="Path 1240" d="M958.821,382.941,907.537,402.1,893.89,367.923l36.505-12.787C931.953,364.095,939.352,378.718,958.821,382.941Z" transform="matrix(0.914, 0.407, -0.407, 0.914, 46.029, -113.727)" fill="#ffb8b8"/>
+ <circle id="Ellipse_405" data-name="Ellipse 405" cx="26.701" cy="26.701" r="26.701" transform="translate(928.774 296.429)" fill="#fd6584"/>
+ <path id="Path_2166-341" data-name="Path 2166" d="M655.233,220.487a13.235,13.235,0,0,0-11.17-9.29,1.078,1.078,0,0,0-.18,0,1.418,1.418,0,0,0-.22-.05c-8.94-1.16-18.88,1.66-25.57,7.8a23.958,23.958,0,0,0-5.83,8.04,12.917,12.917,0,0,0-10.83-5.28,13.184,13.184,0,0,0-11.8,9.51,1.526,1.526,0,0,0,.69,1.69,6.674,6.674,0,0,0,2.79,1.42c2.21.47,4.44.9,6.67,1.29q6.54,1.14,13.15,1.85,4.365.465,8.75.74c6.04.38,12.11.47,18.16.28,3-.1,5.88-.2,8.62-1.52a12.8,12.8,0,0,0,4.95-4.31,14.548,14.548,0,0,0,1 [...]
+ <path id="Path_2167-342" data-name="Path 2167" d="M600.3,259.387a13.65,13.65,0,0,0-.56-3.3,13.26,13.26,0,0,0-11.18-9.29.966.966,0,0,0-.17,0,1.884,1.884,0,0,0-.23-.05,33.193,33.193,0,0,0-14.69,1.51c-7.26,2.43-13.63,7.33-16.7,14.33a12.922,12.922,0,0,0-10.84-5.28,13.184,13.184,0,0,0-11.8,9.51,1.555,1.555,0,0,0,.69,1.69,6.733,6.733,0,0,0,2.79,1.42c2.22.47,4.44.9,6.68,1.29q6.54,1.14,13.14,1.85a195.168,195.168,0,0,0,26.92,1.02c2.99-.1,5.88-.2,8.62-1.52a12.77,12.77,0,0,0,4.94-4.31,14.265, [...]
+ <path id="Path_2170-343" data-name="Path 2170" d="M895.47,639.046H792.093a167.922,167.922,0,0,1,.149-24.858c4.131-51.094,31.929-99.768,73.868-129.241-5.359,19.09-2.6,38.069,2.977,57.122-.781.26-1.563.484-2.27.781a46.236,46.236,0,0,0-15.294,9.378c-1.228,1.154-2.53,2.828-1.9,4.428.558,1.34,2.233,1.786,3.684,2.084,3.5.67,7,1.34,10.457,1.972,2.791.558,5.582,1.079,8.373,1.637,1.3.223,2.6.484,3.907.744.186.447.3.856.484,1.265,6.549,18.048,13.694,36.245,17.044,54.74a127.806,127.806,0,0,1, [...]
+ <path id="Path_2172-344" data-name="Path 2172" d="M424.08,571.318c-17.565,10.68-28.729,27.2-37.846,45.7a46.743,46.743,0,0,0-21.249,11.164c-1.265,1.154-2.568,2.828-1.9,4.428.558,1.34,2.233,1.786,3.684,2.084,3.461.67,7,1.34,10.457,1.972-.335.782-.67,1.6-1,2.382H260.12A164.175,164.175,0,0,1,277.573,619.1c1.377-1.377,2.791-2.679,4.242-4.019a173.651,173.651,0,0,1,50.238-31.706,176.734,176.734,0,0,1,92.028-12.057Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <path id="Path_2174-345" data-name="Path 2174" d="M664.33,595.644l92.37,8.2.99.09V209.794l-.99-.69a288.324,288.324,0,0,0-62.01-32.94l-4.72,65.1-.43,5.96-4.67,64.56-1.44,19.86-18.93,261.7Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <path id="Path_2175-346" data-name="Path 2175" d="M435.9,202.454c-.66.42-1.32.84-1.98,1.28v400.2l1.98-.18,91.37-8.11-.17-2.3-18.93-261.7-1.44-19.86-4.67-64.56-.43-5.96-4.95-68.27a287.689,287.689,0,0,0-60.78,29.46Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <path id="Path_2176-347" data-name="Path 2176" d="M433.92,203.734c-1.33.86-2.66,1.74-3.97,2.63v403.03c0,10.07,5.97,18.51,13.95,20.66a15.251,15.251,0,0,0,4,.53H744.7a15.117,15.117,0,0,0,3.99-.53,17.06,17.06,0,0,0,7.78-4.66,22.919,22.919,0,0,0,6.18-16V213.374c-1.64-1.21-3.29-2.41-4.96-3.58l-.99-.69v400.29a16.113,16.113,0,0,1-.46,3.85c-1.41,5.95-6.06,10.31-11.54,10.31H447.9c-6.62,0-12-6.35-12-14.16V202.454C435.24,202.874,434.58,203.294,433.92,203.734Z" transform="translate(360 90)" fi [...]
+ <rect id="Rectangle_484" data-name="Rectangle 484" width="326.752" height="5.959" transform="translate(792.922 331.268)" fill="#f2f2f2"/>
+ <path id="Path_2177-348" data-name="Path 2177" d="M659.6,165.254c-1.98-.49-3.96-.95-5.96-1.38v161.81h5.96Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <path id="Path_2178-349" data-name="Path 2178" d="M538.96,161.864c-1.99.37-3.98.75-5.96,1.16v162.66h5.96Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <path id="Path_2179-350" data-name="Path 2179" d="M368.86,620.154a26.712,26.712,0,0,0,1.93,9.98,25.539,25.539,0,0,0,1.75,3.56,27.1,27.1,0,0,0,3.02,4.18,26.76,26.76,0,0,0,20.12,9.11H786.99a26.82,26.82,0,0,0,0-53.64H395.68A26.846,26.846,0,0,0,368.86,620.154Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <rect id="Rectangle_485" data-name="Rectangle 485" width="324.766" height="19.863" transform="translate(1117.688 421.646) rotate(180)" fill="#f2f2f2"/>
+ <path id="Path_2180-351" data-name="Path 2180" d="M581.4,305.824H609.21a10.925,10.925,0,0,1-10.925,10.925h-5.959A10.925,10.925,0,0,1,581.4,305.824h0Z" transform="translate(1550.611 712.572) rotate(180)" fill="#f2f2f2"/>
+ <path id="Path_2181-352" data-name="Path 2181" d="M159.92,635.474a292.039,292.039,0,0,0,28.749,28.95H1013.3a292.039,292.039,0,0,0,28.749-28.95Z" transform="translate(359.08 90)" fill="#f2f2f2"/>
+ <path id="Path_2182-353" data-name="Path 2182" d="M556.61,538.664v102.56h71.85V538.664a3.448,3.448,0,0,0-2.43-3.3,3.174,3.174,0,0,0-1.03-.16H560.08A3.463,3.463,0,0,0,556.61,538.664Zm28.04,35.24a7.67,7.67,0,1,1,15.34,0v11.9a7.67,7.67,0,1,1-15.34,0Z" transform="translate(360 90)" fill="#e6e6e6"/>
+ <path id="Path_2183-354" data-name="Path 2183" d="M556.39,637.944v9.89a1.946,1.946,0,0,0,1.93,1.94h68.43a1.94,1.94,0,0,0,1.93-1.94v-9.89Z" transform="translate(360 90)" fill="#3f3d56"/>
+ <path id="Path_2184-355" data-name="Path 2184" d="M443.58,384.144V571.4a9.007,9.007,0,0,0,9,9h277.5a9.007,9.007,0,0,0,9-9V384.144a9.012,9.012,0,0,0-9-8.99H452.58a9.011,9.011,0,0,0-9,8.99Z" transform="translate(360 90)" fill="#3f3d56"/>
+ <path id="Path_2185-356" data-name="Path 2185" d="M450.09,386.474v182.62a4.818,4.818,0,0,0,4.81,4.81H727.77a4.818,4.818,0,0,0,4.81-4.81V386.474a4.82,4.82,0,0,0-4.81-4.82H454.9a4.821,4.821,0,0,0-4.81,4.82Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <path id="Path_2186-357" data-name="Path 2186" d="M505.73,652.1a2.948,2.948,0,0,0,2.32,1.11H670.39a2.987,2.987,0,0,0,2.92-3.6l-2.52-11.97a2.993,2.993,0,0,0-1.86-2.17,2.9,2.9,0,0,0-1.06-.2H510.56a2.894,2.894,0,0,0-1.06.2,2.992,2.992,0,0,0-1.86,2.17l-2.52,11.97a2.985,2.985,0,0,0,.61,2.49Z" transform="translate(360 90)" fill="#2f2e41"/>
+ <rect id="Rectangle_486" data-name="Rectangle 486" width="5" height="3" rx="0.488" transform="translate(1026.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_487" data-name="Rectangle 487" width="5" height="3" rx="0.488" transform="translate(1016.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_488" data-name="Rectangle 488" width="5" height="3" rx="0.488" transform="translate(1006.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_489" data-name="Rectangle 489" width="5" height="3" rx="0.488" transform="translate(996.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_490" data-name="Rectangle 490" width="5" height="3" rx="0.488" transform="translate(986.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_491" data-name="Rectangle 491" width="5" height="3" rx="0.488" transform="translate(976.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_492" data-name="Rectangle 492" width="5" height="3" rx="0.488" transform="translate(966.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_493" data-name="Rectangle 493" width="5" height="3" rx="0.488" transform="translate(956.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_494" data-name="Rectangle 494" width="5" height="3" rx="0.488" transform="translate(946.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_495" data-name="Rectangle 495" width="5" height="3" rx="0.488" transform="translate(936.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_496" data-name="Rectangle 496" width="5" height="3" rx="0.488" transform="translate(926.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_497" data-name="Rectangle 497" width="5" height="3" rx="0.488" transform="translate(916.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_498" data-name="Rectangle 498" width="5" height="3" rx="0.488" transform="translate(906.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_499" data-name="Rectangle 499" width="5" height="3" rx="0.488" transform="translate(896.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_500" data-name="Rectangle 500" width="5" height="3" rx="0.488" transform="translate(886.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_501" data-name="Rectangle 501" width="5" height="3" rx="0.488" transform="translate(876.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_502" data-name="Rectangle 502" width="5" height="3" rx="0.488" transform="translate(1026.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_503" data-name="Rectangle 503" width="5" height="3" rx="0.488" transform="translate(1016.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_504" data-name="Rectangle 504" width="5" height="3" rx="0.488" transform="translate(1006.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_505" data-name="Rectangle 505" width="5" height="3" rx="0.488" transform="translate(996.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_506" data-name="Rectangle 506" width="5" height="3" rx="0.488" transform="translate(986.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_507" data-name="Rectangle 507" width="5" height="3" rx="0.488" transform="translate(976.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_508" data-name="Rectangle 508" width="5" height="3" rx="0.488" transform="translate(966.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_509" data-name="Rectangle 509" width="5" height="3" rx="0.488" transform="translate(956.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_510" data-name="Rectangle 510" width="5" height="3" rx="0.488" transform="translate(946.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_511" data-name="Rectangle 511" width="5" height="3" rx="0.488" transform="translate(936.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_512" data-name="Rectangle 512" width="5" height="3" rx="0.488" transform="translate(926.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_513" data-name="Rectangle 513" width="5" height="3" rx="0.488" transform="translate(916.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_514" data-name="Rectangle 514" width="5" height="3" rx="0.488" transform="translate(906.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_515" data-name="Rectangle 515" width="5" height="3" rx="0.488" transform="translate(896.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_516" data-name="Rectangle 516" width="5" height="3" rx="0.488" transform="translate(886.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_517" data-name="Rectangle 517" width="5" height="3" rx="0.488" transform="translate(876.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_518" data-name="Rectangle 518" width="40" height="3" rx="0.488" transform="translate(978.835 741.43) rotate(180)" fill="#3f3d56"/>
+ <path id="Path_2187-358" data-name="Path 2187" d="M468.612,406.811H723.935a1.015,1.015,0,1,0,0-2.031H468.612a1.015,1.015,0,1,0,0,2.031Z" transform="translate(360 90)" fill="#3f3d56"/>
+ <ellipse id="Ellipse_406" data-name="Ellipse 406" cx="5.95" cy="6.083" rx="5.95" ry="6.083" transform="translate(1060.604 477.43)" fill="#3f3d56"/>
+ <ellipse id="Ellipse_407" data-name="Ellipse 407" cx="5.95" cy="6.083" rx="5.95" ry="6.083" transform="translate(1040.049 477.43)" fill="#3f3d56"/>
+ <ellipse id="Ellipse_408" data-name="Ellipse 408" cx="5.95" cy="6.083" rx="5.95" ry="6.083" transform="translate(1019.493 477.43)" fill="#3f3d56"/>
+ <path id="Path_2188-359" data-name="Path 2188" d="M479.9,390.044a1.1,1.1,0,0,0,1.09,1.1h14.6a1.105,1.105,0,0,0,0-2.21h-14.6a1.1,1.1,0,0,0-1.09,1.11Z" transform="translate(360 90)" fill="#3f3d56"/>
+ <path id="Path_2189-360" data-name="Path 2189" d="M479.9,394.194a1.1,1.1,0,0,0,1.09,1.1h14.6a1.105,1.105,0,0,0,0-2.21h-14.6a1.1,1.1,0,0,0-1.09,1.11Z" transform="translate(360 90)" fill="#3f3d56"/>
+ <path id="Path_2190-361" data-name="Path 2190" d="M479.9,398.334a1.1,1.1,0,0,0,1.09,1.11h14.6a1.105,1.105,0,0,0,0-2.21h-14.6A1.1,1.1,0,0,0,479.9,398.334Z" transform="translate(360 90)" fill="#3f3d56"/>
+ <rect id="Rectangle_519" data-name="Rectangle 519" width="11.006" height="5.76" rx="2.88" transform="translate(836.286 520.407)" fill="#2e8555"/>
+ <rect id="Rectangle_520" data-name="Rectangle 520" width="11.006" height="5.76" rx="2.88" transform="translate(896.286 520.407)" fill="#2e8555"/>
+ <rect id="Rectangle_521" data-name="Rectangle 521" width="11.006" height="5.76" rx="2.88" transform="translate(913.286 520.407)" fill="#2e8555"/>
+ <rect id="Rectangle_522" data-name="Rectangle 522" width="38.366" height="5.76" rx="2.88" transform="translate(852.606 519.927)" fill="#2e8555"/>
+ <rect id="Rectangle_523" data-name="Rectangle 523" width="38.366" height="5.76" rx="2.88" transform="translate(932.606 519.927)" fill="#2e8555"/>
+ <rect id="Rectangle_524" data-name="Rectangle 524" width="11.006" height="5.76" rx="2.88" transform="translate(852.286 533.407)" fill="#2e8555"/>
+ <rect id="Rectangle_525" data-name="Rectangle 525" width="11.006" height="5.76" rx="2.88" transform="translate(912.286 533.407)" fill="#2e8555"/>
+ <rect id="Rectangle_526" data-name="Rectangle 526" width="11.006" height="5.76" rx="2.88" transform="translate(929.286 533.407)" fill="#2e8555"/>
+ <rect id="Rectangle_527" data-name="Rectangle 527" width="38.366" height="5.76" rx="2.88" transform="translate(868.606 532.927)" fill="#2e8555"/>
+ <rect id="Rectangle_528" data-name="Rectangle 528" width="38.366" height="5.76" rx="2.88" transform="translate(948.606 532.927)" fill="#2e8555"/>
+ <rect id="Rectangle_529" data-name="Rectangle 529" width="11.006" height="5.76" rx="2.88" transform="translate(868.286 546.407)" fill="#2e8555"/>
+ <rect id="Rectangle_530" data-name="Rectangle 530" width="11.006" height="5.76" rx="2.88" transform="translate(928.286 546.407)" fill="#2e8555"/>
+ <rect id="Rectangle_531" data-name="Rectangle 531" width="11.006" height="5.76" rx="2.88" transform="translate(945.286 546.407)" fill="#2e8555"/>
+ <rect id="Rectangle_532" data-name="Rectangle 532" width="38.366" height="5.76" rx="2.88" transform="translate(884.606 545.927)" fill="#2e8555"/>
+ <rect id="Rectangle_533" data-name="Rectangle 533" width="38.366" height="5.76" rx="2.88" transform="translate(964.606 545.927)" fill="#2e8555"/>
+ <rect id="Rectangle_534" data-name="Rectangle 534" width="11.006" height="5.76" rx="2.88" transform="translate(884.286 559.407)" fill="#2e8555"/>
+ <rect id="Rectangle_535" data-name="Rectangle 535" width="11.006" height="5.76" rx="2.88" transform="translate(944.286 559.407)" fill="#2e8555"/>
+ <rect id="Rectangle_536" data-name="Rectangle 536" width="11.006" height="5.76" rx="2.88" transform="translate(961.286 559.407)" fill="#2e8555"/>
+ <rect id="Rectangle_537" data-name="Rectangle 537" width="38.366" height="5.76" rx="2.88" transform="translate(900.606 558.927)" fill="#2e8555"/>
+ <rect id="Rectangle_538" data-name="Rectangle 538" width="11.006" height="5.76" rx="2.88" transform="translate(896.286 611.101)" fill="#2e8555"/>
+ <rect id="Rectangle_539" data-name="Rectangle 539" width="11.006" height="5.76" rx="2.88" transform="translate(913.286 611.101)" fill="#2e8555"/>
+ <rect id="Rectangle_540" data-name="Rectangle 540" width="38.366" height="5.76" rx="2.88" transform="translate(932.606 611.581)" fill="#2e8555"/>
+ <rect id="Rectangle_541" data-name="Rectangle 541" width="11.006" height="5.76" rx="2.88" transform="translate(836.286 611.101)" fill="#2e8555"/>
+ <rect id="Rectangle_542" data-name="Rectangle 542" width="38.366" height="5.76" rx="2.88" transform="translate(852.606 611.581)" fill="#2e8555"/>
+ <rect id="Rectangle_543" data-name="Rectangle 543" width="11.006" height="5.76" rx="2.88" transform="translate(852.286 598.101)" fill="#2e8555"/>
+ <rect id="Rectangle_544" data-name="Rectangle 544" width="11.006" height="5.76" rx="2.88" transform="translate(912.286 598.101)" fill="#2e8555"/>
+ <rect id="Rectangle_545" data-name="Rectangle 545" width="11.006" height="5.76" rx="2.88" transform="translate(929.286 598.101)" fill="#2e8555"/>
+ <rect id="Rectangle_546" data-name="Rectangle 546" width="38.366" height="5.76" rx="2.88" transform="translate(868.606 598.581)" fill="#2e8555"/>
+ <rect id="Rectangle_547" data-name="Rectangle 547" width="11.006" height="5.76" rx="2.88" transform="translate(868.286 585.101)" fill="#2e8555"/>
+ <rect id="Rectangle_548" data-name="Rectangle 548" width="11.006" height="5.76" rx="2.88" transform="translate(928.286 585.101)" fill="#2e8555"/>
+ <rect id="Rectangle_549" data-name="Rectangle 549" width="11.006" height="5.76" rx="2.88" transform="translate(945.286 585.101)" fill="#2e8555"/>
+ <rect id="Rectangle_550" data-name="Rectangle 550" width="38.366" height="5.76" rx="2.88" transform="translate(884.606 585.581)" fill="#2e8555"/>
+ <rect id="Rectangle_551" data-name="Rectangle 551" width="11.006" height="5.76" rx="2.88" transform="translate(884.286 572.101)" fill="#2e8555"/>
+ <rect id="Rectangle_552" data-name="Rectangle 552" width="11.006" height="5.76" rx="2.88" transform="translate(944.286 572.101)" fill="#2e8555"/>
+ <rect id="Rectangle_553" data-name="Rectangle 553" width="11.006" height="5.76" rx="2.88" transform="translate(961.286 572.101)" fill="#2e8555"/>
+ <rect id="Rectangle_554" data-name="Rectangle 554" width="38.366" height="5.76" rx="2.88" transform="translate(900.606 572.581)" fill="#2e8555"/>
+ <path id="Path_2191-362" data-name="Path 2191" d="M509.832,707.816c-.22.11-.44.22-.66.32q-2.085,1.035-4.2,2.04-6.33,3.015-12.82,5.73a285.491,285.491,0,0,1-34.97,12.03c-2-12.47-3.94-41.88-5.8-63.51-.35-4.07-.7-7.86-1.05-11.21a97.15,97.15,0,0,0-1.89-13.08,4.359,4.359,0,0,0-.39-.97c.19,1.73.39,6.89.58,14.05.1,3.35.19,7.14.29,11.21.47,20.82.96,49.15,1.45,65.28-1.39.34-2.79.68-4.19,1-.88.21-1.77.41-2.66.6-1.08.24-2.16.48-3.24.7q-1.7.36-3.39.69a290.078,290.078,0,0,1-56.06,5.44c-1.25,0-2. [...]
+ <path id="Path_2192-363" data-name="Path 2192" d="M303.59,473.566l-8.5-32.792-7.5,28.3Z" transform="translate(519.92 251.864)" opacity="0.2"/>
+ <path id="Path_2193-364" data-name="Path 2193" d="M175.749,635.05a6.416,6.416,0,0,0,6.183,4.331l26.492-.682a6.328,6.328,0,0,0,5.981-4.657l3.749-40.087a9.8,9.8,0,0,0,4.238.871,9.661,9.661,0,1,0-.485-19.317,8.177,8.177,0,0,0-1.736.181,6.548,6.548,0,0,0-4.874-2.1l-40.751,1.052a5.858,5.858,0,0,0-1.005.125,6.365,6.365,0,0,0-4.873,8.265Zm43.173-43.817,2.668-9.553a6.506,6.506,0,0,0,.02-3.375c.129,0,.244-.062.373-.062a6.91,6.91,0,1,1,.324,13.817,6.505,6.505,0,0,1-3.385-.828Z" transform="tr [...]
+ <path id="Path_2194-365" data-name="Path 2194" d="M173.541,574.763c.868,4.964,10.629,8.454,22.366,7.847,10.793-.5,19.617-4.287,21.234-8.779a6.024,6.024,0,0,0-1.844-.246l-40.751,1.052A5.852,5.852,0,0,0,173.541,574.763Z" transform="translate(360 90)" fill="#090814"/>
+ <path id="Path_2195-366" data-name="Path 2195" d="M198.283,615.324a.625.625,0,0,0,.191-.084l7.281-4.766a.632.632,0,0,0,0-1.058l-7.568-4.957a.632.632,0,0,0-.693,1.058l6.759,4.427-6.472,4.237a.633.633,0,0,0,.5,1.143Z" transform="translate(363.097 86.083)" fill="#f2f2f2"/>
+ <path id="Path_2196-367" data-name="Path 2196" d="M190.721,615.743a.633.633,0,0,0,.16-1.162l-6.712-3.848,6.487-4.819a.632.632,0,0,0-.754-1.015l-7.263,5.395a.632.632,0,0,0,.062,1.057l7.55,4.328a.633.633,0,0,0,.47.064Z" transform="translate(359.16 86.194)" fill="#f2f2f2"/>
+ <path id="Path_2197-368" data-name="Path 2197" d="M199.817,620.145a.611.611,0,0,0,.173-.073.633.633,0,0,0,.212-.87l-10.322-16.97a.633.633,0,1,0-1.081.659l10.322,16.97a.633.633,0,0,0,.7.284Z" transform="translate(360.839 85.438)" fill="#f2f2f2"/>
+ <path id="Path_2198-369" data-name="Path 2198" d="M945.069,708.9c-.61.31-1.23.62-1.84.92-15.8,7.9-28.44,12.39-45.73,17.31-1.46-16.3-2.87-44.95-4.24-62.71-.36-4.61-.72-8.48-1.07-11.21a15.183,15.183,0,0,0-.88-4.25l.06,4.25.15,11.21.87,64.11a288.589,288.589,0,0,1-65.84,9.49c-1.16.03-2.3.05-3.4.07-.39.01-.77.02-1.15.02-1.25.01-2.49.02-3.74.02a289.272,289.272,0,0,1-69.54-8.43c.49-16.13.98-44.46,1.45-65.28.1-4.07.19-7.86.29-11.21.19-7.16.39-12.32.58-14.05a4.36,4.36,0,0,0-.39.97,97.15,97. [...]
+ <circle id="Ellipse_409" data-name="Ellipse 409" cx="50.836" cy="50.836" r="50.836" transform="translate(1126.038 497.186)" fill="#ffb9b9"/>
+ <path id="Path_2199-370" data-name="Path 2199" d="M575.659,473.566l8.5-32.792,7.5,28.3Z" transform="translate(519.92 251.864)" opacity="0.2"/>
+ <path id="Path_2200-371" data-name="Path 2200" d="M961.689,614.064c-3.04,41.88.11,60.32-16.67,94.85a286.162,286.162,0,0,1-47.52,18.22q-2.55.72-5.11,1.4a288.585,288.585,0,0,1-65.84,9.49c-1.16.03-2.3.05-3.4.07-.39.01-.77.02-1.15.02-1.25.01-2.49.02-3.74.02a289.272,289.272,0,0,1-69.54-8.43q-3.42-.84-6.81-1.77a285.473,285.473,0,0,1-34.97-12.03q-9-3.75-17.68-8.09c-1.31-.66-2.62-1.32-3.91-2-6.63-11.66-10.4-25.84-10.48-42.88C679.459,633.574,951.549,588.744,961.689,614.064Z" transform="tran [...]
+ <path id="Path_2201-372" data-name="Path 2201" d="M961.681,621.236c.155-2.593.329-5.271.531-8.06-10.14-25.32-282.23,19.51-286.82,48.87.013,2.692.128,5.3.321,7.855C686.829,640.922,945.318,598.314,961.681,621.236Z" transform="translate(360 90)" opacity="0.2"/>
+ <path id="Path_2202-373" data-name="Path 2202" d="M668.1,616.039l22.334-11.167-18.611-50.251-4.9-25.342a19.161,19.161,0,0,0-31.282-10.907h0a19.161,19.161,0,0,0-2.493,26.518l18.207,22.759Z" transform="translate(370.081 118.444)" fill="#ffb9b9"/>
+ <path id="Path_2203-374" data-name="Path 2203" d="M690.436,595.567l-29.778,14.889,22.6,70.809a30.977,30.977,0,0,0,22.336,20.716h0a30.977,30.977,0,0,0,33.737-14.2L799.254,585.07a31.62,31.62,0,0,0-10.2-42.982h0a31.62,31.62,0,0,0-45.3,12.765L707.187,632.79Z" transform="translate(360 90)" fill="#2e8555"/>
+ <circle id="Ellipse_410" data-name="Ellipse 410" cx="55.935" cy="55.935" r="55.935" transform="translate(673.493 483.48)" fill="#ffb9b9"/>
+ <path id="Path_2204-375" data-name="Path 2204" d="M314.164,410.87c4.548-6.13,11.085-10.488,16.085-16.255,2.743-3.164,5.021-6.75,8.106-9.582,5.73-5.263,13.744-7.42,21.52-7.688a54.3,54.3,0,0,1,44.331,21.038l12.194-7.149,4.817,12.68a7.391,7.391,0,0,1,11.264,9.248c.967-2.989,5.4-3.623,7.842-1.649s3.1,5.488,2.7,8.6a17.32,17.32,0,0,1-13.065,14.326c-5.3,1.182-11.477-.06-15.723,3.332-3.4,2.72-4.431,7.672-7.9,10.3-4.28,3.24-10.329,1.742-15.65,2.458-9.308,1.253-16.678,10.773-15.56,20.1-.842- [...]
+ <path id="Path_2205-376" data-name="Path 2205" d="M880.582,486.046c10.642-24.4,4.613-46.85-8.36-58.76v-.01c-5.1-11.43-11.88-20.25-19.64-22.32-3.75-2.41-7.39-5.24-11.43-6.68a14.887,14.887,0,0,0-11.68.53l-2.06-.55c-4.551-.651-.111.381-6.08-1.62-8.78-4.09-16.69-5.92-23.73-5.92-22.96,0-36.54,19.44-40.14,42.94l19.19,5.11,6.67-10.63-3.08,11.59,10.59,2.81c16.12,20.99-3.17,69.41-27.62,96.35q8.73-2.415,17.39-4.08l20.98-30.76-13,28c6.75-.99,15.36-.04,24.77,1.87,3.17-4.14,4.84-9.66,3.2-14.58a [...]
+ <path id="Path_2206-377" data-name="Path 2206" d="M887.505,403.054c7.795,17.453-7.933,24.96-22.341,24.748-13.019-.192-24.084-9.338-24.748-22.341a23.576,23.576,0,0,1,22.341-24.748C875.76,380.048,882.2,391.166,887.505,403.054Z" transform="translate(360 90)" fill="#090814"/>
+ <path id="Path_2207-378" data-name="Path 2207" d="M526.5,693.633l-13.442-23.177,44.7-35.052,18.583-20.282A19.644,19.644,0,0,1,595.51,609.2,20.352,20.352,0,0,1,610.1,623.35h0c3.145,10.7-2.478,22.045-12.712,25.657L568.51,659.2Z" transform="translate(358.634 88.636)" fill="#ffb9b9"/>
+ <path id="Path_2208-379" data-name="Path 2208" d="M535.182,686.466l-19.99,16.66-5.39,4.49-.63.52q-2.085,1.035-4.2,2.04-6.33,3.015-12.82,5.73a285.491,285.491,0,0,1-34.97,12.03q-3.39.93-6.81,1.77c-1.39.34-2.79.68-4.19,1-.88.21-1.77.41-2.66.6-1.08.24-2.16.48-3.24.7q-1.7.36-3.39.69a30.963,30.963,0,0,1-9.62-22.44c0-.27,0-.55.01-.83l3.21-82.33,1.42-36.49a31.618,31.618,0,0,1,31.69-30.78c.96,0,1.91.05,2.85.14.68.88,1.31,1.79,1.92,2.71,1.66,2.46,3.9,6.35,6.54,11.23,1.09,2.01,2.24,4.19,3.45, [...]
+ <path id="Path_2209-380" data-name="Path 2209" d="M524.222,662.936c-.01,1.7-.05,3.37-.14,5.02a97.238,97.238,0,0,1-1.58,13.56,79.141,79.141,0,0,1-7.31,21.61c-.46.91-.95,1.81-1.45,2.69-1.29.68-2.6,1.34-3.91,2-.22.11-.44.22-.66.32q-8.355,4.155-17.02,7.77a285.491,285.491,0,0,1-34.97,12.03q-3.39.93-6.81,1.77-6.675,1.65-13.48,2.99a290.068,290.068,0,0,1-56.06,5.44c-1.25,0-2.49-.01-3.74-.02-.38,0-.76-.01-1.15-.02-1.1-.02-2.24-.04-3.4-.07a288.588,288.588,0,0,1-65.84-9.49q-2.565-.675-5.11-1. [...]
+ <path id="Path_2210-381" data-name="Path 2210" d="M237.408,621.236c-.155-2.593-.329-5.271-.531-8.06,10.14-25.32,282.23,19.51,286.82,48.87-.013,2.692-.128,5.3-.321,7.855C512.26,640.922,253.77,598.314,237.408,621.236Z" transform="translate(360 90)" opacity="0.2"/>
+ </g>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/img/index/undraw_spreadsheet.svg b/img/index/undraw_spreadsheet.svg
new file mode 100644
index 00000000..b7bc4ee6
--- /dev/null
+++ b/img/index/undraw_spreadsheet.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="840.77002" height="511.63" viewBox="0 0 840.77002 511.63" xmlns:xlink="http://www.w3.org/1999/xlink" role="img" artist="Katerina Limpitsouni" source="https://undraw.co/"><path d="M638.405,705.815c-.73-.79-1.46-1.58-2.17-2.38a122.82463,122.82463,0,0,1-16.39-22.95,97.25,97.25,0,0,1-10.22-28.63c-3.74-19.93-1.07-40.83,10.12-57.43q.41994-.63.87-1.26c.14.52.29,1.03.45,1.55a135.41037,135.41037,0,0,0,7.79,20.51c.23.52.48,1.03.74,1.54a142.15754,142.1 [...]
\ No newline at end of file
diff --git a/img/logo.svg b/img/logo.svg
new file mode 100644
index 00000000..a3de5966
--- /dev/null
+++ b/img/logo.svg
@@ -0,0 +1,36 @@
+<svg width="139" height="40" viewBox="0 0 139 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="Group 51">
+<g id="Union">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M26.0501 6.40647L22.7108 1.37247L14.8502 10.2688L17.9857 11.3837H20.4941L21.444 11.3837L26.0501 6.40647ZM60.2267 26.1755L57.4656 21.4217L59.043 15.9726L67.3517 10.5267L64.3066 5.64828L50.9216 21.3781L55.4215 21.9761L52.627 27.0829L56.5693 30.5607L60.2267 30.5607V26.1755ZM103.826 4.19486L106.776 8.64506L101.803 26.9968L75.4595 34.3257L72.4409 29.7855L103.826 4.19486ZM134.671 1.76463L137.622 6.21483L132.408 24.2217L126.211 30.2336L123.193 25 [...]
+<path d="M22.7108 1.37247L23.2606 1.00776L22.7855 0.291519L22.2164 0.93561L22.7108 1.37247ZM26.0501 6.40647L26.5343 6.85459L26.8866 6.47395L26.5999 6.04176L26.0501 6.40647ZM14.8502 10.2688L14.3557 9.83196L13.7094 10.5635L14.6291 10.8905L14.8502 10.2688ZM17.9857 11.3837L17.7647 12.0053L17.8719 12.0434H17.9857V11.3837ZM20.4941 11.3837L20.4941 10.7239H20.4941V11.3837ZM21.444 11.3837L21.444 12.0435L21.7324 12.0435L21.9282 11.8318L21.444 11.3837ZM57.4656 21.4217L56.8319 21.2383L56.7535 21.509 [...]
+</g>
+<g id="Group 48">
+<path id="Rectangle 4" d="M76.0534 34.4283L82.385 9.16285H106.675L100.344 34.4283H76.0534Z" fill="black" stroke="black" stroke-width="1.31954"/>
+<path id="E" d="M4.77891 29.9253L4.6775 30.5772H5.33726H11.006H11.6658L11.7672 29.9253L13.0677 21.5649H22.2569H22.9167L23.0181 20.913L23.7336 16.313L23.8351 15.6611H23.1753H13.986L14.3819 13.116H24.5213H25.181L25.2824 12.464L26.0175 7.73886L26.1189 7.08693H25.4591H15.3198H14.66H13.4883H12.8285H8.9913H8.33154L8.23012 7.73886L4.77891 29.9253Z" fill="black" stroke="black" stroke-width="1.31954"/>
+<path id="c" d="M100.935 29.8907L100.938 29.8927C102.256 30.6346 103.795 30.9998 105.538 30.9998C106.877 30.9998 108.13 30.7792 109.287 30.3229C110.455 29.8708 111.567 29.1967 112.624 28.3111L113.176 27.8481L112.772 27.3814L109.792 23.9392L109.371 23.4529L108.828 23.9709C108.527 24.2585 108.199 24.4729 107.843 24.6214C107.504 24.7623 107.081 24.8456 106.558 24.8456C106.076 24.8456 105.669 24.7368 105.323 24.5262C104.991 24.3115 104.735 24.0254 104.554 23.66C104.405 23.2937 104.36 22.8589 [...]
+<path id="x" d="M91.8963 30.3352L92.0365 30.66H92.4165H98.7502H99.9901L99.4555 29.6439L95.4929 22.1116L101.405 15.0712L102.259 14.0541H101.017H95.1263H94.7506L94.5092 14.3734L92.3983 17.1659L91.1802 14.3768L91.0393 14.0541H90.661H84.2955H83.0495L83.5914 15.0725L87.392 22.2138L81.0134 29.6358L80.1332 30.66H81.3957H87.2861H87.6514L87.8928 30.3541L90.4867 27.0686L91.8963 30.3352Z" fill="black" stroke="black" stroke-width="1.31954"/>
+<path id="e" d="M70.671 29.5842L70.671 29.5842L70.6778 29.588C72.0021 30.3089 73.5834 30.66 75.4018 30.66C76.8443 30.66 78.1915 30.4298 79.4342 29.9546C80.6978 29.4795 81.8218 28.7744 82.7965 27.8409L83.2759 27.3818L82.9059 26.9498L80.7085 24.3842L83.7621 24.3702L84.2751 24.3678L84.4759 23.8764C84.6533 23.4421 84.7867 23.0435 84.8681 22.6856C84.9667 22.3333 85.0425 21.989 85.0948 21.653C85.3412 20.0691 85.1905 18.6385 84.6239 17.3807C84.0847 16.1085 83.2002 15.1179 81.9826 14.4159C80.782 [...]
+<path id="Vector 19" d="M68.0441 28.2931L63.7236 22.2849L69.8752 26.7961L68.0441 28.2931Z" fill="black"/>
+<path id="e_2" d="M114.489 29.8289L114.489 29.829L114.496 29.8327C115.82 30.5536 117.401 30.9047 119.22 30.9047C120.662 30.9047 122.01 30.6745 123.252 30.1994C124.516 29.7242 125.64 29.0192 126.615 28.0856L127.094 27.6265L126.724 27.1945L124.527 24.6289L127.58 24.6149L128.093 24.6126L128.294 24.1211C128.471 23.6868 128.605 23.2883 128.686 22.9303C128.785 22.5781 128.861 22.2337 128.913 21.8977C129.159 20.3139 129.009 18.8833 128.442 17.6254C127.903 16.3532 127.018 15.3627 125.801 14.6606 [...]
+<path id="t" d="M58.747 31.2248L61.7644 11.9253H67.4354L64.4179 31.2248H58.747ZM56.7412 22.9885L57.3658 18.3042H70.0766L69.452 22.9885H56.7412Z" fill="black"/>
+<path id="s" d="M43.58 30.693L43.5836 30.694C44.5271 30.9594 45.5043 31.0925 46.5138 31.0925C48.5926 31.0925 50.4013 30.6334 51.8847 29.6478L51.8847 29.6478L51.8913 29.6433C53.4021 28.6181 54.3007 27.2138 54.5678 25.4963C54.7282 24.4652 54.6774 23.561 54.3585 22.8271C54.079 22.1371 53.6411 21.5794 53.0454 21.166C52.8137 20.9893 52.5723 20.8293 52.3212 20.6862L52.6337 20.4161L56.1461 17.3808L56.6276 16.9647L56.3242 16.5106C55.6594 15.5156 54.7017 14.784 53.4743 14.3095C52.2699 13.8219 50. [...]
+<path id="a" d="M23.3365 26.7678L23.3364 26.7678L23.338 26.7719C23.8237 28.06 24.62 29.0864 25.7247 29.838C26.8396 30.5966 28.1818 30.9692 29.7294 30.9692C30.7032 30.9692 31.7376 30.927 32.7447 30.5104C32.8871 30.4516 33.026 30.3869 33.1613 30.3175L33.1086 30.6563H33.7683H39.1837H39.8435L39.9449 30.0043L42.3252 14.7023L42.4266 14.0504H41.7668H36.3515H35.6917L35.6201 14.5104C35.4983 14.4439 35.3721 14.3815 35.2417 14.3233C34.4092 13.9294 33.4615 13.7374 32.4099 13.7374C30.864 13.7374 29.4 [...]
+<path id="l" d="M126.938 29.9178L126.837 30.5697H127.497H133.007H133.667L133.768 29.9178L137.317 7.10551L137.418 6.45359H136.759H131.248H130.588L130.487 7.10551L126.938 29.9178Z" fill="black" stroke="black" stroke-width="1.31954"/>
+</g>
+<g id="Group 47">
+<path id="Rectangle 4_2" d="M72.4563 29.0607L78.7878 3.7953H103.078L96.7465 29.0607H72.4563Z" fill="#79F427" stroke="black" stroke-width="1.31954"/>
+<path id="Rectangle 5" d="M77.3086 8.02875H86.9292L88.778 11.097L91.4152 8.02875H101.25V21.5989H77.3086V8.02875Z" fill="black"/>
+<path id="c_2" d="M97.3374 24.5231L97.341 24.5251C98.659 25.2671 100.197 25.6322 101.94 25.6322C103.279 25.6322 104.533 25.4117 105.69 24.9553C106.857 24.5033 107.97 23.8291 109.026 22.9435L109.579 22.4805L109.175 22.0138L106.195 18.5716L105.774 18.0854L105.231 18.6034C104.929 18.8909 104.602 19.1054 104.245 19.2538C103.906 19.3948 103.484 19.478 102.961 19.478C102.479 19.478 102.072 19.3692 101.726 19.1587C101.393 18.944 101.138 18.6578 100.956 18.2924C100.807 17.9262 100.763 17.4913 10 [...]
+<path id="x_2" d="M88.2986 24.9677L88.4388 25.2925H88.8188H95.1526H96.3924L95.8579 24.2763L91.8953 16.744L97.8074 9.70361L98.6615 8.68656H97.419H91.5286H91.1529L90.9115 9.00587L88.8006 11.7984L87.5826 9.0092L87.4417 8.68656H87.0633H80.6979H79.4518L79.9938 9.70492L83.7944 16.8463L77.4157 24.2683L76.5355 25.2925H77.7981H83.6885H84.0537L84.2952 24.9866L86.889 21.701L88.2986 24.9677Z" fill="white" stroke="black" stroke-width="1.31954"/>
+<path id="t_2" d="M53.5428 25.1124L53.4382 25.7812H54.1132H59.7841H60.429L60.5289 25.1422L61.7167 17.545H64.8181H65.4779L65.5651 16.891L66.1896 12.2067L66.2768 11.5527H65.6171H62.6536L63.5463 5.84277L63.6509 5.17391H62.976H57.305H56.6602L56.5602 5.81293L55.6628 11.5527H52.9064H52.2466L52.1594 12.2067L51.5349 16.891L51.4477 17.545H52.1074H54.7259L53.5428 25.1124Z" fill="white" stroke="black" stroke-width="1.31946"/>
+<path id="e_3" d="M67.362 24.7026L67.362 24.7026L67.3688 24.7063C68.664 25.4114 70.2101 25.7546 71.9874 25.7546C73.3973 25.7546 74.7147 25.5295 75.9302 25.0647C77.1662 24.6 78.2656 23.9103 79.2191 22.9972L79.6985 22.5381L79.3284 22.1061L77.2058 19.6276L80.1492 19.6142L80.6622 19.6118L80.863 19.1204C81.0364 18.6959 81.1669 18.3061 81.2466 17.9556C81.343 17.6113 81.4172 17.2746 81.4683 16.946C81.7092 15.3973 81.5619 13.998 81.0076 12.7673C80.4801 11.523 79.6148 10.5539 78.4239 9.86725C77.2 [...]
+<path id="e_4" d="M110.892 24.4614L110.892 24.4614L110.898 24.4651C112.223 25.1861 113.804 25.5372 115.622 25.5372C117.065 25.5372 118.412 25.307 119.655 24.8318C120.919 24.3567 122.042 23.6516 123.017 22.7181L123.497 22.259L123.127 21.827L120.929 19.2613L123.983 19.2474L124.496 19.245L124.697 18.7536C124.874 18.3192 125.007 17.9207 125.089 17.5628C125.187 17.2105 125.263 16.8662 125.316 16.5301C125.562 14.9463 125.411 13.5157 124.845 12.2578C124.305 10.9857 123.421 9.99511 122.203 9.293 [...]
+<path id="s_2" d="M39.9826 25.3254L39.9862 25.3264C40.9297 25.5918 41.9069 25.7249 42.9164 25.7249C44.9952 25.7249 46.8039 25.2659 48.2873 24.2802L48.2873 24.2803L48.2939 24.2758C49.8047 23.2505 50.7033 21.8462 50.9704 20.1288C51.1308 19.0977 51.08 18.1935 50.7611 17.4596C50.4816 16.7696 50.0437 16.2119 49.448 15.7984C49.2203 15.6248 48.9832 15.4673 48.7369 15.3261L49.057 15.0301L52.0926 12.2233L52.5417 11.8081L52.2501 11.3717C52.1644 11.2435 52.0798 11.1079 51.9928 10.9682C51.5316 10.22 [...]
+<path id="a_2" d="M19.7391 21.4002L19.739 21.4002L19.7406 21.4044C20.2263 22.6925 21.0226 23.7189 22.1273 24.4705C23.2422 25.229 24.5844 25.6016 26.132 25.6016C27.1862 25.6016 28.196 25.4087 29.1532 25.0128C29.2997 24.9522 29.4434 24.8881 29.584 24.8204L29.5111 25.2887H30.1709H35.5863H36.2461L36.3475 24.6368L38.7278 9.33474L38.8292 8.68282H38.1694H32.7541H32.0943L32.0227 9.14288C31.9009 9.07635 31.7747 9.01398 31.6443 8.95576C30.8118 8.56186 29.8641 8.36989 28.8125 8.36989C27.2665 8.3698 [...]
+<path id="l_2" d="M123.341 24.5502L123.24 25.2021H123.899H129.41H130.069L130.171 24.5502L133.719 1.73796L133.821 1.08603H133.161H127.651H126.991L126.89 1.73796L123.341 24.5502Z" fill="white" stroke="black" stroke-width="1.31954"/>
+<path id="F" d="M0.86303 24.6625L0.775838 25.3164H1.43557H7.30945H7.96918L8.05637 24.6625L9.11847 16.6967H18.7626H19.4224L19.5096 16.0428L20.1644 11.1312L20.2516 10.4772H19.5919H9.94773L10.3892 7.16626H20.5584H21.2181L21.3053 6.51232L21.9602 1.60072L22.0474 0.946782H21.3877H11.2185H10.5587H9.34458H8.68485H4.68485H4.02512L3.93793 1.60072L0.86303 24.6625Z" fill="white" stroke="black" stroke-width="1.31946"/>
+</g>
+<path id="Vector 18" d="M3.98817 31.1698L0.118164 25.9845L7.20055 25.7821L3.98817 31.1698Z" fill="black"/>
+<path id="Vector 11" d="M82.4462 33.8961H92.4155L82.4462 39.0752V33.8961Z" fill="black"/>
+</g>
+</svg>
diff --git a/index.html b/index.html
new file mode 100644
index 00000000..b8e82bda
--- /dev/null
+++ b/index.html
@@ -0,0 +1,16 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Fesod</title><meta data-rh="true" property="og:title" content="Fesod"><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache [...]
+<script src="/assets/js/runtime~main.cdb58fe4.js" defer="defer"></script>
+<script src="/assets/js/main.9880acfb.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
new file mode 100644
index 00000000..d6cb58e5
--- /dev/null
+++ b/sitemap.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://fesod.apache.org/community/bug-report/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://fesod.apache.org/community [...]
\ No newline at end of file
diff --git a/zh-cn/.nojekyll b/zh-cn/.nojekyll
new file mode 100644
index 00000000..e69de29b
diff --git a/zh-cn/404.html b/zh-cn/404.html
new file mode 100644
index 00000000..92b4903c
--- /dev/null
+++ b/zh-cn/404.html
@@ -0,0 +1,16 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="plugin-native plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">找不到页面 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/404.html/"><meta data-rh=" [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/assets/css/styles.bc7e7220.css b/zh-cn/assets/css/styles.bc7e7220.css
new file mode 100644
index 00000000..d39322a3
--- /dev/null
+++ b/zh-cn/assets/css/styles.bc7e7220.css
@@ -0,0 +1 @@
+@layer docusaurus.infima,docusaurus.theme-common,docusaurus.theme-classic,docusaurus.core,docusaurus.plugin-debug,docusaurus.theme-mermaid,docusaurus.theme-live-codeblock,docusaurus.theme-search-algolia.docsearch,docusaurus.theme-search-algolia;@layer docusaurus.infima{.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown [...]
\ No newline at end of file
diff --git a/zh-cn/assets/images/annotationStyleWrite-daf422cde61cef375e3a694c3c64a0cb.png b/zh-cn/assets/images/annotationStyleWrite-daf422cde61cef375e3a694c3c64a0cb.png
new file mode 100644
index 00000000..6aeb9fb5
Binary files /dev/null and b/zh-cn/assets/images/annotationStyleWrite-daf422cde61cef375e3a694c3c64a0cb.png differ
diff --git a/zh-cn/assets/images/commentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png b/zh-cn/assets/images/commentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png
new file mode 100644
index 00000000..9ffcb125
Binary files /dev/null and b/zh-cn/assets/images/commentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png differ
diff --git a/zh-cn/assets/images/complexFillWithTable_result-21cb25bd329df76baf680fd0f94ef43b.png b/zh-cn/assets/images/complexFillWithTable_result-21cb25bd329df76baf680fd0f94ef43b.png
new file mode 100644
index 00000000..dc27781a
Binary files /dev/null and b/zh-cn/assets/images/complexFillWithTable_result-21cb25bd329df76baf680fd0f94ef43b.png differ
diff --git a/zh-cn/assets/images/complexFill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png b/zh-cn/assets/images/complexFill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png
new file mode 100644
index 00000000..0a9d289b
Binary files /dev/null and b/zh-cn/assets/images/complexFill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png differ
diff --git a/zh-cn/assets/images/complexHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png b/zh-cn/assets/images/complexHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png
new file mode 100644
index 00000000..e52d0960
Binary files /dev/null and b/zh-cn/assets/images/complexHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png differ
diff --git a/zh-cn/assets/images/compositeFill_file-ba1c7222a9c310e389363a04777fa279.png b/zh-cn/assets/images/compositeFill_file-ba1c7222a9c310e389363a04777fa279.png
new file mode 100644
index 00000000..0e9f099f
Binary files /dev/null and b/zh-cn/assets/images/compositeFill_file-ba1c7222a9c310e389363a04777fa279.png differ
diff --git a/zh-cn/assets/images/compositeFill_result-94a945a637d60e2b0e8c055c83f92d8e.png b/zh-cn/assets/images/compositeFill_result-94a945a637d60e2b0e8c055c83f92d8e.png
new file mode 100644
index 00000000..316a0022
Binary files /dev/null and b/zh-cn/assets/images/compositeFill_result-94a945a637d60e2b0e8c055c83f92d8e.png differ
diff --git a/zh-cn/assets/images/converterWrite-3246357a06c3ba04afb519b820c19bb2.png b/zh-cn/assets/images/converterWrite-3246357a06c3ba04afb519b820c19bb2.png
new file mode 100644
index 00000000..90196e1a
Binary files /dev/null and b/zh-cn/assets/images/converterWrite-3246357a06c3ba04afb519b820c19bb2.png differ
diff --git a/zh-cn/assets/images/customHandlerWrite-c05ff79257df5ba72a311793a6e9db60.png b/zh-cn/assets/images/customHandlerWrite-c05ff79257df5ba72a311793a6e9db60.png
new file mode 100644
index 00000000..f263d02a
Binary files /dev/null and b/zh-cn/assets/images/customHandlerWrite-c05ff79257df5ba72a311793a6e9db60.png differ
diff --git a/zh-cn/assets/images/dynamicHeadWrite-b33468bf605a16abf195c740309137e3.png b/zh-cn/assets/images/dynamicHeadWrite-b33468bf605a16abf195c740309137e3.png
new file mode 100644
index 00000000..68430370
Binary files /dev/null and b/zh-cn/assets/images/dynamicHeadWrite-b33468bf605a16abf195c740309137e3.png differ
diff --git a/zh-cn/assets/images/excludeOrIncludeWrite-bea7b205e7748fd8b55311383c344df1.png b/zh-cn/assets/images/excludeOrIncludeWrite-bea7b205e7748fd8b55311383c344df1.png
new file mode 100644
index 00000000..8911e5fb
Binary files /dev/null and b/zh-cn/assets/images/excludeOrIncludeWrite-bea7b205e7748fd8b55311383c344df1.png differ
diff --git a/zh-cn/assets/images/handlerStyleWrite-082ae37a51bd9252f6900ab754387401.png b/zh-cn/assets/images/handlerStyleWrite-082ae37a51bd9252f6900ab754387401.png
new file mode 100644
index 00000000..7f6248f8
Binary files /dev/null and b/zh-cn/assets/images/handlerStyleWrite-082ae37a51bd9252f6900ab754387401.png differ
diff --git a/zh-cn/assets/images/horizontalFill_result-6c236308703bda3338b429425b18c2a4.png b/zh-cn/assets/images/horizontalFill_result-6c236308703bda3338b429425b18c2a4.png
new file mode 100644
index 00000000..e88053d0
Binary files /dev/null and b/zh-cn/assets/images/horizontalFill_result-6c236308703bda3338b429425b18c2a4.png differ
diff --git a/zh-cn/assets/images/imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png b/zh-cn/assets/images/imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png
new file mode 100644
index 00000000..9ad021d5
Binary files /dev/null and b/zh-cn/assets/images/imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png differ
diff --git a/zh-cn/assets/images/indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png b/zh-cn/assets/images/indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png
new file mode 100644
index 00000000..238d9db8
Binary files /dev/null and b/zh-cn/assets/images/indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png differ
diff --git a/zh-cn/assets/images/listFill_result-c126158195ba15c7ad37c143c1f2940b.png b/zh-cn/assets/images/listFill_result-c126158195ba15c7ad37c143c1f2940b.png
new file mode 100644
index 00000000..4cdd60d4
Binary files /dev/null and b/zh-cn/assets/images/listFill_result-c126158195ba15c7ad37c143c1f2940b.png differ
diff --git a/zh-cn/assets/images/mergeWrite-976e024ef4e1613c6dab373937cc56ff.png b/zh-cn/assets/images/mergeWrite-976e024ef4e1613c6dab373937cc56ff.png
new file mode 100644
index 00000000..0249c4f6
Binary files /dev/null and b/zh-cn/assets/images/mergeWrite-976e024ef4e1613c6dab373937cc56ff.png differ
diff --git a/zh-cn/assets/images/noModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png b/zh-cn/assets/images/noModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png
new file mode 100644
index 00000000..6a66c62d
Binary files /dev/null and b/zh-cn/assets/images/noModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png differ
diff --git a/zh-cn/assets/images/repeatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png b/zh-cn/assets/images/repeatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png
new file mode 100644
index 00000000..df324c96
Binary files /dev/null and b/zh-cn/assets/images/repeatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png differ
diff --git a/zh-cn/assets/images/tableWrite-1b3814878a3fc0ef244f767899675190.png b/zh-cn/assets/images/tableWrite-1b3814878a3fc0ef244f767899675190.png
new file mode 100644
index 00000000..e1b6f2a8
Binary files /dev/null and b/zh-cn/assets/images/tableWrite-1b3814878a3fc0ef244f767899675190.png differ
diff --git a/zh-cn/assets/images/wechat-public-d649d5c1c7820d27a8fbf279da1a9518.jpg b/zh-cn/assets/images/wechat-public-d649d5c1c7820d27a8fbf279da1a9518.jpg
new file mode 100644
index 00000000..52255238
Binary files /dev/null and b/zh-cn/assets/images/wechat-public-d649d5c1c7820d27a8fbf279da1a9518.jpg differ
diff --git a/zh-cn/assets/images/widthAndHeightWrite-77c049fb68d1ac806c1ba21e82c45f45.png b/zh-cn/assets/images/widthAndHeightWrite-77c049fb68d1ac806c1ba21e82c45f45.png
new file mode 100644
index 00000000..167b5511
Binary files /dev/null and b/zh-cn/assets/images/widthAndHeightWrite-77c049fb68d1ac806c1ba21e82c45f45.png differ
diff --git a/zh-cn/assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png b/zh-cn/assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png
new file mode 100644
index 00000000..54b2666f
Binary files /dev/null and b/zh-cn/assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png differ
diff --git a/zh-cn/assets/js/0e7f7048.91b77052.js b/zh-cn/assets/js/0e7f7048.91b77052.js
new file mode 100644
index 00000000..0cc6c051
--- /dev/null
+++ b/zh-cn/assets/js/0e7f7048.91b77052.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3060],{508:(e,n,t)=>{t.d(n,{R:()=>c,x:()=>s});var r=t(9729);const a={},i=r.createContext(a);function c(e){const n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:c(e.components),r.createElement(i.Provider,{value:n},e.children)}},2674:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/12751524.33ee73b8.js b/zh-cn/assets/js/12751524.33ee73b8.js
new file mode 100644
index 00000000..624d46de
--- /dev/null
+++ b/zh-cn/assets/js/12751524.33ee73b8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4610],{508:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>l});var r=t(9729);const i={},s=r.createContext(i);function a(e){const n=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),r.createElement(s.Provider,{value:n},e.children)}},1255:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/141.39d742dd.js b/zh-cn/assets/js/141.39d742dd.js
new file mode 100644
index 00000000..3dadcd5f
--- /dev/null
+++ b/zh-cn/assets/js/141.39d742dd.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[141],{141:(e,r,s)=>{s.d(r,{diagram:()=>i});var a=s(9076),t=(s(7055),s(8943),s(5458),s(6659),s(9142),s(9124),s(7440),s(5611),s(3637),s(2133),s(1808),s(7693),s(1595)),i={parser:a._$,get db(){return new a.NM},renderer:a.Lh,styles:a.tM,init:(0,t.K2)(e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/1562.1ea87018.js b/zh-cn/assets/js/1562.1ea87018.js
new file mode 100644
index 00000000..1d92dc66
--- /dev/null
+++ b/zh-cn/assets/js/1562.1ea87018.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1562],{1562:(e,t,s)=>{s.d(t,{diagram:()=>E});var i=s(8943),n=s(5458),r=s(6659),a=(s(9142),s(9124),s(7440),s(5611),s(3637),s(2133),s(1808)),l=s(7693),c=s(1595),o=function(){var e=(0,c.K2)(function(e,t,s,i){for(s=s||{},i=e.length;i--;s[e[i]]=t);return s},"o"),t=[1,3],s=[1,4],i=[1,5],n=[1,6],r=[5,6,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],a=[1,22],l=[2,7],o=[1,26],h=[1,27],u=[1,28],y=[1,29],m=[1,33 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/162d40fa.3db55775.js b/zh-cn/assets/js/162d40fa.3db55775.js
new file mode 100644
index 00000000..33219286
--- /dev/null
+++ b/zh-cn/assets/js/162d40fa.3db55775.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1807],{508:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>s});var a=t(9729);const r={},l=a.createContext(r);function i(e){const n=a.useContext(l);return a.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),a.createElement(l.Provider,{value:n},e.children)}},9966:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1706.fbda918c.js b/zh-cn/assets/js/1706.fbda918c.js
new file mode 100644
index 00000000..5fdfe416
--- /dev/null
+++ b/zh-cn/assets/js/1706.fbda918c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1706],{1706:(t,n,e)=>{e.d(n,{diagram:()=>ct});var i=e(7693),s=e(1595),r=e(3170);function o(t,n){let e;if(void 0===n)for(const i of t)null!=i&&(e>i||void 0===e&&i>=i)&&(e=i);else{let i=-1;for(let s of t)null!=(s=n(s,++i,t))&&(e>s||void 0===e&&s>=s)&&(e=s)}return e}function c(t){return t.target.depth}function l(t,n){return t.sourceLinks.length?t.depth:n-1}function a(t,n){let e=0;if(void 0===n)for(let i of t)(i=+i)& [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1726.60d074ab.js b/zh-cn/assets/js/1726.60d074ab.js
new file mode 100644
index 00000000..7ceadfba
--- /dev/null
+++ b/zh-cn/assets/js/1726.60d074ab.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1726],{1726:(e,t,i)=>{i.r(t),i.d(t,{default:()=>h});i(9729);var n=i(7268),s=i(5327),o=i(242),r=i(2432),a=i(5813);function h(){const e=(0,n.T)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(s.be,{title:e}),(0,a.jsx)(o.A,{children:(0,a.jsx)(r.A,{})})]})}},2432:(e,t,i)=>{i.d(t,{A:()=>a});i(9729);var n=i(3526),s=i(7268),o=i(1954),r=i(5813);function a({className: [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/17896441.72a406a8.js b/zh-cn/assets/js/17896441.72a406a8.js
new file mode 100644
index 00000000..da30907c
--- /dev/null
+++ b/zh-cn/assets/js/17896441.72a406a8.js
@@ -0,0 +1,2 @@
+/*! For license information please see 17896441.72a406a8.js.LICENSE.txt */
+(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8401],{130:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var n=r(6727),i="object"==typeof exports&&exports&&!exports.nodeType&&exports,a=i&&"object"==typeof module&&module&&!module.nodeType&&module,o=a&&a.exports===i&&n.A.process;const s=function(){try{var t=a&&a.require&&a.require("util").types;return t||o&&o.binding&&o.binding("util")}catch(e){}}()},150:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});const n=function(t,e){return function [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/17896441.72a406a8.js.LICENSE.txt b/zh-cn/assets/js/17896441.72a406a8.js.LICENSE.txt
new file mode 100644
index 00000000..3c2b5001
--- /dev/null
+++ b/zh-cn/assets/js/17896441.72a406a8.js.LICENSE.txt
@@ -0,0 +1 @@
+/*! @license DOMPurify 3.2.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.7/LICENSE */
diff --git a/zh-cn/assets/js/1874.d9c6043a.js b/zh-cn/assets/js/1874.d9c6043a.js
new file mode 100644
index 00000000..8228b0a6
--- /dev/null
+++ b/zh-cn/assets/js/1874.d9c6043a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1874],{171:(t,n,r)=>{r.d(n,{A:()=>s});var e=r(6691),o=r(9532),c=r(3924),u=r(9584),a=r(256),i=r(6687),f=r(2916);const A=a.A&&1/(0,f.A)(new a.A([,-0]))[1]==1/0?function(t){return new a.A(t)}:i.A;const s=function(t,n,r){var a=-1,i=o.A,s=t.length,v=!0,l=[],b=l;if(r)v=!1,i=c.A;else if(s>=200){var d=n?null:A(t);if(d)return(0,f.A)(d);v=!1,i=u.A,b=new e.A}else b=n?[]:l;t:for(;++a<s;){var j=t[a],p=n?n(j):j;if(j=r||0!==j?j [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1ba16981.db7a822a.js b/zh-cn/assets/js/1ba16981.db7a822a.js
new file mode 100644
index 00000000..8f666dd2
--- /dev/null
+++ b/zh-cn/assets/js/1ba16981.db7a822a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3498],{508:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>l});var d=t(9729);const r={},c=d.createContext(r);function s(e){const n=d.useContext(c);return d.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),d.createElement(c.Provider,{value:n},e.children)}},3619:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1d61c132.9c807cab.js b/zh-cn/assets/js/1d61c132.9c807cab.js
new file mode 100644
index 00000000..362bada2
--- /dev/null
+++ b/zh-cn/assets/js/1d61c132.9c807cab.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[608],{3080:e=>{e.exports=JSON.parse('{"version":{"pluginId":"community","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"community":[{"type":"link","href":"/zh-cn/community/contact","label":"\u4ea4\u6d41\u8054\u7cfb","docId":"contact","unlisted":false},{"type":"link","href":"/zh-cn/community/bug-report","label":"\u53cd [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/23f7ca76.96017605.js b/zh-cn/assets/js/23f7ca76.96017605.js
new file mode 100644
index 00000000..94c02727
--- /dev/null
+++ b/zh-cn/assets/js/23f7ca76.96017605.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[240],{508:(e,n,t)=>{t.d(n,{R:()=>l,x:()=>r});var a=t(9729);const s={},i=a.createContext(s);function l(e){const n=a.useContext(i);return a.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),a.createElement(i.Provider,{value:n},e.children)}},3791:(e,n,t)=>{t.r(n),t. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/2774.d7f551ed.js b/zh-cn/assets/js/2774.d7f551ed.js
new file mode 100644
index 00000000..be0c800d
--- /dev/null
+++ b/zh-cn/assets/js/2774.d7f551ed.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2774],{2774:(t,e,a)=>{a.d(e,{diagram:()=>z});var r=a(7348),n=a(5849),i=a(1808),s=a(7693),o=a(1595),l=a(7370),c={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},d={axes:[],curves:[],options:c},g=structuredClone(d),u=s.UI.radar,h=(0,o.K2)(()=>(0,i.$t)({...u,...(0,s.zj)().radar}),"getConfig"),p=(0,o.K2)(()=>g.axes,"getAxes"),x=(0,o.K2)(()=>g.curves,"getCurves"),m=(0,o.K2)(()=>g.options,"getOptions"),$=(0,o. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/2810e9cc.e43acbce.js b/zh-cn/assets/js/2810e9cc.e43acbce.js
new file mode 100644
index 00000000..a1bd8b70
--- /dev/null
+++ b/zh-cn/assets/js/2810e9cc.e43acbce.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[506],{508:(e,n,l)=>{l.d(n,{R:()=>r,x:()=>d});var i=l(9729);const t={},s=i.createContext(t);function r(e){const n=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(s.Provider,{value:n},e.children)}},3113:(e,n,l)=>{l.r(n),l. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/2903.0dccbc71.js b/zh-cn/assets/js/2903.0dccbc71.js
new file mode 100644
index 00000000..c0f9ffaa
--- /dev/null
+++ b/zh-cn/assets/js/2903.0dccbc71.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2903],{2903:(t,e,a)=>{a.d(e,{diagram:()=>Pt});var n=a(3369),i=a(1808),r=a(7693),s=a(1595),l=a(3170),o=a(1407),h=function(){var t=(0,s.K2)(function(t,e,a,n){for(a=a||{},n=t.length;n--;a[t[n]]=e);return a},"o"),e=[1,24],a=[1,25],n=[1,26],i=[1,27],r=[1,28],l=[1,63],o=[1,64],h=[1,65],d=[1,66],u=[1,67],p=[1,68],y=[1,69],g=[1,29],f=[1,30],b=[1,31],x=[1,32],_=[1,33],m=[1,34],E=[1,35],S=[1,36],A=[1,37],C=[1,38],w=[1,39], [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/2fc01e78.2815a4f7.js b/zh-cn/assets/js/2fc01e78.2815a4f7.js
new file mode 100644
index 00000000..29cd04bb
--- /dev/null
+++ b/zh-cn/assets/js/2fc01e78.2815a4f7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5681],{508:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>c});var r=n(9729);const i={},s=r.createContext(i);function a(e){const t=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),r.createElement(s.Provider,{value:t},e.children)}},3635:(e,t,n)=>{n.r(t),n [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/344239d7.582235f0.js b/zh-cn/assets/js/344239d7.582235f0.js
new file mode 100644
index 00000000..28b41599
--- /dev/null
+++ b/zh-cn/assets/js/344239d7.582235f0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3763],{508:(e,n,a)=>{a.d(n,{R:()=>s,x:()=>d});var l=a(9729);const i={},t=l.createContext(i);function s(e){const n=l.useContext(t);return l.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),l.createElement(t.Provider,{value:n},e.children)}},1467:(e,n,a)=>{a.r(n),a [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/3497.b684f39c.js b/zh-cn/assets/js/3497.b684f39c.js
new file mode 100644
index 00000000..a7079e98
--- /dev/null
+++ b/zh-cn/assets/js/3497.b684f39c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3497],{3497:(t,e,n)=>{n.d(e,{diagram:()=>Y});var i=n(7693),s=n(1595),r=n(3170),a=n(3212),o=n(8480),c=n(1896),l=function(){var t=(0,s.K2)(function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},"o"),e=[6,8,10,11,12,14,16,17,20,21],n=[1,9],i=[1,10],r=[1,11],a=[1,12],o=[1,13],c=[1,16],l=[1,17],h={trace:(0,s.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/3582.71d1712e.js b/zh-cn/assets/js/3582.71d1712e.js
new file mode 100644
index 00000000..1673593e
--- /dev/null
+++ b/zh-cn/assets/js/3582.71d1712e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3582],{3369:(t,e,a)=>{a.d(e,{CP:()=>h,HT:()=>p,PB:()=>d,aC:()=>l,lC:()=>o,m:()=>c,tk:()=>n});var r=a(7693),s=a(1595),i=a(1407),n=(0,s.K2)((t,e)=>{const a=t.append("rect");if(a.attr("x",e.x),a.attr("y",e.y),a.attr("fill",e.fill),a.attr("stroke",e.stroke),a.attr("width",e.width),a.attr("height",e.height),e.name&&a.attr("name",e.name),e.rx&&a.attr("rx",e.rx),e.ry&&a.attr("ry",e.ry),void 0!==e.attrs)for(const r in e. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/3981.ae44cea0.js b/zh-cn/assets/js/3981.ae44cea0.js
new file mode 100644
index 00000000..75ec1b08
--- /dev/null
+++ b/zh-cn/assets/js/3981.ae44cea0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3981],{3981:(e,s,a)=>{a.d(s,{createRadarServices:()=>c.f});var c=a(4289);a(4214)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/3adce689.62b13e5d.js b/zh-cn/assets/js/3adce689.62b13e5d.js
new file mode 100644
index 00000000..dcc74d09
--- /dev/null
+++ b/zh-cn/assets/js/3adce689.62b13e5d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2996],{427:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/complexHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png"},508:(e,n,t)=>{t.d(n,{R:()=>l,x:()=>a});var i=t(9729);const s={},r=i.createContext(s);function l(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.compon [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/4051.86786135.js b/zh-cn/assets/js/4051.86786135.js
new file mode 100644
index 00000000..a8e4e44d
--- /dev/null
+++ b/zh-cn/assets/js/4051.86786135.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4051],{4051:(e,s,t)=>{t.d(s,{createGitGraphServices:()=>a.b});var a=t(6426);t(4214)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/4249.9799276f.js b/zh-cn/assets/js/4249.9799276f.js
new file mode 100644
index 00000000..cd5532c2
--- /dev/null
+++ b/zh-cn/assets/js/4249.9799276f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4249],{4249:(e,s,a)=>{a.d(s,{createTreemapServices:()=>c.d});var c=a(8047);a(4214)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/4273.e570c98a.js b/zh-cn/assets/js/4273.e570c98a.js
new file mode 100644
index 00000000..09c5f86a
--- /dev/null
+++ b/zh-cn/assets/js/4273.e570c98a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4273],{4273:(t,e,i)=>{i.d(e,{diagram:()=>I});var a=i(7693),n=i(1595),s=i(3170),r=function(){var t=(0,n.K2)(function(t,e,i,a){for(i=i||{},a=t.length;a--;i[t[a]]=e);return i},"o"),e=[1,3],i=[1,4],a=[1,5],s=[1,6],r=[1,7],o=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],l=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],h=[55,56,57], [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/4326.4529f1bb.js b/zh-cn/assets/js/4326.4529f1bb.js
new file mode 100644
index 00000000..944a07bc
--- /dev/null
+++ b/zh-cn/assets/js/4326.4529f1bb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4326],{129:(e,n,t)=>{t.d(n,{A:()=>o});var r=t(9759);const o=function(e){return(null==e?0:e.length)?(0,r.A)(e,1):[]}},586:(e,n,t)=>{t.d(n,{A:()=>u});var r=t(565),o=t(3145),i=t(7427);const u=function(e){return"string"==typeof e||!(0,o.A)(e)&&(0,i.A)(e)&&"[object String]"==(0,r.A)(e)}},1066:(e,n,t)=>{t.d(n,{A:()=>o});var r=t(7001);const o=function(e){var n=(0,r.A)(e),t=n%1;return n==n?t?n-t:n:0}},1159:(e,n,t)=>{t.d( [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/4422.7ee629cf.js b/zh-cn/assets/js/4422.7ee629cf.js
new file mode 100644
index 00000000..c7a0a213
--- /dev/null
+++ b/zh-cn/assets/js/4422.7ee629cf.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4422],{4422:(e,t,a)=>{a.d(t,{diagram:()=>C});var i=a(7348),l=a(5849),n=a(1808),r=a(7693),s=a(1595),o=a(7370),c=a(3170),p=r.UI.pie,d={sections:new Map,showData:!1,config:p},u=d.sections,g=d.showData,h=structuredClone(p),f=(0,s.K2)(()=>structuredClone(h),"getConfig"),m=(0,s.K2)(()=>{u=new Map,g=d.showData,(0,r.IU)()},"clear"),w=(0,s.K2)(({label:e,value:t})=>{if(t<0)throw new Error(`"${e}" has invalid value: ${t}. N [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/45.8be39409.js b/zh-cn/assets/js/45.8be39409.js
new file mode 100644
index 00000000..4d6917e1
--- /dev/null
+++ b/zh-cn/assets/js/45.8be39409.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[45],{2426:(e,s,c)=>{c.d(s,{createArchitectureServices:()=>t.S});var t=c(1544);c(4214)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/4546.c9018ea7.js b/zh-cn/assets/js/4546.c9018ea7.js
new file mode 100644
index 00000000..790cc6e1
--- /dev/null
+++ b/zh-cn/assets/js/4546.c9018ea7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4546],{124:(t,e,s)=>{s.d(e,{A:()=>r});var i=s(6554),n=s(7766);const r=(t,e)=>i.A.lang.round(n.A.parse(t)[e])},4546:(t,e,s)=>{s.d(e,{diagram:()=>f});var i=s(8943),n=s(5458),r=s(6659),a=(s(9142),s(9124),s(7440),s(5611),s(3637),s(2133),s(1808)),c=s(7693),o=s(1595),l=s(3170),h=s(941),u=s(124),y=function(){var t=(0,o.K2)(function(t,e,s,i){for(s=s||{},i=t.length;i--;s[t[i]]=e);return s},"o"),e=[6,8,10,22,24,26,28,33,34 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/46d6cbfe.8c5eb8eb.js b/zh-cn/assets/js/46d6cbfe.8c5eb8eb.js
new file mode 100644
index 00000000..655e4688
--- /dev/null
+++ b/zh-cn/assets/js/46d6cbfe.8c5eb8eb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6607],{508:(e,n,t)=>{t.d(n,{R:()=>c,x:()=>i});var s=t(9729);const l={},r=s.createContext(l);function c(e){const n=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:c(e.components),s.createElement(r.Provider,{value:n},e.children)}},6593:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/4739.5ae6df50.js b/zh-cn/assets/js/4739.5ae6df50.js
new file mode 100644
index 00000000..18df0a2a
--- /dev/null
+++ b/zh-cn/assets/js/4739.5ae6df50.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4739],{4739:(e,t,a)=>{a.d(t,{diagram:()=>v});var l=a(7348),s=a(5458),r=a(3637),n=a(5849),i=a(1808),o=a(7693),c=a(1595),d=a(7370),p=a(3170),h=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=o.SV,this.getAccTitle=o.iN,this.setDiagramTitle=o.ke,this.getDiagramTitle=o.ab,this.getAccDescription=o.m7,this.setAccDescription=o.EI}static{(0,c.K2)(this,"TreeMap [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/4ccddeda.b11e1f12.js b/zh-cn/assets/js/4ccddeda.b11e1f12.js
new file mode 100644
index 00000000..619ef592
--- /dev/null
+++ b/zh-cn/assets/js/4ccddeda.b11e1f12.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8553],{508:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>c});var t=s(9729);const l={},d=t.createContext(l);function r(e){const n=t.useContext(d);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:r(e.components),t.createElement(d.Provider,{value:n},e.children)}},4917:(e,n,s)=>{s.r(n),s [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5373.7c701c42.js b/zh-cn/assets/js/5373.7c701c42.js
new file mode 100644
index 00000000..85b4d2f9
--- /dev/null
+++ b/zh-cn/assets/js/5373.7c701c42.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5373],{4812:(t,r,e)=>{e.d(r,{m:()=>o});var n=e(1595),o=class{constructor(t){this.init=t,this.records=this.init()}static{(0,n.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},5373:(t,r,e)=>{e.d(r,{diagram:()=>ut});var n=e(5849),o=e(4812),a=e(1808),c=e(7693),s=e(1595),i=e(7370),h=e(3170),d={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},m=c.UI.gitGraph,$=(0,s.K2)(()=>(0,a.$t)({...m,...(0,c.zj) [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5438.25d23f12.js b/zh-cn/assets/js/5438.25d23f12.js
new file mode 100644
index 00000000..72844e16
--- /dev/null
+++ b/zh-cn/assets/js/5438.25d23f12.js
@@ -0,0 +1 @@
+(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5438],{26:function(t,e,i){var r;r=function(t){return function(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.i=function(t){return t},i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){re [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5739.e4d0f187.js b/zh-cn/assets/js/5739.e4d0f187.js
new file mode 100644
index 00000000..84f2f9ce
--- /dev/null
+++ b/zh-cn/assets/js/5739.e4d0f187.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5739],{5739:(t,e,n)=>{n.d(e,{diagram:()=>I});var i=n(7348),s=n(7055),r=n(3767),o=n(7440),a=(n(5611),n(3637),n(2133),n(1808),n(7693)),c=n(1595),l=n(3212),h=n(8480),u=n(1896),g=function(){var t=(0,c.K2)(function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},"o"),e=[1,4],n=[1,13],i=[1,12],s=[1,15],r=[1,16],o=[1,20],a=[1,19],l=[6,7,8],h=[1,26],u=[1,24],g=[1,25],d=[6,7,11],p=[1,31],y=[6,7,11,24],f=[1,6,13,1 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5789.bea20fd6.js b/zh-cn/assets/js/5789.bea20fd6.js
new file mode 100644
index 00000000..af41fa53
--- /dev/null
+++ b/zh-cn/assets/js/5789.bea20fd6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5789],{124:(t,e,s)=>{s.d(e,{A:()=>r});var i=s(6554),n=s(7766);const r=(t,e)=>i.A.lang.round(n.A.parse(t)[e])},5458:(t,e,s)=>{s.d(e,{P:()=>r});var i=s(7693),n=s(1595),r=(0,n.K2)((t,e,s,r)=>{t.attr("class",s);const{width:o,height:l,x:c,y:h}=a(t,e);(0,i.a$)(t,l,o,r);const d=u(c,h,o,l,e);t.attr("viewBox",d),n.Rm.debug(`viewBox configured: ${d} with padding: ${e}`)},"setupViewPortForSVG"),a=(0,n.K2)((t,e)=>{const s=t. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5e95c892.6659c2ff.js b/zh-cn/assets/js/5e95c892.6659c2ff.js
new file mode 100644
index 00000000..2fe1b822
--- /dev/null
+++ b/zh-cn/assets/js/5e95c892.6659c2ff.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9647],{6606:(e,s,r)=>{r.r(s),r.d(s,{default:()=>l});r(9729);var t=r(3526),u=r(972),a=r(5327),c=r(6149),n=r(242),i=r(5813);function l(e){return(0,i.jsx)(a.e3,{className:(0,t.A)(u.G.wrapper.docsPages),children:(0,i.jsx)(n.A,{children:(0,c.v)(e.route.routes)})})}}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/6077.4f146110.js b/zh-cn/assets/js/6077.4f146110.js
new file mode 100644
index 00000000..c6d46e84
--- /dev/null
+++ b/zh-cn/assets/js/6077.4f146110.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6077],{5458:(t,e,n)=>{n.d(e,{P:()=>r});var i=n(7693),s=n(1595),r=(0,s.K2)((t,e,n,r)=>{t.attr("class",n);const{width:c,height:h,x:l,y:d}=o(t,e);(0,i.a$)(t,h,c,r);const g=a(l,d,c,h,e);t.attr("viewBox",g),s.Rm.debug(`viewBox configured: ${g} with padding: ${e}`)},"setupViewPortForSVG"),o=(0,s.K2)((t,e)=>{const n=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:n.width+2*e,height:n.height+2*e,x:n.x,y:n.y} [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/6261.7a2de081.js b/zh-cn/assets/js/6261.7a2de081.js
new file mode 100644
index 00000000..897f7f9a
--- /dev/null
+++ b/zh-cn/assets/js/6261.7a2de081.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6261],{5849:(t,e,a)=>{function r(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}a.d(e,{S:()=>r}),(0,a(1595).K2)(r,"populateCommonDb")},6261:(t,e,a)=>{a.d(e,{diagram:()=>m});var r=a(7348),i=a(5849),s=a(1808),n=a(7693),o=a(1595),l=a(7370),c=n.UI.packet,d=class{constructor(){this.packet=[],this.setAccTitle=n.SV,this.getAccTitle=n.iN,th [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/6282.ea12f5ce.js b/zh-cn/assets/js/6282.ea12f5ce.js
new file mode 100644
index 00000000..64921735
--- /dev/null
+++ b/zh-cn/assets/js/6282.ea12f5ce.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6282],{3369:(t,e,n)=>{n.d(e,{CP:()=>h,HT:()=>y,PB:()=>u,aC:()=>c,lC:()=>o,m:()=>l,tk:()=>a});var i=n(7693),s=n(1595),r=n(1407),a=(0,s.K2)((t,e)=>{const n=t.append("rect");if(n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),e.name&&n.attr("name",e.name),e.rx&&n.attr("rx",e.rx),e.ry&&n.attr("ry",e.ry),void 0!==e.attrs)for(const i in e. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/638.4e38c366.js b/zh-cn/assets/js/638.4e38c366.js
new file mode 100644
index 00000000..2117a093
--- /dev/null
+++ b/zh-cn/assets/js/638.4e38c366.js
@@ -0,0 +1,2 @@
+/*! For license information please see 638.4e38c366.js.LICENSE.txt */
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[638],{638:(e,t,n)=>{function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t,n){return t&&function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,c(r.key),r)}}(e.pr [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/638.4e38c366.js.LICENSE.txt b/zh-cn/assets/js/638.4e38c366.js.LICENSE.txt
new file mode 100644
index 00000000..a9f6f124
--- /dev/null
+++ b/zh-cn/assets/js/638.4e38c366.js.LICENSE.txt
@@ -0,0 +1,9 @@
+/*!
+Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable
+Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)
+Licensed under The MIT License (http://opensource.org/licenses/MIT)
+*/
+
+/*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */
+
+/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */
diff --git a/zh-cn/assets/js/6404.f171f043.js b/zh-cn/assets/js/6404.f171f043.js
new file mode 100644
index 00000000..9b23d8da
--- /dev/null
+++ b/zh-cn/assets/js/6404.f171f043.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6404],{6404:(e,r,s)=>{s.d(r,{diagram:()=>i});var a=s(9076),t=(s(7055),s(8943),s(5458),s(6659),s(9142),s(9124),s(7440),s(5611),s(3637),s(2133),s(1808),s(7693),s(1595)),i={parser:a._$,get db(){return new a.NM},renderer:a.Lh,styles:a.tM,init:(0,t.K2)(e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/6771.1772a75c.js b/zh-cn/assets/js/6771.1772a75c.js
new file mode 100644
index 00000000..02c43743
--- /dev/null
+++ b/zh-cn/assets/js/6771.1772a75c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6771],{6771:(e,s,c)=>{c.d(s,{createPacketServices:()=>t.$});var t=c(5450);c(4214)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/6c661db7.3091bbea.js b/zh-cn/assets/js/6c661db7.3091bbea.js
new file mode 100644
index 00000000..3c06deb3
--- /dev/null
+++ b/zh-cn/assets/js/6c661db7.3091bbea.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[144],{508:(e,n,l)=>{l.d(n,{R:()=>d,x:()=>c});var s=l(9729);const r={},i=s.createContext(r);function d(e){const n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),s.createElement(i.Provider,{value:n},e.children)}},2297:(e,n,l)=>{l.r(n),l. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/6f28ad3d.92801852.js b/zh-cn/assets/js/6f28ad3d.92801852.js
new file mode 100644
index 00000000..fd008508
--- /dev/null
+++ b/zh-cn/assets/js/6f28ad3d.92801852.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[407],{508:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>h});var s=n(9729);const d={},l=s.createContext(d);function a(e){const t=s.useContext(l);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function h(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:a(e.components),s.createElement(l.Provider,{value:t},e.children)}},6240:(e,t,n)=>{n.r(t),n. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7370.b9ef7192.js b/zh-cn/assets/js/7370.b9ef7192.js
new file mode 100644
index 00000000..4d6a76cd
--- /dev/null
+++ b/zh-cn/assets/js/7370.b9ef7192.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7370],{129:(e,t,n)=>{n.d(t,{A:()=>i});var r=n(9759);const i=function(e){return(null==e?0:e.length)?(0,r.A)(e,1):[]}},202:(e,t,n)=>{t.Qi=t.XO=void 0;const r=n(406),i=n(8137),s=n(436);var a;!function(e){e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:s.Event.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:s.Event.None}),e.is=function(t){const n=t;return [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7386.6f41cd6b.js b/zh-cn/assets/js/7386.6f41cd6b.js
new file mode 100644
index 00000000..6783217f
--- /dev/null
+++ b/zh-cn/assets/js/7386.6f41cd6b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7386],{5458:(t,e,s)=>{s.d(e,{P:()=>r});var i=s(7693),n=s(1595),r=(0,n.K2)((t,e,s,r)=>{t.attr("class",s);const{width:c,height:l,x:h,y:d}=o(t,e);(0,i.a$)(t,l,c,r);const u=a(h,d,c,l,e);t.attr("viewBox",u),n.Rm.debug(`viewBox configured: ${u} with padding: ${e}`)},"setupViewPortForSVG"),o=(0,n.K2)((t,e)=>{const s=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*e,height:s.height+2*e,x:s.x,y:s.y} [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7575123d.b0caef6b.js b/zh-cn/assets/js/7575123d.b0caef6b.js
new file mode 100644
index 00000000..3633eb8b
--- /dev/null
+++ b/zh-cn/assets/js/7575123d.b0caef6b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7487],{508:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>d});var t=i(9729);const l={},s=t.createContext(l);function r(e){const n=t.useContext(s);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:r(e.components),t.createElement(s.Provider,{value:n},e.children)}},824:(e,n,i)=>{i.r(n),i. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/76ebeaa2.a22b5846.js b/zh-cn/assets/js/76ebeaa2.a22b5846.js
new file mode 100644
index 00000000..e8adc140
--- /dev/null
+++ b/zh-cn/assets/js/76ebeaa2.a22b5846.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4974],{508:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>c});var i=n(9729);const a={},r=i.createContext(a);function s(e){const t=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),i.createElement(r.Provider,{value:t},e.children)}},5509:(e,t,n)=>{n.r(t),n [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7bacda60.9dfa967d.js b/zh-cn/assets/js/7bacda60.9dfa967d.js
new file mode 100644
index 00000000..c9ebf57d
--- /dev/null
+++ b/zh-cn/assets/js/7bacda60.9dfa967d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6815],{508:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>c});var a=n(9729);const i={},s=a.createContext(i);function r(e){const t=a.useContext(s);return a.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),a.createElement(s.Provider,{value:t},e.children)}},7689:(e,t,n)=>{n.r(t),n [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7c8dfedd.1ca2ad6c.js b/zh-cn/assets/js/7c8dfedd.1ca2ad6c.js
new file mode 100644
index 00000000..d8bcb6fa
--- /dev/null
+++ b/zh-cn/assets/js/7c8dfedd.1ca2ad6c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7418],{508:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>i});var d=t(9729);const s={},c=d.createContext(s);function r(e){const n=d.useContext(c);return d.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),d.createElement(c.Provider,{value:n},e.children)}},4068:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7e8c4ece.853f495c.js b/zh-cn/assets/js/7e8c4ece.853f495c.js
new file mode 100644
index 00000000..67b67717
--- /dev/null
+++ b/zh-cn/assets/js/7e8c4ece.853f495c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5173],{508:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>o});var c=n(9729);const s={},i=c.createContext(s);function r(e){const t=c.useContext(i);return c.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),c.createElement(i.Provider,{value:t},e.children)}},1980:(e,t,n)=>{n.r(t),n [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7ed646c5.db6f2288.js b/zh-cn/assets/js/7ed646c5.db6f2288.js
new file mode 100644
index 00000000..fea3e75a
--- /dev/null
+++ b/zh-cn/assets/js/7ed646c5.db6f2288.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3059],{18:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png"},508:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>s});var i=t(9729);const l={},a=i.createContext(l);function r(e){const n=i.useContext(a);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.compo [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/8055.3e320c96.js b/zh-cn/assets/js/8055.3e320c96.js
new file mode 100644
index 00000000..2c1c6012
--- /dev/null
+++ b/zh-cn/assets/js/8055.3e320c96.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8055],{8055:(e,s,c)=>{c.d(s,{createInfoServices:()=>t.v});var t=c(4555);c(4214)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/8169.efa741e1.js b/zh-cn/assets/js/8169.efa741e1.js
new file mode 100644
index 00000000..79a2034e
--- /dev/null
+++ b/zh-cn/assets/js/8169.efa741e1.js
@@ -0,0 +1 @@
+(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8169],{3798:function(t){t.exports=function(){"use strict";var t="day";return function(e,n,i){var s=function(e){return e.add(4-e.isoWeekday(),t)},r=n.prototype;r.isoWeekYear=function(){return s(this).year()},r.isoWeek=function(e){if(!this.$utils().u(e))return this.add(7*(e-this.isoWeek()),t);var n,r,a,o=s(this),c=(n=this.isoWeekYear(),a=4-(r=(this.$u?i.utc:i)().year(n).startOf("year")).isoWeekday(),r.isoWeekday()>4&&(a+=7),r.a [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/8215.af7b1cee.js b/zh-cn/assets/js/8215.af7b1cee.js
new file mode 100644
index 00000000..2749af11
--- /dev/null
+++ b/zh-cn/assets/js/8215.af7b1cee.js
@@ -0,0 +1 @@
+(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8215],{23:function(t,e,i){var n;n=function(t){return(()=>{"use strict";var e={658:t=>{t.exports=null!=Object.assign?Object.assign.bind(Object):function(t){for(var e=arguments.length,i=Array(e>1?e-1:0),n=1;n<e;n++)i[n-1]=arguments[n];return i.forEach(function(e){Object.keys(e).forEach(function(i){return t[i]=e[i]})}),t}},548:(t,e,i)=>{var n=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return funct [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/8245.8c3a160f.js b/zh-cn/assets/js/8245.8c3a160f.js
new file mode 100644
index 00000000..ba1808bc
--- /dev/null
+++ b/zh-cn/assets/js/8245.8c3a160f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8245],{8245:(e,s,c)=>{c.d(s,{createPieServices:()=>i.f});var i=c(2323);c(4214)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/8454.dfe41403.js b/zh-cn/assets/js/8454.dfe41403.js
new file mode 100644
index 00000000..2f6f2964
--- /dev/null
+++ b/zh-cn/assets/js/8454.dfe41403.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8454],{124:(t,e,r)=>{r.d(e,{A:()=>i});var a=r(6554),s=r(7766);const i=(t,e)=>a.A.lang.round(s.A.parse(t)[e])},4350:(t,e,r)=>{r.d(e,{A:()=>s});var a=r(5639);const s=function(t){return(0,a.A)(t,4)}},7055:(t,e,r)=>{r.d(e,{o:()=>a});var a=(0,r(1595).K2)(()=>"\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/8868.75a81dea.js b/zh-cn/assets/js/8868.75a81dea.js
new file mode 100644
index 00000000..6583362a
--- /dev/null
+++ b/zh-cn/assets/js/8868.75a81dea.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8868],{8868:(t,e,a)=>{a.d(e,{diagram:()=>R});var i,n=a(7386),r=(a(8943),a(5458),a(6659),a(9142),a(9124),a(7440),a(5611),a(3637),a(2133),a(1808)),d=a(7693),s=a(1595),o=a(3170),g=a(4326),p=a(7420),h=(0,s.K2)(t=>t.append("circle").attr("class","start-state").attr("r",(0,d.D7)().state.sizeUnit).attr("cx",(0,d.D7)().state.padding+(0,d.D7)().state.sizeUnit).attr("cy",(0,d.D7)().state.padding+(0,d.D7)().state.sizeUnit), [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/8d4cdedc.a85086c8.js b/zh-cn/assets/js/8d4cdedc.a85086c8.js
new file mode 100644
index 00000000..52e46863
--- /dev/null
+++ b/zh-cn/assets/js/8d4cdedc.a85086c8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6442],{508:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>s});var o=t(9729);const i={},c=o.createContext(i);function r(e){const n=o.useContext(c);return o.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),o.createElement(c.Provider,{value:n},e.children)}},2292:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9076.feb860c8.js b/zh-cn/assets/js/9076.feb860c8.js
new file mode 100644
index 00000000..352610ed
--- /dev/null
+++ b/zh-cn/assets/js/9076.feb860c8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9076],{5458:(t,e,s)=>{s.d(e,{P:()=>a});var i=s(7693),n=s(1595),a=(0,n.K2)((t,e,s,a)=>{t.attr("class",s);const{width:l,height:o,x:c,y:h}=r(t,e);(0,i.a$)(t,o,l,a);const d=u(c,h,l,o,e);t.attr("viewBox",d),n.Rm.debug(`viewBox configured: ${d} with padding: ${e}`)},"setupViewPortForSVG"),r=(0,n.K2)((t,e)=>{const s=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*e,height:s.height+2*e,x:s.x,y:s.y} [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/91fb5ccc.9f7f0aa6.js b/zh-cn/assets/js/91fb5ccc.9f7f0aa6.js
new file mode 100644
index 00000000..ea6e5ff5
--- /dev/null
+++ b/zh-cn/assets/js/91fb5ccc.9f7f0aa6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7683],{508:(e,n,c)=>{c.d(n,{R:()=>l,x:()=>s});var a=c(9729);const t={},r=a.createContext(t);function l(e){const n=a.useContext(r);return a.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),a.createElement(r.Provider,{value:n},e.children)}},7932:(e,n,c)=>{c.r(n),c [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9294.4210ac81.js b/zh-cn/assets/js/9294.4210ac81.js
new file mode 100644
index 00000000..b520271b
--- /dev/null
+++ b/zh-cn/assets/js/9294.4210ac81.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9294],{4350:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(5639);const i=function(e){return(0,r.A)(e,4)}},9294:(e,n,t)=>{t.r(n),t.d(n,{render:()=>k});var r=t(9142),i=(t(9124),t(7440)),a=t(5611),o=(t(3637),t(2133),t(1808),t(7693)),d=t(1595),s=t(4326),c=t(707),g=t(4350),l=t(2185);t(9641);function f(e){var n={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:h(e),edges:p(e)};return c.A( [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9312.8b0e39cd.js b/zh-cn/assets/js/9312.8b0e39cd.js
new file mode 100644
index 00000000..2b3823d0
--- /dev/null
+++ b/zh-cn/assets/js/9312.8b0e39cd.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9312],{9312:(e,r,t)=>{t.d(r,{diagram:()=>i});var s=t(7386),a=(t(8943),t(5458),t(6659),t(9142),t(9124),t(7440),t(5611),t(3637),t(2133),t(1808),t(7693),t(1595)),i={parser:s.Zk,get db(){return new s.u4(2)},renderer:s.q7,styles:s.tM,init:(0,a.K2)(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/9402.dfe044b9.js b/zh-cn/assets/js/9402.dfe044b9.js
new file mode 100644
index 00000000..9f520133
--- /dev/null
+++ b/zh-cn/assets/js/9402.dfe044b9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9402],{9402:(e,t,r)=>{r.d(t,{default:()=>rn});class a{constructor(e,t,r){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=t,this.end=r}static range(e,t){return t?e&&e.loc&&t.loc&&e.loc.lexer===t.loc.lexer?new a(e.loc.lexer,e.loc.start,t.loc.end):null:e&&e.loc}}class n{constructor(e,t){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=t}r [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9629.3431bc5c.js b/zh-cn/assets/js/9629.3431bc5c.js
new file mode 100644
index 00000000..6e0e38d0
--- /dev/null
+++ b/zh-cn/assets/js/9629.3431bc5c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9629],{9629:(t,i,e)=>{e.d(i,{diagram:()=>it});var s=e(7348),a=e(2133),n=e(1808),h=e(7693),o=e(1595),r=e(3170),l=function(){var t=(0,o.K2)(function(t,i,e,s){for(e=e||{},s=t.length;s--;e[t[s]]=i);return e},"o"),i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],a=[1,5],n=[1,6],h=[1,7],r=[1,5,10,12,14,16,18,19,21,23,34,35,36],l=[1,25],c=[1,26],g=[1,28],u=[1,29],x=[1,30],d=[1,31],p=[1,32],f=[1,33],y=[1,34],m=[1,35],b=[1,3 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9646.4c6a489b.js b/zh-cn/assets/js/9646.4c6a489b.js
new file mode 100644
index 00000000..7942a566
--- /dev/null
+++ b/zh-cn/assets/js/9646.4c6a489b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9646],{9646:(e,r,t)=>{t.d(r,{diagram:()=>g});var a=t(4285),s=t(7348),n=t(7693),i=t(1595),d=t(7370),o={parse:(0,i.K2)(async e=>{const r=await(0,d.qg)("info",e);i.Rm.debug(r)},"parse")},p={version:a.n.version+""},g={parser:o,db:{getVersion:(0,i.K2)(()=>p.version,"getVersion")},renderer:{draw:(0,i.K2)((e,r,t)=>{i.Rm.debug("rendering info diagram\n"+e);const a=(0,s.D)(r);(0,n.a$)(a,100,400,!0);a.append("g").append("t [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9a0089cf.1dc0ae48.js b/zh-cn/assets/js/9a0089cf.1dc0ae48.js
new file mode 100644
index 00000000..c102c586
--- /dev/null
+++ b/zh-cn/assets/js/9a0089cf.1dc0ae48.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7795],{508:(e,n,d)=>{d.d(n,{R:()=>l,x:()=>i});var r=d(9729);const t={},s=r.createContext(t);function l(e){const n=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),r.createElement(s.Provider,{value:n},e.children)}},9691:(e,n,d)=>{d.r(n),d [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9d584252.213093bb.js b/zh-cn/assets/js/9d584252.213093bb.js
new file mode 100644
index 00000000..6ec75b00
--- /dev/null
+++ b/zh-cn/assets/js/9d584252.213093bb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2064],{508:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>a});var i=n(9729);const r={},l=i.createContext(r);function s(e){const t=i.useContext(l);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),i.createElement(l.Provider,{value:t},e.children)}},2074:(e,t,n)=>{n.r(t),n [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/a4586aa9.ed4234c5.js b/zh-cn/assets/js/a4586aa9.ed4234c5.js
new file mode 100644
index 00000000..f56db2b6
--- /dev/null
+++ b/zh-cn/assets/js/a4586aa9.ed4234c5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9370],{508:(e,n,i)=>{i.d(n,{R:()=>t,x:()=>c});var s=i(9729);const r={},l=s.createContext(r);function t(e){const n=s.useContext(l);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),s.createElement(l.Provider,{value:n},e.children)}},8307:(e,n,i)=>{i.r(n),i [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/a7456010.7b4b0a20.js b/zh-cn/assets/js/a7456010.7b4b0a20.js
new file mode 100644
index 00000000..2e5cf6e2
--- /dev/null
+++ b/zh-cn/assets/js/a7456010.7b4b0a20.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1235],{8552:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/a7bd4aaa.8584244c.js b/zh-cn/assets/js/a7bd4aaa.8584244c.js
new file mode 100644
index 00000000..fd0e5fb1
--- /dev/null
+++ b/zh-cn/assets/js/a7bd4aaa.8584244c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7098],{8499:(n,e,s)=>{s.r(e),s.d(e,{default:()=>d});s(9729);var r=s(5327);function t(n,e){return`docs-${n}-${e}`}var o=s(5633),i=s(6149),c=s(9328),u=s(5813);function a(n){const{version:e}=n;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(c.A,{version:e.version,tag:t(e.pluginId,e.version)}),(0,u.jsx)(r.be,{children:e.noIndex&&(0,u.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function l(n){const{v [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/a94703ab.d8dfe806.js b/zh-cn/assets/js/a94703ab.d8dfe806.js
new file mode 100644
index 00000000..04835cfa
--- /dev/null
+++ b/zh-cn/assets/js/a94703ab.d8dfe806.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9048],{2432:(e,t,n)=>{n.d(t,{A:()=>l});n(9729);var a=n(3526),i=n(7268),o=n(1954),s=n(5813);function l({className:e}){return(0,s.jsx)("main",{className:(0,a.A)("container margin-vert--xl",e),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(o.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(i.A,{id:"theme.NotFound.title",description:" [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/aba21aa0.9ac6642b.js b/zh-cn/assets/js/aba21aa0.9ac6642b.js
new file mode 100644
index 00000000..0c1598dd
--- /dev/null
+++ b/zh-cn/assets/js/aba21aa0.9ac6642b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5742],{7093:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/b1c23739.cfc7693f.js b/zh-cn/assets/js/b1c23739.cfc7693f.js
new file mode 100644
index 00000000..dd0b448c
--- /dev/null
+++ b/zh-cn/assets/js/b1c23739.cfc7693f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7197],{463:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>r,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>d,toc:()=>c});const d=JSON.parse('{"id":"read/head","title":"\u8868\u5934","description":"\u672c\u7ae0\u8282\u5c06\u4ecb\u7ecd\u8bfb\u53d6 Excel \u4e2d\u7684\u8868\u5934\u6570\u636e\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/read/head.md","sourceDirName":"read","slug":"/rea [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/b76e6c4a.ad372fa2.js b/zh-cn/assets/js/b76e6c4a.ad372fa2.js
new file mode 100644
index 00000000..2730da64
--- /dev/null
+++ b/zh-cn/assets/js/b76e6c4a.ad372fa2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8461],{508:(e,n,t)=>{t.d(n,{R:()=>d,x:()=>c});var s=t(9729);const a={},r=s.createContext(a);function d(e){const n=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:d(e.components),s.createElement(r.Provider,{value:n},e.children)}},4065:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/b8ed1609.dfcdb302.js b/zh-cn/assets/js/b8ed1609.dfcdb302.js
new file mode 100644
index 00000000..62d9e120
--- /dev/null
+++ b/zh-cn/assets/js/b8ed1609.dfcdb302.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3746],{508:(A,g,C)=>{C.d(g,{R:()=>E,x:()=>I});var e=C(9729);const B={},i=e.createContext(B);function E(A){const g=e.useContext(i);return e.useMemo(function(){return"function"==typeof A?A(g):{...g,...A}},[g,A])}function I(A){let g;return g=A.disableParentContext?"function"==typeof A.components?A.components(B):A.components||B:E(A.components),e.createElement(i.Provider,{value:g},A.children)}},1469:(A,g,C)=>{C.d(g,{A [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/c4f5d8e4.4559eaca.js b/zh-cn/assets/js/c4f5d8e4.4559eaca.js
new file mode 100644
index 00000000..17546ee7
--- /dev/null
+++ b/zh-cn/assets/js/c4f5d8e4.4559eaca.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2634],{1601:(e,a,t)=>{t.d(a,{A:()=>v});var l,r,n,c,h,i,f,m,d,s,o,g,E,p,x,w,M=t(9729);function u(){return u=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},u.apply(null,arguments)}const v=({title:e,titleId:a,...t})=>M.createElement("svg",u({xmlns:"http://www.w3.org/2000/svg",width:1008.92,heigh [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/c6ce0837.6ad57838.js b/zh-cn/assets/js/c6ce0837.6ad57838.js
new file mode 100644
index 00000000..2ec5b33c
--- /dev/null
+++ b/zh-cn/assets/js/c6ce0837.6ad57838.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2382],{508:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>c});var r=t(9729);const s={},i=r.createContext(s);function o(e){const n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(i.Provider,{value:n},e.children)}},7634:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/c96ca1a6.3c431974.js b/zh-cn/assets/js/c96ca1a6.3c431974.js
new file mode 100644
index 00000000..7f40d6f0
--- /dev/null
+++ b/zh-cn/assets/js/c96ca1a6.3c431974.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5061],{508:(e,t,i)=>{i.d(t,{R:()=>s,x:()=>a});var n=i(9729);const r={},l=n.createContext(r);function s(e){const t=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),n.createElement(l.Provider,{value:t},e.children)}},3501:(e,t,i)=>{i.d(t,{A [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/cf8446db.4a22a853.js b/zh-cn/assets/js/cf8446db.4a22a853.js
new file mode 100644
index 00000000..a97b239c
--- /dev/null
+++ b/zh-cn/assets/js/cf8446db.4a22a853.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5780],{508:(e,n,s)=>{s.d(n,{R:()=>c,x:()=>r});var t=s(9729);const l={},i=t.createContext(l);function c(e){const n=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:c(e.components),t.createElement(i.Provider,{value:n},e.children)}},8366:(e,n,s)=>{s.r(n),s [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/d5087300.a8b073d1.js b/zh-cn/assets/js/d5087300.a8b073d1.js
new file mode 100644
index 00000000..d7ca1009
--- /dev/null
+++ b/zh-cn/assets/js/d5087300.a8b073d1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2516],{508:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>s});var l=t(9729);const i={},r=l.createContext(i);function o(e){const n=l.useContext(r);return l.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),l.createElement(r.Provider,{value:n},e.children)}},1583:(e,n,t)=>{t.r(n),t [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/ddc7dbcd.45f12fa5.js b/zh-cn/assets/js/ddc7dbcd.45f12fa5.js
new file mode 100644
index 00000000..38f9707c
--- /dev/null
+++ b/zh-cn/assets/js/ddc7dbcd.45f12fa5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2970],{8171:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","href":"/zh-cn/docs/","label":"\u4ecb\u7ecd","docId":"introduce","unlisted":false},{"type":"category","label":"\u5feb\u901f\u5f00\u59cb","items":[{"type":"link","href":"/zh-cn/do [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/e0719818.4f1a2df1.js b/zh-cn/assets/js/e0719818.4f1a2df1.js
new file mode 100644
index 00000000..7d1e1848
--- /dev/null
+++ b/zh-cn/assets/js/e0719818.4f1a2df1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5220],{8669:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"community"}')}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/e7985601.99a58bca.js b/zh-cn/assets/js/e7985601.99a58bca.js
new file mode 100644
index 00000000..28ea0941
--- /dev/null
+++ b/zh-cn/assets/js/e7985601.99a58bca.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[764],{508:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>d});var l=s(9729);const i={},c=l.createContext(i);function r(e){const n=l.useContext(c);return l.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),l.createElement(c.Provider,{value:n},e.children)}},1274:(e,n,s)=>{s.r(n),s. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/e946020f.3ec9df4c.js b/zh-cn/assets/js/e946020f.3ec9df4c.js
new file mode 100644
index 00000000..71d01268
--- /dev/null
+++ b/zh-cn/assets/js/e946020f.3ec9df4c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1271],{508:(e,n,a)=>{a.d(n,{R:()=>i,x:()=>s});var t=a(9729);const l={},r=t.createContext(l);function i(e){const n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:i(e.components),t.createElement(r.Provider,{value:n},e.children)}},1276:(e,n,a)=>{a.r(n),a [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/main.dad80087.js b/zh-cn/assets/js/main.dad80087.js
new file mode 100644
index 00000000..5067df89
--- /dev/null
+++ b/zh-cn/assets/js/main.dad80087.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.dad80087.js.LICENSE.txt */
+(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8792],{45:(e,t,n)=>{var r={"./prism-bash":1022,"./prism-java":2912};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=45},160:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(9729),a=n(9745),o=n(5719),i=n(3800),l=n(3016),s=n(4335),c=n(9351),u=n(2499),d= [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/main.dad80087.js.LICENSE.txt b/zh-cn/assets/js/main.dad80087.js.LICENSE.txt
new file mode 100644
index 00000000..4c963e46
--- /dev/null
+++ b/zh-cn/assets/js/main.dad80087.js.LICENSE.txt
@@ -0,0 +1,61 @@
+/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
+ * @license MIT */
+
+/**
+ * @license React
+ * react-dom-client.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react-dom.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react-jsx-runtime.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * scheduler.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/** @license React v16.13.1
+ * react-is.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
diff --git a/zh-cn/assets/js/runtime~main.4bcce36e.js b/zh-cn/assets/js/runtime~main.4bcce36e.js
new file mode 100644
index 00000000..f56f1a04
--- /dev/null
+++ b/zh-cn/assets/js/runtime~main.4bcce36e.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,a,c,t,d,r={},f={};function b(e){var a=f[e];if(void 0!==a)return a.exports;var c=f[e]={exports:{}};return r[e].call(c.exports,c,c.exports,b),c.exports}b.m=r,e=[],b.O=(a,c,t,d)=>{if(!c){var r=1/0;for(i=0;i<e.length;i++){c=e[i][0],t=e[i][1],d=e[i][2];for(var f=!0,o=0;o<c.length;o++)(!1&d||r>=d)&&Object.keys(b.O).every(e=>b.O[e](c[o]))?c.splice(o--,1):(f=!1,d<r&&(r=d));if(f){e.splice(i--,1);var n=t();void 0!==n&&(a=n)}}return a}d=d||0;for(var i=e.length;i>0&&e[i-1][2 [...]
\ No newline at end of file
diff --git a/zh-cn/community/bug-report/index.html b/zh-cn/community/bug-report/index.html
new file mode 100644
index 00000000..5db18cf9
--- /dev/null
+++ b/zh-cn/community/bug-report/index.html
@@ -0,0 +1,61 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-bug-report" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">反馈问题 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/community/bug-report/"><met [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>我们非常欢迎社区用户对项目提出宝贵的反馈和意见。如果您在使用过程中发现任何问题,您可以通过 <a href="https://github.com/fast-excel/fastexcel/issues/new/choose" target="_blank" rel="noopener noreferrer">NEW ISSUE</a> 页面提交问题。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="提交之前">提交之前<a href="#提交之前" class="hash-link" aria-label="提交之前的直接链接" title="提交之前的直接链接" translate="no"></a></h2>
+<p>在创建一个新的问题之前,请务必先完成以下准备工作。这能避免重复劳动,并节省你和维护者的时间。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="阅读文档">阅读文档<a href="#阅读文档" class="hash-link" aria-label="阅读文档的直接链接" title="阅读文档的直接链接" translate="no"></a></h3>
+<ul>
+<li>请先仔细阅读项目中的<code>README</code>和官方文档,查看其中是否有解决该问题的方法。</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="搜索现有问题">搜索现有问题<a href="#搜索现有问题" class="hash-link" aria-label="搜索现有问题的直接链接" title="搜索现有问题的直接链接" translate="no"></a></h3>
+<ul>
+<li>访问 <a href="https://github.com/fast-excel/fastexcel/issues" target="_blank" rel="noopener noreferrer">问题列表</a> 搜索关键词。</li>
+<li>如果发现类似问题,请在该问题下 <strong>评论并补充详细信息</strong>,而不是重新创建新问题。</li>
+<li>如果未解决的问题,因为某些原因已处于已关闭的状态,请 <strong>评论并补充详细信息</strong> 重新打开这个问题。</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="更新到最新版本">更新到最新版本<a href="#更新到最新版本" class="hash-link" aria-label="更新到最新版本的直接链接" title="更新到最新版本的直接链接" translate="no"></a></h3>
+<p>确保您正在使用的是项目的最新稳定版或主分支的最新代码。很多问题在新版本中已经被修复了。</p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="创建新问题">创建新问题<a href="#创建新问题" class="hash-link" aria-label="创建新问题的直接链接" title="创建新问题的直接链接" translate="no"></a></h2>
+<p>如果确认您的问题尚未被报告,请通过 <a href="https://github.com/fast-excel/fastexcel/issues/new/choose" target="_blank" rel="noopener noreferrer">NEW ISSUE</a> 页面提交新问题。</p>
+<p><strong>请务必使用问题模板</strong>,并尽可能地提供完整的信息,如:</p>
+<ul>
+<li>环境信息(操作系统、使用的版本等)。</li>
+<li>复现步骤。</li>
+<li>错误日志或截图。</li>
+<li>提供一个可复现的最小示例。</li>
+</ul>
+<p>以下情况适合提交新问题:</p>
+<ul>
+<li>Bug 报告</li>
+<li>新功能需求</li>
+<li>性能问题</li>
+<li>功能提案或设计</li>
+<li>文档改进</li>
+<li>测试覆盖率优化</li>
+<li>需要技术支持</li>
+<li>其他与项目相关的问题</li>
+</ul>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="注意事项">注意事项<a href="#注意事项" class="hash-link" aria-label="注意事项的直接链接" title="注意事项的直接链接" translate="no"></a></h2>
+<ul>
+<li>问题的标题应该清晰、简洁,建议不超过 50 个字符长度。</li>
+<li>问题描述和内容中请使用礼貌的语言。</li>
+<li>一个问题只应包含一个主题,请勿将多个问题合并为一个。</li>
+<li>除非已事先明确某位开发者负责这个问题,否则请勿随意指派给某个开发者。</li>
+</ul>
+<p>感谢您为提升项目质量所做的贡献!您的每一次反馈,都是我们前进的动力。</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs-community/current/bug-report.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_eJSs" aria-hidden="true">< [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/community/contact/index.html b/zh-cn/community/contact/index.html
new file mode 100644
index 00000000..b0574ade
--- /dev/null
+++ b/zh-cn/community/contact/index.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-contact" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">交流联系 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/community/contact/"><meta d [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>非常感谢大家选择和使用 FastExcel,如果您在使用过程有任何需要帮助或者想交流建议,欢迎联系我们!</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="问题跟踪">问题跟踪<a href="#问题跟踪" class="hash-link" aria-label="问题跟踪的直接链接" title="问题跟踪的直接链接" translate="no"></a></h2>
+<p>所有的问题都将通过<a href="https://github.com/fast-excel/fastexcel/issues" target="_blank" rel="noopener noreferrer">GitHub Issues</a>进行跟踪和处理。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="讨论">讨论<a href="#讨论" class="hash-link" aria-label="讨论的直接链接" title="讨论的直接链接" translate="no"></a></h2>
+<p>开发讨论和用户交流请使用<a href="https://github.com/fast-excel/fastexcel/discussions" target="_blank" rel="noopener noreferrer">GitHub Discussions</a></p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="公众号">公众号<a href="#公众号" class="hash-link" aria-label="公众号的直接链接" title="公众号的直接链接" translate="no"></a></h2>
+<p>关注作者“程序员小懒“的公众号加入技术交流群,获取更多技术干货和最新动态。</p>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/wechat-public-d649d5c1c7820d27a8fbf279da1a9518.jpg" width="258" height="258" class="img_U4Mj"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs-community/current/contact.md" target="_blank" rel="noopener noreferrer" class="th [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/community/contribution/index.html b/zh-cn/community/contribution/index.html
new file mode 100644
index 00000000..1cb32a57
--- /dev/null
+++ b/zh-cn/community/contribution/index.html
@@ -0,0 +1,155 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-contribution" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">贡献指南 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/community/contribution/"><m [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>欢迎社区的每一位用户和开发者成为贡献者。无论是报告问题、改进文档、提交代码,还是提供技术支持,您的参与都将帮助 FastExcel 变得更好。</p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="贡献方向">贡献方向<a href="#贡献方向" class="hash-link" aria-label="贡献方向的直接链接" title="贡献方向的直接链接" translate="no"></a></h2>
+<p>对 FastExcel 贡献,贡献方向有很多:</p>
+<ul>
+<li>修复错别字</li>
+<li>修复 Bug</li>
+<li>删除冗余代码</li>
+<li>添加测试用例</li>
+<li>增强功能</li>
+<li>添加注释以提升代码可读性</li>
+<li>优化代码结构</li>
+<li>改进或完善文档</li>
+</ul>
+<p><strong>原则</strong>:</p>
+<ul>
+<li>任何有助于项目改进的 PR 都值得鼓励!</li>
+<li>贡献一个新的功能,请先在 <code>issue</code> 或 <code>discussion</code> 中提出和讨论。我们不会合并<strong>未经讨论和确认的</strong>的功能</li>
+</ul>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="贡献代码">贡献代码<a href="#贡献代码" class="hash-link" aria-label="贡献代码的直接链接" title="贡献代码的直接链接" translate="no"></a></h2>
+<p>所有改进均可通过 Pull Request (PR) 实现。在提交 Pull Request 前,请熟悉以下指南:</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="工作区准备">工作区准备<a href="#工作区准备" class="hash-link" aria-label="工作区准备的直接链接" title="工作区准备的直接链接" translate="no"></a></h3>
+<p>开发 FastExcel 需要 <strong>3.9及以上版本的 Maven</strong> 和 <strong>17 及以上版本的 JDK (Java Development Kit)</strong> ,但在编译过程中必须使用 <strong>Java 1.8</strong> 兼容的语言特性,保证 FastExcel 能在 Java 1.8 及以上版本环境中运行。</p>
+<blockquote>
+<p>您可以使用 <a href="https://sdkman.io/" target="_blank" rel="noopener noreferrer">SDKMAN</a> 等工具配置多版本的 Java 工具链。</p>
+</blockquote>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="fork-仓库">Fork 仓库<a href="#fork-仓库" class="hash-link" aria-label="Fork 仓库的直接链接" title="Fork 仓库的直接链接" translate="no"></a></h3>
+<p>确保您已注册 GitHub 账号,并按照以下步骤完成本地开发环境配置:</p>
+<p><strong>Fork 仓库</strong>:在 FastExcel 的 <a href="https://github.com/fast-excel/fastexcel" target="_blank" rel="noopener noreferrer">GitHub 页面</a> 点击 <code>Fork</code> 按钮,将项目复制到您的 GitHub 账户下,</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token plain">https://github.com/</span><span class="token operator" style="color:#393A34"><</span><sp [...]
+<p><strong>克隆代码库</strong>:运行以下命令将 Fork 的项目克隆到本地:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> clone git@github.com:</span>< [...]
+<p><strong>设置上游仓库</strong>:将官方仓库设置为 <code>upstream</code>,方便同步更新:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> remote </span><span class="to [...]
+<p>运行 <code>git remote -v</code> 可检查配置是否正确。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="分支定义">分支定义<a href="#分支定义" class="hash-link" aria-label="分支定义的直接链接" title="分支定义的直接链接" translate="no"></a></h3>
+<p>在 FastExcel 中,所有贡献应基于 <code>main</code> 开发分支。此外,还有以下分支类型:</p>
+<ul>
+<li><strong>release 分支</strong>:用于版本发布(如 <code>1.1.0</code>, <code>1.1.1</code>)。</li>
+<li><strong>feature 分支</strong>:用于开发较大的功能。</li>
+<li><strong>hotfix 分支</strong>:用于修复重要 Bug。</li>
+</ul>
+<p>提交 PR 时,请确保变更基于 <code>main</code> 分支。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="提交规则">提交规则<a href="#提交规则" class="hash-link" aria-label="提交规则的直接链接" title="提交规则的直接链接" translate="no"></a></h3>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="提交信息">提交信息<a href="#提交信息" class="hash-link" aria-label="提交信息的直接链接" title="提交信息的直接链接" translate="no"></a></h4>
+<p>请确保提交消息清晰且具有描述性,务必使用<strong>英文</strong>,且不超过 100 个字符。</p>
+<p>允许提交信息的类型且需遵循以下格式:</p>
+<ul>
+<li><strong>docs</strong>: 更新文档,例如 <code>docs: update README.md</code></li>
+<li><strong>feature/feat</strong>: 新功能,例如 <code>feature: support for xxx</code></li>
+<li><strong>bugfix/fix</strong>: 修复 Bug,例如 <code>fix: fix NPE in the A class</code></li>
+<li><strong>refactor</strong>: 代码重构(不涉及功能变动),例如 <code>refactor: optimise data processing logic</code></li>
+<li><strong>style</strong>: 代码格式,例如 <code>style: update code style</code></li>
+<li><strong>test</strong>: 增加或改进测试,例如 <code>test: add new test cases</code></li>
+<li><strong>chore</strong>: 构建过程或辅助工具的变动,例如 <code>chore: improve issue template</code></li>
+<li><strong>dependency</strong>: 第三方依赖库的修改,例如 <code>dependency: upgrade poi version to 5.4.1</code></li>
+</ul>
+<p>不建议使用模糊的提交信息,如:</p>
+<ul>
+<li><del>fixed issue</del></li>
+<li><del>update code</del></li>
+</ul>
+<p>如果需要帮助,请参考 <a href="http://chris.beams.io/posts/git-commit/" target="_blank" rel="noopener noreferrer">如何编写 Git 提交消息</a>。</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="提交内容">提交内容<a href="#提交内容" class="hash-link" aria-label="提交内容的直接链接" title="提交内容的直接链接" translate="no"></a></h4>
+<p>一次提交应包含完整且可审查的更改,确保:</p>
+<ul>
+<li>避免提交过于庞大的改动。</li>
+<li>每次提交内容独立且可通过 CI 测试。</li>
+</ul>
+<p>另外,请确保提交时配置正确的 Git 用户信息:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> config </span><span class="to [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pr-说明">PR 说明<a href="#pr-说明" class="hash-link" aria-label="PR 说明的直接链接" title="PR 说明的直接链接" translate="no"></a></h3>
+<p>为了帮助审阅者快速了解 PR 的内容和目的,请使用 <a href="https://github.com/fast-excel/fastexcel/blob/main/.github/pull_request_template.md" target="_blank" rel="noopener noreferrer">PR 模板</a>。详细的描述将极大提高代码审阅效率。</p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="测试用例贡献">测试用例贡献<a href="#测试用例贡献" class="hash-link" aria-label="测试用例贡献的直接链接" title="测试用例贡献的直接链接" translate="no"></a></h2>
+<p>任何测试用例的贡献都值得鼓励,尤其是单元测试。建议在对应模块的 <code>test</code> 目录中创建 <code>XXXTest.java</code> 文件,推荐使用 <code>JUnit5</code> 框架。</p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="贡献文档">贡献文档<a href="#贡献文档" class="hash-link" aria-label="贡献文档的直接链接" title="贡献文档的直接链接" translate="no"></a></h2>
+<p>文档是 FastExcel 官方网站的重要构建内容,是项目与社区之间的重要桥梁。FastExcel 官方网站使用 <a href="https://docusaurus.io/" target="_blank" rel="noopener noreferrer">Docusaurus</a> 进行构建,其中文档在 <a href="https://github.com/fast-excel/fastexcel/tree/main/website" target="_blank" rel="noopener noreferrer">website</a> 目录中进行维护。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="环境要求">环境要求<a href="#环境要求" class="hash-link" aria-label="环境要求的直接链接" title="环境要求的直接链接" translate="no"></a></h3>
+<ul>
+<li><a href="https://nodejs.org/en/download/" target="_blank" rel="noopener noreferrer">Node.js</a> 版本 18.0 或更高版本(可通过运行 <code>node -v</code> 命令进行检查)。您可使用 <a href="https://github.com/nvm-sh/nvm" target="_blank" rel="noopener noreferrer">nvm</a> 在同一台机器上管理多个 Node 版本。</li>
+<li>安装 Node.js 时,建议勾选所有与依赖项相关的复选框。</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="目录结构说明">目录结构说明<a href="#目录结构说明" class="hash-link" aria-label="目录结构说明的直接链接" title="目录结构说明的直接链接" translate="no"></a></h3>
+<p>Docusaurus 支持国际化,主要需要维护的文档目录结构如下:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token builtin class-name">.</span><span class="token plain"></span><br></span><span class="token-line" s [...]
+<p>单语言的文档目录结构如下:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token builtin class-name">.</span><span class="token plain"></span><br></span><span class="token-line" s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="文档编写指南">文档编写指南<a href="#文档编写指南" class="hash-link" aria-label="文档编写指南的直接链接" title="文档编写指南的直接链接" translate="no"></a></h3>
+<ul>
+<li>使用带有 <code>.md</code> 扩展名的文件路径</li>
+</ul>
+<div class="language-markdown codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-markdown codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token url" style="color:#36acaa">[</span><span class="token url content" style="color:#36acaa">E [...]
+<ul>
+<li>使用相对于 <code>docs/</code> 目录的路径</li>
+</ul>
+<div class="language-markdown codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-markdown codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token url" style="color:#36acaa">[</span><span class="token url content" style="color:#36acaa">E [...]
+<ul>
+<li>图片文件需要存储在 <code>static/img</code> 目录,并使用相对目录的形式引用.</li>
+</ul>
+<div class="language-markdown codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-markdown codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token url" style="color:#36acaa">[</span><span class="token url content" style="color:#36acaa">i [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="预览和生成静态文件">预览和生成静态文件<a href="#预览和生成静态文件" class="hash-link" aria-label="预览和生成静态文件的直接链接" title="预览和生成静态文件的直接链接" translate="no"></a></h3>
+<p>进入 <code>website</code> 目录,并执行以下命令</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="安装">安装<a href="#安装" class="hash-link" aria-label="安装的直接链接" title="安装的直接链接" translate="no"></a></h4>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">yarn</span><span class="token plain"> </span><span class="token fu [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="本地预览和运行">本地预览和运行<a href="#本地预览和运行" class="hash-link" aria-label="本地预览和运行的直接链接" title="本地预览和运行的直接链接" translate="no"></a></h4>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># 英文版</span><span class="token plain"></span><br> [...]
+<p>此命令会启动一个本地开发服务器,并打开一个浏览器窗口。大多数更改都无需重启服务器即可实时预览。</p>
+<blockquote>
+<p>每次只能运行一种语言版本</p>
+</blockquote>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="生成静态文件可选">生成静态文件(可选)<a href="#生成静态文件可选" class="hash-link" aria-label="生成静态文件(可选)的直接链接" title="生成静态文件(可选)的直接链接" translate="no"></a></h4>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">yarn</span><span class="token plain"> build</span><br></span></cod [...]
+<p>此命令将生成静态内容到<code>build</code>目录中,并且可以使用任何静态内容托管服务。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="文档格式校验">文档格式校验<a href="#文档格式校验" class="hash-link" aria-label="文档格式校验的直接链接" title="文档格式校验的直接链接" translate="no"></a></h3>
+<p>FastExcel 使用 <a href="https://github.com/DavidAnson/markdownlint-cli2" target="_blank" rel="noopener noreferrer">markdownlint-cli2</a> 来检查文档格式。您在编写了相关 Markdown 文章后,可以在本地执行以下命令,来预先检查 Markdown 的格式内容是否符合要求:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token builtin class-name">cd</span><span class="token plain"> website </span><span class="token operator [...]
+<ul>
+<li>Markdown 文章的相关格式规则可以参考 <a href="https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md" target="_blank" rel="noopener noreferrer">Markdown-lint-rules</a></li>
+<li>项目中的 Markdown 格式配置文件位于: <a href="https://github.com/fast-excel/fastexcel/blob/main/website/.markdownlint-cli2.jsonc" target="_blank" rel="noopener noreferrer">.markdownlint-cli2.jsonc</a></li>
+</ul>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="其他参与方式">其他参与方式<a href="#其他参与方式" class="hash-link" aria-label="其他参与方式的直接链接" title="其他参与方式的直接链接" translate="no"></a></h2>
+<p>除了直接贡献代码,以下方式同样是对 FastExcel 的宝贵支持:</p>
+<ul>
+<li>回答其他用户的问题。</li>
+<li>帮助审阅他人的 PR。</li>
+<li>提出改进建议。</li>
+<li>撰写技术博客,宣传 FastExcel。</li>
+<li>在社区中分享项目相关知识。</li>
+</ul>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="代码风格">代码风格<a href="#代码风格" class="hash-link" aria-label="代码风格的直接链接" title="代码风格的直接链接" translate="no"></a></h2>
+<p>FastExcel 使用 <a href="https://github.com/diffplug/spotless" target="_blank" rel="noopener noreferrer">Spotless</a> 作为代码格式化工具。请确保在提交前运行以下命令以自动格式化代码:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token plain">mvn spotless:apply</span><br></span></code></pre></div></div>
+<hr>
+<p>最后,感谢您对 FastExcel 的支持!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs-community/current/contribution.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_eJSs" aria-hidden="true"><g><path d= [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/community/development/index.html b/zh-cn/community/development/index.html
new file mode 100644
index 00000000..9a57ea3d
--- /dev/null
+++ b/zh-cn/community/development/index.html
@@ -0,0 +1,46 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-development" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">运行编译 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/community/development/"><me [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节介绍如何从源代码构建 FastExcel。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="开发环境">开发环境<a href="#开发环境" class="hash-link" aria-label="开发环境的直接链接" title="开发环境的直接链接" translate="no"></a></h2>
+<p>开发 FastExcel 需要 <strong>3.8.1及以上版本的Maven</strong> 和 <strong>17及以上版本的JDK (Java Development Kit)</strong> 。目前,开发环境推荐 <strong>3.9.0</strong> 及以上版本的Maven和 <strong>21</strong> 及以上的版本Java,但在编译过程中必须使用 <strong>Java 1.8</strong> 兼容的语言特性,保证 FastExcel 能在 Java 1.8 及以上版本环境中运行。</p>
+<blockquote>
+<p>您可以使用 <a href="https://sdkman.io/" target="_blank" rel="noopener noreferrer">SDKMAN</a> 等工具配置多版本的 Java 工具链。</p>
+</blockquote>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="idea-设置">IDEA 设置<a href="#idea-设置" class="hash-link" aria-label="IDEA 设置的直接链接" title="IDEA 设置的直接链接" translate="no"></a></h2>
+<p>以下指南针对使用 <code>IntelliJ IDEA</code> 开发,其他版本可能存在一些细节差异。请务必遵循所有步骤。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="工程项目设置">工程项目设置<a href="#工程项目设置" class="hash-link" aria-label="工程项目设置的直接链接" title="工程项目设置的直接链接" translate="no"></a></h3>
+<p>设置项目 <a href="https://www.jetbrains.com/help/idea/project-settings-and-structure.html#language-level" target="_blank" rel="noopener noreferrer">Language Level</a> 为 <code>8</code> 以确保后向兼容。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="git使用">Git使用<a href="#git使用" class="hash-link" aria-label="Git使用的直接链接" title="Git使用的直接链接" translate="no"></a></h2>
+<p>确保您已注册 <code>GitHub</code> 账号,并按照以下步骤完成本地开发环境配置:</p>
+<p><strong>Fork 仓库</strong>:在 FastExcel 的 <a href="https://github.com/fast-excel/fastexcel" target="_blank" rel="noopener noreferrer">GitHub 页面</a> 点击 <code>Fork</code> 按钮,将项目复制到您的 GitHub 账户下,</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token plain">https://github.com/</span><span class="token operator" style="color:#393A34"><</span><sp [...]
+<p><strong>克隆代码库</strong>:运行以下命令将 Fork 的项目克隆到本地:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> clone git@github.com:</span>< [...]
+<p><strong>设置上游仓库</strong>:将官方仓库设置为 <code>upstream</code>,方便同步更新:</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> remote </span><span class="to [...]
+<p>运行 <code>git remote -v</code> 可检查配置是否正确。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="编译">编译<a href="#编译" class="hash-link" aria-label="编译的直接链接" title="编译的直接链接" translate="no"></a></h2>
+<p>运行以下命令编译</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token plain">mvn clean </span><span class="token function" style="color:#d73a49">install</span><span cla [...]
+<p>为了加快构建速度,您可以:</p>
+<ul>
+<li>使用<code>-DskipTests</code>跳过单元测试</li>
+<li>使用 Maven 的并行构建功能,例如,<code>mvn clean install -DskipTests -T 1C</code></li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="代码格式化">代码格式化<a href="#代码格式化" class="hash-link" aria-label="代码格式化的直接链接" title="代码格式化的直接链接" translate="no"></a></h2>
+<p>FastExcel 使用 <a href="https://github.com/diffplug/spotless" target="_blank" rel="noopener noreferrer">Spotless</a> 检查并修复代码风格和格式问题。 您可以执行如下的命令,<code>Spotless</code> 将会自动检查并修复代码风格和格式问题。</p>
+<div class="language-bash codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-bash codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token plain">mvn spotless:apply</span><br></span></code></pre></div></div></div><footer class="theme-doc [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/fill/index.html b/zh-cn/docs/fill/index.html
new file mode 100644
index 00000000..35f1432c
--- /dev/null
+++ b/zh-cn/docs/fill/index.html
@@ -0,0 +1,78 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-fill/fill" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">填充 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/fill/"><meta data-rh="tr [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节介绍如何使用 FastExcel 来填充数据到文件中。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="简单填充">简单填充<a href="#简单填充" class="hash-link" aria-label="简单填充的直接链接" title="简单填充的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>基于模板文件,通过对象或 Map 填充数据到 Excel 中。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-类">POJO 类<a href="#pojo-类" class="hash-link" aria-label="POJO 类的直接链接" title="POJO 类的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="模板">模板<a href="#模板" class="hash-link" aria-label="模板的直接链接" title="模板的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsIAAABkCAYAAACMyFYDAAAABWZkRUNSJJPjAOWrYpkAACKvSURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TF3mMpf9J7zoJS9Tl7nMVS96ycvVZS5z2X/KC1/yCnXZv4sBcJnLXPbvhgCAy1zmIhAAXOYylz3bQNibIgC47N/FALjMZS77d0EgAeAyl7kIBACXucxlzzYQAFz2n2YAXOYyl/07IADgMpe5CIQEgMtc5rKnC4THA7A3BQBc9u9kAFzmMpe5zGUuc5nLXLY/gPCvADwZCiQAXPbvZgBc5jKXPdsQAHCZy1wEAoDLXOayfwcF9gbgsv8UY8M [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果">结果<a href="#结果" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlUAAABZCAYAAAAXW9HgAAAABWZkRUNSJJPjAOWrYpkAABm1SURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TPflne9+r376M5/Rr33ta+qy/eXTn/mMvvPd79UXvfhl+u/ywnNfou94xzv0U5/6lH7ta19Tlz1dn/rUp/Qd73iHvvDcl+iLXvwyTbzoJS/Tvb3zPe/VT33qU/q1r31NXeYyl7nMZS4yAPuyu3cPj61ex933PYjL9pfHVq9jd+8eAP5dxBh6+4dYtXYDd9/3IC57ulat3UBv/xBiDAAIAOxtd+8eVq3bwN33P4jLXPb/1d33P4TLXOayx2M [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="填充列表">填充列表<a href="#填充列表" class="hash-link" aria-label="填充列表的直接链接" title="填充列表的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-1">概述<a href="#概述-1" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>填充多个数据项到模板列表中,支持内存批量操作和文件缓存分批填充。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-1">代码示例<a href="#代码示例-1" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="模板-1">模板<a href="#模板-1" class="hash-link" aria-label="模板的直接链接" title="模板的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVcAAABOCAYAAACUn1X/AAAABWZkRUNSJJPjAOWrYpkAABJkSURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TF3mMpf9u7zoJS9Tl7lsbwbAZS5z2b8DAgAuc9nejA3L/CedfsqJ2LCMy57I6aeciA3LuOw/6fRTTsSGZZ4Ntlrm/5vTTz4RWy3jsify4hc+n6a6HPtiAP6TPM8DwGVPxPM8AFz2n+R5HgAueyKe5wHgsiciIgDsiwH4T/J9HwCXPRHf9wFw2X+S7/sAuOyJ+L4PgMueiIgAsC8G4D/J8zwAXPZEPM8DwGX/SZ7nAeCyJ+J5HgAueyIiAsC [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果-1">结果<a href="#结果-1" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/listFill_result-c126158195ba15c7ad37c143c1f2940b.png" width="445" height="432" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="复杂填充">复杂填充<a href="#复杂填充" class="hash-link" aria-label="复杂填充的直接链接" title="复杂填充的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-2">概述<a href="#概述-2" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>在模板中填充多种数据类型,包括列表和普通变量。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-2">代码示例<a href="#代码示例-2" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="模板-2">模板<a href="#模板-2" class="hash-link" aria-label="模板的直接链接" title="模板的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfcAAACICAYAAAD6dqKHAAAABWZkRUNSJJPjAOWrYpkAACNGSURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TF3mMpf9u7zoJS9Tl7nMVS96ycvVZf+tDIDLXOYyl7nMZS5zkQFwmctc9u+AAIDLXOYiEABc9t/K2LDMf9Lpp5yIDcu47ImcfsqJ2LCMy/6TTj/lRGxY5tlgq2Vc9v/R6SefiK2WcdkTsdUS/ymnn3wCtlrCZU/k9JNPwFZLTDIA/0me5wHgsifieR4ALvtP8jwPAJe57F/xPA8Al/238DwPAJc9Ec/zAJhkAP6TfN8HwGVPxPd9AFz2n+T [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果-2">结果<a href="#结果-2" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/complexFill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png" width="502" height="471" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="大数据量填充">大数据量填充<a href="#大数据量填充" class="hash-link" aria-label="大数据量填充的直接链接" title="大数据量填充的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-3">概述<a href="#概述-3" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>优化大数据量填充性能,确保模板列表在最后一行,后续数据通过 <code>WriteTable</code> 填充。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-3">代码示例<a href="#代码示例-3" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="模板-3">模板<a href="#模板-3" class="hash-link" aria-label="模板的直接链接" title="模板的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfYAAAB7CAYAAACGsqIOAAAABWZkRUNSJJPjAOWrYpkAAB9XSURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TJ/IO9/9Xv30Zz6jX/va19Rl+8unP/MZfee736svevHL9N/lhee+RN/xjnfopz71Kf3a176mLnu6PvWpT+k73vEOfeG5L9EXvfhlmnjRS16me3vne96rn/rUp/RrX/uausxlLnPZf5IBeCK7e/fw2Op13H3fg7hsf3ls9Tp29+4B4N9FjKG3f4hVazdw930P4rKna9XaDfT2DyHGAIAAwN529+5h1boN3H3/g7jMZf9f3X3/Q7jsv4kBcJn [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果-3">结果<a href="#结果-3" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/complexFillWithTable_result-21cb25bd329df76baf680fd0f94ef43b.png" width="495" height="469" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="横向填充">横向填充<a href="#横向填充" class="hash-link" aria-label="横向填充的直接链接" title="横向填充的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-4">概述<a href="#概述-4" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>将列表数据横向填充,适用于动态列数场景。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-4">代码示例<a href="#代码示例-4" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="模板-4">模板<a href="#模板-4" class="hash-link" aria-label="模板的直接链接" title="模板的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaoAAACHCAYAAABHyh2qAAAABWZkRUNSJJPjAOWrYpkAAB6PSURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TF3mMpc9m170kpepy1zmshe95OX6n2IAXOYylz1bEABwmctcBEIC4D/FALjMZS5zmctc9r/MALjMZS57NiAA4DKXuQgEgP80Y8My/06nn3IiNizjMpf9f3T6KSdiwzK2WsZlj+f0k0/EVsu47ImcfvKJ2GqZ/0W2WuLf7fSTT8BWS9QyAP9OnucB4DKX/X/keR4ALnsinucB4LIn4nkeAC57Ip7nAVDLAPw7+b4PgMtc9v+R7/sAuOyJ+L4 [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果-4">结果<a href="#结果-4" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/horizontalFill_result-6c236308703bda3338b429425b18c2a4.png" width="853" height="135" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="多列表组合填充">多列表组合填充<a href="#多列表组合填充" class="hash-link" aria-label="多列表组合填充的直接链接" title="多列表组合填充的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-5">概述<a href="#概述-5" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>支持多个列表同时填充,列表之间通过前缀区分。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-5">代码示例<a href="#代码示例-5" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="模板-5">模板<a href="#模板-5" class="hash-link" aria-label="模板的直接链接" title="模板的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/compositeFill_file-ba1c7222a9c310e389363a04777fa279.png" width="847" height="242" class="img_U4Mj"></p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果-5">结果<a href="#结果-5" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/compositeFill_result-94a945a637d60e2b0e8c055c83f92d8e.png" width="922" height="601" class="img_U4Mj"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/fill/fill.md" target="_blank" rel="noopener noreferrer" class="the [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/help/annotation/index.html b/zh-cn/docs/help/annotation/index.html
new file mode 100644
index 00000000..52affd67
--- /dev/null
+++ b/zh-cn/docs/help/annotation/index.html
@@ -0,0 +1,104 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-help/annotation" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">注解 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/help/annotation/"><meta [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节介绍读取 FastExcel 中提供的注解。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="实体类注解">实体类注解<a href="#实体类注解" class="hash-link" aria-label="实体类注解的直接链接" title="实体类注解的直接链接" translate="no"></a></h2>
+<p>实体类是读写操作的基础。FastExcel 提供了多种注解,帮助开发者轻松定义字段和格式。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="excelproperty"><strong><code>@ExcelProperty</code></strong><a href="#excelproperty" class="hash-link" aria-label="excelproperty的直接链接" title="excelproperty的直接链接" translate="no"></a></h3>
+<p>定义 Excel 列名和映射的字段名。 具体参数如下:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>名称</th><th>默认值</th><th>描述</th></tr></thead><tbody><tr><td>value</td><td>空</td><td>用于匹配excel中的头,必须全匹配,如果有多行头,会匹配最后一行头</td></tr><tr><td>order</td><td>Integer.MAX_VALUE</td><td>优先级高于<code>value</code>,会根据<code>order</code>的顺序来匹配实体和excel中数据的顺序</td></tr><tr><td>index</td><td>-1</td><td>优先级高于<code>value</code>和<code>order</code>,会根据<code>index</code>直接指定到excel中具体的哪一列</td></tr><tr><td>converter</td><td>自动选择</td><td>指定当前字段用什么转换器,默认会自动选择。读的情况下只要实现<code>cn.idev.excel.converte [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="excelignore"><code>@ExcelIgnore</code><a href="#excelignore" class="hash-link" aria-label="excelignore的直接链接" title="excelignore的直接链接" translate="no"></a></h3>
+<p>默认所有字段都会和 Excel 去匹配,加了这个注解会忽略该字段。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="excelignoreunannotated"><code>@ExcelIgnoreUnannotated</code><a href="#excelignoreunannotated" class="hash-link" aria-label="excelignoreunannotated的直接链接" title="excelignoreunannotated的直接链接" translate="no"></a></h3>
+<p>默认不加 <code>@ExcelProperty</code> 的注解的都会参与读写,加了不会参与读写。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="datetimeformat"><strong><code>@DateTimeFormat</code></strong><a href="#datetimeformat" class="hash-link" aria-label="datetimeformat的直接链接" title="datetimeformat的直接链接" translate="no"></a></h3>
+<p>日期转换,用<code>String</code>去接收excel日期格式的数据会调用这个注解,参数如下:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>名称</th><th>默认值</th><th>描述</th></tr></thead><tbody><tr><td>value</td><td>空</td><td>参照<code>java.text.SimpleDateFormat</code>书写即可</td></tr><tr><td>use1904windowing</td><td>自动选择</td><td>excel中时间是存储1900年起的一个双精度浮点数,但是有时候默认开始日期是1904,所以设置这个值改成默认1904年开始</td></tr></tbody></table>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="numberformat"><strong><code>@NumberFormat</code></strong><a href="#numberformat" class="hash-link" aria-label="numberformat的直接链接" title="numberformat的直接链接" translate="no"></a></h3>
+<p>数字转换,用<code>String</code>去接收excel数字格式的数据会调用这个注解。</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>名称</th><th>默认值</th><th>描述</th></tr></thead><tbody><tr><td>value</td><td>空</td><td>参照<code>java.text.DecimalFormat</code>书写即可</td></tr><tr><td>roundingMode</td><td>RoundingMode.HALF_UP</td><td>格式化的时候设置舍入模式</td></tr></tbody></table>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="columnwidth"><strong><code>@ColumnWidth</code></strong><a href="#columnwidth" class="hash-link" aria-label="columnwidth的直接链接" title="columnwidth的直接链接" translate="no"></a></h3>
+<p>指定列宽。</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/annotation.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_eJSs" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/help/core-class/index.html b/zh-cn/docs/help/core-class/index.html
new file mode 100644
index 00000000..f311b429
--- /dev/null
+++ b/zh-cn/docs/help/core-class/index.html
@@ -0,0 +1,353 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-help/core-class" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">核心类 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/help/core-class/"><meta [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节介绍读取 FastExcel 中的核心类。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h2>
+<p>如果使用 FastExcel 进行自定义读写操作,需要理解其重要的概念和类。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="核心概念">核心概念<a href="#核心概念" class="hash-link" aria-label="核心概念的直接链接" title="核心概念的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="fastexcel">FastExcel<a href="#fastexcel" class="hash-link" aria-label="FastExcel的直接链接" title="FastExcel的直接链接" translate="no"></a></h3>
+<p>入口类,用于构建开始各种操作。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="多种-builder">多种 Builder<a href="#多种-builder" class="hash-link" aria-label="多种 Builder的直接链接" title="多种 Builder的直接链接" translate="no"></a></h3>
+<p>对读和写操作分别有对应的 Builder 类:</p>
+<ul>
+<li><strong><code>ExcelReaderBuilder</code> 和 <code>ExcelWriterBuilder</code></strong>:分别为构建出一个 ReadWorkbook 和 WriteWorkbook,可以理解成一个excel对象,一个excel只要构建一个。</li>
+<li><strong><code>ExcelReaderSheetBuilder</code>和<code>ExcelWriterSheetBuilder</code></strong>:分别构建出一个 ReadSheet 和 WriteSheet对象,可以理解成excel里面的一页,每一页都要构建一个。</li>
+<li><strong><code>CsvReaderBuilder</code>和<code>CsvWriterBuilder</code></strong>:构建内部所需的 CsvFormat。</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="readlistener">ReadListener<a href="#readlistener" class="hash-link" aria-label="ReadListener的直接链接" title="ReadListener的直接链接" translate="no"></a></h3>
+<p>在每一行读取完毕后都会调用ReadListener来处理数据。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="writehandler">WriteHandler<a href="#writehandler" class="hash-link" aria-label="WriteHandler的直接链接" title="WriteHandler的直接链接" translate="no"></a></h3>
+<p>在每一个操作包括创建单元格、创建表格等都会调用WriteHandler来处理数据。</p>
+<p>所有配置都是继承的,Workbook 的配置会被 Sheet 继承,所以在用 FastExcel 设置参数的时候,在 FastExcel...sheet() 方法之前作用域是整个 sheet,在 FastExcel...csv() 方法之前作用域是整个 csv。</p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="writehandler-1">WriteHandler<a href="#writehandler-1" class="hash-link" aria-label="WriteHandler的直接链接" title="WriteHandler的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-1">概述<a href="#概述-1" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p><code>WriteHandler</code> 是 FastExcel 提供的接口,用于在写入 Excel 文件时拦截写入过程,允许开发者自定义操作,如设置单元格样式、合并单元格、添加超链接、插入批注等。
+通过实现 <code>WriteHandler</code>,开发者可以深入控制写入流程,以满足复杂的业务需求。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="分类">分类<a href="#分类" class="hash-link" aria-label="分类的直接链接" title="分类的直接链接" translate="no"></a></h3>
+<p>FastExcel 提供了以下几种 WriteHandler 接口,分别用于处理不同的写入场景:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>接口名</th><th>描述</th></tr></thead><tbody><tr><td><strong>CellWriteHandler</strong></td><td>单元格级别的拦截器,允许对单元格数据和样式进行自定义操作</td></tr><tr><td><strong>RowWriteHandler</strong></td><td>行级别的拦截器,用于在行数据写入完成后执行额外操作</td></tr><tr><td><strong>SheetWriteHandler</strong></td><td>工作表级别的拦截器,可用于设置工作表级别的属性(如冻结窗格、下拉框等)</td></tr></tbody></table>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="使用">使用<a href="#使用" class="hash-link" aria-label="使用的直接链接" title="使用的直接链接" translate="no"></a></h3>
+<ol>
+<li>
+<p>实现对应的 <code>WriteHandler</code> 接口:</p>
+<ul>
+<li>选择适合需求的接口(<code>CellWriteHandler</code>、<code>RowWriteHandler</code> 或 <code>SheetWriteHandler</code>)。</li>
+<li>实现接口中的方法,在方法中定义自定义逻辑。</li>
+</ul>
+</li>
+<li>
+<p>注册 WriteHandler:</p>
+<ul>
+<li>在调用 <code>FastExcel.write()</code> 时通过 <code>.registerWriteHandler()</code> 注册自定义的 WriteHandler。</li>
+</ul>
+</li>
+</ol>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="示例">示例<a href="#示例" class="hash-link" aria-label="示例的直接链接" title="示例的直接链接" translate="no"></a></h3>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="设置单元格样式">设置单元格样式<a href="#设置单元格样式" class="hash-link" aria-label="设置单元格样式的直接链接" title="设置单元格样式的直接链接" translate="no"></a></h4>
+<p>为所有内容单元格设置背景颜色为黄色,字体为蓝色。</p>
+<p>自定义 <code>CellWriteHandler</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>注册并使用</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="插入批注">插入批注<a href="#插入批注" class="hash-link" aria-label="插入批注的直接链接" title="插入批注的直接链接" translate="no"></a></h4>
+<p>为表头的第一行第二列插入批注。</p>
+<p>自定义 <code>RowWriteHandler</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>注册并使用</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="添加下拉框">添加下拉框<a href="#添加下拉框" class="hash-link" aria-label="添加下拉框的直接链接" title="添加下拉框的直接链接" translate="no"></a></h4>
+<p>为第一列的前两行数据添加下拉框。</p>
+<p>自定义 <code>SheetWriteHandler</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>注册并使用</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="readlistener-1">ReadListener<a href="#readlistener-1" class="hash-link" aria-label="ReadListener的直接链接" title="ReadListener的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-2">概述<a href="#概述-2" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p><code>ReadListener</code> 是 FastExcel 提供的接口,用于在读取 Excel 文件时对每一行数据进行处理。
+它是 FastExcel 核心组件之一,允许开发者实现自定义逻辑来处理数据行、处理表头,甚至在读取完成后执行特定操作。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="方法">方法<a href="#方法" class="hash-link" aria-label="方法的直接链接" title="方法的直接链接" translate="no"></a></h3>
+<p><code>ReadListener</code> 是一个泛型接口,泛型类型是要读取的对象类型(如 <code>DemoData</code>)。其核心方法如下:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>方法</th><th>描述</th></tr></thead><tbody><tr><td><code>void invoke(T data, AnalysisContext context)</code></td><td>当读取到一行数据时触发,<code>data</code> 是解析后的当前行对象,<code>context</code> 包含读取的上下文信息。</td></tr><tr><td><code>void doAfterAllAnalysed(AnalysisContext context)</code></td><td>在所有数据解析完成后调用,可用于资源释放或统计数据处理。</td></tr><tr><td><code>void onException(Exception exception, AnalysisContext context)</code> <em>(可选)</em></td><td>捕获读取过程中的异常,方便处理解析错误。</td></tr><tr><td><code>void invo [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="使用场景">使用场景<a href="#使用场景" class="hash-link" aria-label="使用场景的直接链接" title="使用场景的直接链接" translate="no"></a></h3>
+<ul>
+<li><strong>简化代码</strong>:适用于简单的按行处理,减少对内存和处理逻辑的控制。</li>
+<li><strong>异常处理</strong>:能够捕获和处理读取过程中的异常。</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="实现步骤">实现步骤<a href="#实现步骤" class="hash-link" aria-label="实现步骤的直接链接" title="实现步骤的直接链接" translate="no"></a></h3>
+<ol>
+<li>
+<p>实现 <code>ReadListener</code> 接口:</p>
+<ul>
+<li>使用实体类作为泛型类型(如 <code>ReadListener<DemoData></code>)。</li>
+<li>实现核心方法,根据需要添加数据处理逻辑。</li>
+</ul>
+</li>
+<li>
+<p>在读取时注册自定义 <code>ReadListener</code>:</p>
+<ul>
+<li>调用 <code>FastExcel.read()</code> 方法时,传入自定义监听器实例。</li>
+</ul>
+</li>
+</ol>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="示例-1">示例<a href="#示例-1" class="hash-link" aria-label="示例的直接链接" title="示例的直接链接" translate="no"></a></h3>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="处理行数据">处理行数据<a href="#处理行数据" class="hash-link" aria-label="处理行数据的直接链接" title="处理行数据的直接链接" translate="no"></a></h4>
+<p>自定义 <code>ReadListener</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>使用</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="处理表头">处理表头<a href="#处理表头" class="hash-link" aria-label="处理表头的直接链接" title="处理表头的直接链接" translate="no"></a></h4>
+<p>自定义 <code>ReadListener</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>使用</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="异常处理">异常处理<a href="#异常处理" class="hash-link" aria-label="异常处理的直接链接" title="异常处理的直接链接" translate="no"></a></h4>
+<p>自定义 <code>ReadListener</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>使用</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="分页处理">分页处理<a href="#分页处理" class="hash-link" aria-label="分页处理的直接链接" title="分页处理的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<blockquote>
+<p><strong>说明</strong>:</p>
+<ul>
+<li><code>PageReadListener</code> 是 FastExcel 提供的便捷工具类,支持基于分页的批量处理。</li>
+<li>默认每页大小为 1,可通过构造器指定。</li>
+</ul>
+</blockquote>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="analysiseventlistener">AnalysisEventListener<a href="#analysiseventlistener" class="hash-link" aria-label="AnalysisEventListener的直接链接" title="AnalysisEventListener的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-3">概述<a href="#概述-3" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p><code>AnalysisEventListener</code> 是 FastExcel 中用于处理读取 Excel 数据的核心监听器。它基于事件驱动机制,允许开发者在读取每一行数据时执行自定义操作,并在所有数据解析完成后进行相应处理。它通常用于流式读取大量数据,适合需要处理大数据量、进行批量操作(如批量插入数据库)的场景。</p>
+<p>核心特性:</p>
+<ul>
+<li><strong>逐行读取</strong>:<code>AnalysisEventListener</code> 按行读取 Excel 文件的数据,在读取每行数据时执行 <code>invoke</code> 方法,适合流式处理。</li>
+<li><strong>内存控制</strong>:可以设置 <code>BATCH_COUNT</code> 来控制每次处理的数据量,避免内存溢出。</li>
+<li><strong>批量处理</strong>:可以缓存一定数量的数据并批量处理,适用于大数据量场景。</li>
+<li><strong>事件驱动</strong>:当读取每一行数据时,调用 <code>invoke</code> 方法;所有数据读取完毕后,调用 <code>doAfterAllAnalysed</code> 方法。</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="方法-1">方法<a href="#方法-1" class="hash-link" aria-label="方法的直接链接" title="方法的直接链接" translate="no"></a></h3>
+<p><code>AnalysisEventListener</code> 主要包含以下方法:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>方法名</th><th>描述</th></tr></thead><tbody><tr><td><code>invoke(T data, AnalysisContext context)</code></td><td>当读取到一行数据时触发,<code>data</code> 为解析后的当前行数据,<code>context</code> 为读取上下文。</td></tr><tr><td><code>doAfterAllAnalysed(AnalysisContext context)</code></td><td>在所有数据解析完成后调用,用于资源清理或批量操作后处理。</td></tr><tr><td><code>onException(Exception exception, AnalysisContext context)</code> <em>(可选)</em></td><td>捕获并处理解析过程中抛出的异常,方便处理错误数据。</td></tr><tr><td><code>invokeHead(Map<Inte [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="使用场景-1">使用场景<a href="#使用场景-1" class="hash-link" aria-label="使用场景的直接链接" title="使用场景的直接链接" translate="no"></a></h3>
+<ul>
+<li><strong>流式数据处理</strong>:比如读取大量数据时,可以边读取边处理,减少内存消耗。</li>
+<li><strong>批量插入数据库</strong>:如批量处理 Excel 中的行数据并存储到数据库。</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="实现步骤-1">实现步骤<a href="#实现步骤-1" class="hash-link" aria-label="实现步骤的直接链接" title="实现步骤的直接链接" translate="no"></a></h3>
+<ol>
+<li>继承 <code>AnalysisEventListener</code> 并实现其方法。</li>
+<li>在读取时传入自定义监听器,通过 <code>FastExcel.read()</code> 注册。</li>
+</ol>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="示例-2">示例<a href="#示例-2" class="hash-link" aria-label="示例的直接链接" title="示例的直接链接" translate="no"></a></h3>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="处理每行数据并批量入库">处理每行数据并批量入库<a href="#处理每行数据并批量入库" class="hash-link" aria-label="处理每行数据并批量入库的直接链接" title="处理每行数据并批量入库的直接链接" translate="no"></a></h4>
+<p>继承 <code>AnalysisEventListener</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>使用</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="处理表头-1">处理表头<a href="#处理表头-1" class="hash-link" aria-label="处理表头的直接链接" title="处理表头的直接链接" translate="no"></a></h4>
+<p>可以使用 <code>invokeHead</code> 方法获取表头信息,用于处理动态表头场景,或者进行表头数据的自定义解析。</p>
+<p>继承 <code>AnalysisEventListener</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>使用</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="异常处理-1">异常处理<a href="#异常处理-1" class="hash-link" aria-label="异常处理的直接链接" title="异常处理的直接链接" translate="no"></a></h4>
+<p>提供了 <code>onException</code> 方法,开发者可以在读取过程中捕获异常,并进行处理(例如记录错误、跳过错误行等)。</p>
+<p>继承 <code>AnalysisEventListener</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>使用</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="与-readlistener-比较">与 <code>ReadListener</code> 比较<a href="#与-readlistener-比较" class="hash-link" aria-label="与-readlistener-比较的直接链接" title="与-readlistener-比较的直接链接" translate="no"></a></h3>
+<p><code>AnalysisEventListener</code> 和 <code>ReadListener</code> 都是 FastExcel 提供的接口,目的是为了让开发者在读取 Excel 时进行自定义处理,但它们在功能和使用场景上有一些关键的区别。</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="区别">区别<a href="#区别" class="hash-link" aria-label="区别的直接链接" title="区别的直接链接" translate="no"></a></h4>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>特性</th><th><code>AnalysisEventListener</code></th><th><code>ReadListener</code></th></tr></thead><tbody><tr><td><strong>接口设计</strong></td><td>基于事件驱动,处理每行数据并保存批量数据</td><td>基于回调接口,简化了处理,适合简单用法</td></tr><tr><td><strong>内存控制</strong></td><td>通过 <code>BATCH_COUNT</code> 控制内存使用,适合大数据量处理</td><td>无专门内存控制,通常用于简单的读取操作</td></tr><tr><td><strong>使用场景</strong></td><td>复杂场景,流式处理、批量入库、分页处理等</td><td>简单的按行数据处理和异常捕获</td></tr><tr><td><strong>方法</strong></td><td><code>invoke</code>, <co [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="如何选择">如何选择<a href="#如何选择" class="hash-link" aria-label="如何选择的直接链接" title="如何选择的直接链接" translate="no"></a></h4>
+<ul>
+<li>
+<p>使用 <code>AnalysisEventListener</code>:</p>
+<ul>
+<li>如果你需要控制内存消耗、批量处理数据或者需要处理复杂的读取逻辑(如分页读取、批量写入数据库)。</li>
+<li>适用于大数据量处理,提供更多的灵活性。</li>
+</ul>
+</li>
+<li>
+<p>使用 <code>ReadListener</code>:</p>
+<ul>
+<li>如果你希望简化代码,并且没有复杂的内存控制需求,只需处理每一行数据的逻辑。</li>
+<li>适合简单的 Excel 数据读取和异常捕获场景。
+总的来说,<code>ReadListener</code> 是更为简化的接口,适用于较为简单的场景,而 <code>AnalysisEventListener</code> 提供了更强的控制力和扩展性,适合复杂的数据处理需求。开发者可以根据实际需求选择合适的监听器。</li>
+</ul>
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="converter">Converter<a href="#converter" class="hash-link" aria-label="Converter的直接链接" title="Converter的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-4">概述<a href="#概述-4" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p><code>Converter</code>是 FastExcel 提供的接口,用于在处理 Excel 文件时对数据进行转换。允许开发者自定义操作,通过实现<code>Converter</code>接口,自定义数据转换逻辑。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="方法-2">方法<a href="#方法-2" class="hash-link" aria-label="方法的直接链接" title="方法的直接链接" translate="no"></a></h3>
+<p><code>Converter</code>是一个泛型接口,泛型类型是需要被转换的对象类型(如 <code>Date</code>)。其核心方法如下:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>方法名</th><th>描述</th></tr></thead><tbody><tr><td><code>Class<?> supportJavaTypeKey()</code><em>(可选)</em></td><td>返回支持的 Java 对象类型</td></tr><tr><td><code>CellDataTypeEnum supportExcelTypeKey()</code><em>(可选)</em></td><td>返回支持的 Excel 单元格类型,枚举类为 CellDataTypeEnum</td></tr><tr><td><code>T convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration)</code> <em>(可选)</em></td><td>将 Excel 单元格数据转换为 Java 对象 [...]
+<p>FastExcel 默认提供了很多常用类型的转换器, 并已默认在<code>DefaultConverterLoader</code>中注册。</p>
+<p>您可以自定义转换器,但类型不能与默认的类型重复。类型注册时,使用的<code>ConverterKeyBuild.buildKey(converter.supportJavaTypeKey(), converter.supportExcelTypeKey())</code>作为 key 值。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="使用场景-2">使用场景<a href="#使用场景-2" class="hash-link" aria-label="使用场景的直接链接" title="使用场景的直接链接" translate="no"></a></h3>
+<ul>
+<li><strong>数据转换</strong>:对 Excel 数据进行转换,如将日期转换为字符串、将字符串转换为日期等。</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="实现步骤-2">实现步骤<a href="#实现步骤-2" class="hash-link" aria-label="实现步骤的直接链接" title="实现步骤的直接链接" translate="no"></a></h3>
+<ol>
+<li>实现 <code>Converter</code> 接口并实现其方法。</li>
+<li>在读取或写入时传入自定义转换器。</li>
+</ol>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="示例-3">示例<a href="#示例-3" class="hash-link" aria-label="示例的直接链接" title="示例的直接链接" translate="no"></a></h3>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="timestampnumber-转换器">TimestampNumber 转换器<a href="#timestampnumber-转换器" class="hash-link" aria-label="TimestampNumber 转换器的直接链接" title="TimestampNumber 转换器的直接链接" translate="no"></a></h4>
+<p>实现 <code>Converter</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>使用</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/help/faq/index.html b/zh-cn/docs/help/faq/index.html
new file mode 100644
index 00000000..0245de03
--- /dev/null
+++ b/zh-cn/docs/help/faq/index.html
@@ -0,0 +1,264 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-help/faq" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">常见问题 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/help/faq/"><meta data- [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节介绍使用 FastExcel 时可能遇到的常见问题。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="功能限制">功能限制<a href="#功能限制" class="hash-link" aria-label="功能限制的直接链接" title="功能限制的直接链接" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> FastExcel支持哪些功能?有哪些不支持的功能?</li>
+<li><strong>A:</strong> FastExcel支持Excel文件的高效读写操作,包括CSV格式的支持。不支持的功能包括单个文件的并发写入、读取图片宏等。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="写操作的选择">写操作的选择<a href="#写操作的选择" class="hash-link" aria-label="写操作的选择的直接链接" title="写操作的选择的直接链接" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> 在写Excel时,何时选择填充方式,何时选择直接写入?</li>
+<li><strong>A:</strong> 对于格式复杂的导出内容,推荐使用模板填充;对于格式简单的场景,直接写入更为高效。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="lombok注解">Lombok注解<a href="#lombok注解" class="hash-link" aria-label="Lombok注解的直接链接" title="Lombok注解的直接链接" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> 使用FastExcel时,实体类中的Lombok注解有何作用?</li>
+<li><strong>A:</strong> 实体类中常用的Lombok注解如<code>@Getter</code>、<code>@Setter</code>、<code>@EqualsAndHashCode</code>用于自动生成getter、setter方法及equals和hashCode方法。如果不想使用这些自动生成的方法,可以自行实现。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="字段匹配">字段匹配<a href="#字段匹配" class="hash-link" aria-label="字段匹配的直接链接" title="字段匹配的直接链接" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> 如何解决部分字段无法正确读取或写入的问题?</li>
+<li><strong>A:</strong> 确保实体类字段遵循驼峰命名规则,避免使用<code>@Accessors(chain = true)</code>,推荐使用<code>@Builder</code>替代。另外,确保实体类中使用了<code>@ExcelProperty</code>注解标记参与读写的字段。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="兼容性问题">兼容性问题<a href="#兼容性问题" class="hash-link" aria-label="兼容性问题的直接链接" title="兼容性问题的直接链接" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> 使用FastExcel时遇到兼容性问题怎么办?</li>
+<li><strong>A:</strong> 常见的兼容性问题包括<code>NoSuchMethodException</code>、<code>ClassNotFoundException</code>、<code>NoClassDefFoundError</code>等,通常是由jar包冲突引起。建议检查并清理项目中的依赖,确保使用的FastExcel版本与项目中的其他库兼容。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="线上部署">线上部署<a href="#线上部署" class="hash-link" aria-label="线上部署的直接链接" title="线上部署的直接链接" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> 本地运行正常,为何线上环境出现问题?</li>
+<li><strong>A:</strong> 大多数情况下是由于线上环境缺少必要的字体库导致。可以通过安装字体库(如<code>dejavu-sans-fonts</code>和<code>fontconfig</code>)或启用内存处理模式来解决问题。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="并发读取">并发读取<a href="#并发读取" class="hash-link" aria-label="并发读取的直接链接" title="并发读取的直接链接" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> 为何不能将Listener交给Spring管理?</li>
+<li><strong>A:</strong> Listener不应被Spring管理,因为这会导致Listener变成单例模式,在并发读取文件时可能引发数据混淆问题。每次读取文件时应新建一个Listener实例。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="性能优化">性能优化<a href="#性能优化" class="hash-link" aria-label="性能优化的直接链接" title="性能优化的直接链接" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> 对于10M以上的大型文件,FastExcel提供了哪些读取策略?</li>
+<li><strong>A:</strong> FastExcel支持默认的大文件处理策略,以及可以自定义的高速模式和针对高并发、超大文件的优化设置。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="写入与格式设置">写入与格式设置<a href="#写入与格式设置" class="hash-link" aria-label="写入与格式设置的直接链接" title="写入与格式设置的直接链接" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> 如何设置单元格格式?</li>
+<li><strong>A:</strong> 可以通过在实体类属性上使用<code>@ContentStyle</code>等注解来设置单元格的格式,例如数字格式、日期格式等。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="导出问题">导出问题<a href="#导出问题" class="hash-link" aria-label="导出问题的直接链接" title="导出问题的直接链接" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> 导出的Excel文件无法打开或提示需要修复,如何解决?</li>
+<li><strong>A:</strong> 这通常是由于前端框架或后端拦截器修改了文件流导致。建议先测试本地导出,确保后端逻辑无误后再排查前端和网络相关的问题。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="大文件读取优化">大文件读取优化<a href="#大文件读取优化" class="hash-link" aria-label="大文件读取优化的直接链接" title="大文件读取优化的直接链接" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> FastExcel在读取大文件时如何优化内存使用?</li>
+<li><strong>A:</strong> FastExcel默认会自动判断大文件的处理方式。对于共享字符串超过5MB的文件,会使用文件存储策略,减少内存占用。可以通过设置<code>readCache</code>参数来开启极速模式,但这会增加内存消耗。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="并发处理">并发处理<a href="#并发处理" class="hash-link" aria-label="并发处理的直接链接" title="并发处理的直接链接" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> 如何在高并发环境下高效读取Excel文件?</li>
+<li><strong>A:</strong> 在高并发环境下,可以使用<code>SimpleReadCacheSelector</code>来优化读取性能。通过设置<code>maxUseMapCacheSize</code>和<code>maxCacheActivateBatchCount</code>参数,可以控制共享字符串的缓存策略,提高命中率,减少文件读取的延迟。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="字段映射">字段映射<a href="#字段映射" class="hash-link" aria-label="字段映射的直接链接" title="字段映射的直接链接" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> 如何处理实体类字段与Excel列名不一致的情况?</p>
+</li>
+<li>
+<p><strong>A:</strong> 可以使用<code>@ExcelProperty</code>注解来指定实体类字段与Excel列名的对应关系。例如:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@ExcelProperty</span><span class="token punctuation" [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="数据校验">数据校验<a href="#数据校验" class="hash-link" aria-label="数据校验的直接链接" title="数据校验的直接链接" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> 如何在读取Excel数据时进行校验?</p>
+</li>
+<li>
+<p><strong>A:</strong> 可以在<code>ReadListener</code>中实现数据校验逻辑。例如:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="自定义样式">自定义样式<a href="#自定义样式" class="hash-link" aria-label="自定义样式的直接链接" title="自定义样式的直接链接" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> 如何自定义单元格样式?</p>
+</li>
+<li>
+<p><strong>A:</strong> 可以通过实现<code>WriteHandler</code>接口来自定义单元格样式。例如:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="填充模式">填充模式<a href="#填充模式" class="hash-link" aria-label="填充模式的直接链接" title="填充模式的直接链接" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> 如何在填充模式下解决字段未替换的问题?</p>
+</li>
+<li>
+<p><strong>A:</strong> 使用<code>inMemory(true)</code>参数可以确保字段正确替换。例如:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token class-name">FastExcel</span><span class="token punctuation" style="color:#393A34">.</span><span cl [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="错误处理">错误处理<a href="#错误处理" class="hash-link" aria-label="错误处理的直接链接" title="错误处理的直接链接" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> 如何处理读取过程中抛出的异常?</p>
+</li>
+<li>
+<p><strong>A:</strong> 可以在<code>ReadListener</code>中捕获并处理异常。例如:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="依赖冲突">依赖冲突<a href="#依赖冲突" class="hash-link" aria-label="依赖冲突的直接链接" title="依赖冲突的直接链接" translate="no"></a></h2>
+<ul>
+<li><strong>Q:</strong> 如何解决依赖冲突问题?</li>
+<li><strong>A:</strong> 常见的依赖冲突包括POI、ehcache和commons-io等。建议检查项目中的依赖树,确保使用的版本与FastExcel兼容。可以通过Maven的<code>dependency:tree</code>命令查看依赖树。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="性能监控">性能监控<a href="#性能监控" class="hash-link" aria-label="性能监控的直接链接" title="性能监控的直接链接" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> 如何监控FastExcel的性能?</p>
+</li>
+<li>
+<p><strong>A:</strong> 可以通过开启调试日志来监控FastExcel的性能。例如:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token class-name">LoggerContext</span><span class="token plain"> lc </span><span class="token operator" [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="多sheet读取">多Sheet读取<a href="#多sheet读取" class="hash-link" aria-label="多Sheet读取的直接链接" title="多Sheet读取的直接链接" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> 如何读取包含多个Sheet的Excel文件?</p>
+</li>
+<li>
+<p><strong>A:</strong> 可以使用<code>MultipleSheetsListener</code>来处理多Sheet的读取。例如:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token class-name">FastExcel</span><span class="token punctuation" style="color:#393A34">.</span><span cl [...]
+<p>或者,可以在读取前获取所有Sheet的信息:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token class-name">ExcelReader</span><span class="token plain"> excelReader </span><span class="token ope [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="获取excel总行数">获取Excel总行数<a href="#获取excel总行数" class="hash-link" aria-label="获取Excel总行数的直接链接" title="获取Excel总行数的直接链接" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> 如何获取Excel文件的总行数?</p>
+</li>
+<li>
+<p><strong>A:</strong> 可以在监听器中使用<code>analysisContext.readSheetHolder().getApproximateTotalRowNumber()</code>方法获取大致的行数。例如:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Override</span><span class="token plain"></span><br [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="内存模式">内存模式<a href="#内存模式" class="hash-link" aria-label="内存模式的直接链接" title="内存模式的直接链接" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> 如何使用内存模式处理Excel文件?</p>
+</li>
+<li>
+<p><strong>A:</strong> 内存模式适合处理较小的文件,可以显著提高处理速度。例如:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token class-name">FastExcel</span><span class="token punctuation" style="color:#393A34">.</span><span cl [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="读取csv文件">读取CSV文件<a href="#读取csv文件" class="hash-link" aria-label="读取CSV文件的直接链接" title="读取CSV文件的直接链接" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> 如何读取CSV文件并修改分隔符?</p>
+</li>
+<li>
+<p><strong>A:</strong> 可以通过设置<code>csv()</code>中的分隔符来读取CSV文件。例如:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token class-name">FastExcel</span><span class="token punctuation" style="color:#393A34">.</span><span cl [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="自定义读取监听器">自定义读取监听器<a href="#自定义读取监听器" class="hash-link" aria-label="自定义读取监听器的直接链接" title="自定义读取监听器的直接链接" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> 如何自定义读取监听器?</p>
+</li>
+<li>
+<p><strong>A:</strong> 可以继承<code>AnalysisEventListener</code>类并实现自己的逻辑。例如:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="读取时忽略未标注的字段">读取时忽略未标注的字段<a href="#读取时忽略未标注的字段" class="hash-link" aria-label="读取时忽略未标注的字段的直接链接" title="读取时忽略未标注的字段的直接链接" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> 如何在读取时忽略未标注<code>@ExcelProperty</code>的字段?</p>
+</li>
+<li>
+<p><strong>A:</strong> 在类的最上面加入<code>@ExcelIgnoreUnannotated</code>注解。例如:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Data</span><span class="token plain"></span><br></s [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="导出时设置表头样式">导出时设置表头样式<a href="#导出时设置表头样式" class="hash-link" aria-label="导出时设置表头样式的直接链接" title="导出时设置表头样式的直接链接" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> 如何在导出时设置表头样式?</p>
+</li>
+<li>
+<p><strong>A:</strong> 可以通过实现<code>WriteHandler</code>接口来自定义表头样式。例如:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="导出时设置单元格数据格式">导出时设置单元格数据格式<a href="#导出时设置单元格数据格式" class="hash-link" aria-label="导出时设置单元格数据格式的直接链接" title="导出时设置单元格数据格式的直接链接" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> 如何在导出时设置单元格的数据格式?</p>
+</li>
+<li>
+<p><strong>A:</strong> 可以在实体类属性上使用<code>@ContentStyle</code>注解来设置数据格式。例如:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@ExcelProperty</span><span class="token punctuation" [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="导出时合并单元格">导出时合并单元格<a href="#导出时合并单元格" class="hash-link" aria-label="导出时合并单元格的直接链接" title="导出时合并单元格的直接链接" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> 如何在导出时合并单元格?</p>
+</li>
+<li>
+<p><strong>A:</strong> 可以通过实现<code>WriteHandler</code>接口来自定义合并单元格的逻辑。例如:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="导出时设置字体">导出时设置字体<a href="#导出时设置字体" class="hash-link" aria-label="导出时设置字体的直接链接" title="导出时设置字体的直接链接" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> 如何在导出时设置单元格的字体?</p>
+</li>
+<li>
+<p><strong>A:</strong> 可以通过创建<code>Font</code>对象并应用到<code>CellStyle</code>中来设置字体。例如:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="读取时处理空值">读取时处理空值<a href="#读取时处理空值" class="hash-link" aria-label="读取时处理空值的直接链接" title="读取时处理空值的直接链接" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> 如何在读取时处理空值?</p>
+</li>
+<li>
+<p><strong>A:</strong> 可以在<code>ReadListener</code>中处理空值。例如:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="读取时过滤数据">读取时过滤数据<a href="#读取时过滤数据" class="hash-link" aria-label="读取时过滤数据的直接链接" title="读取时过滤数据的直接链接" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> 如何在读取时过滤数据?</p>
+</li>
+<li>
+<p><strong>A:</strong> 可以在<code>ReadListener</code>中实现过滤逻辑。例如:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/faq.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_eJSs" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/help/large-data/index.html b/zh-cn/docs/help/large-data/index.html
new file mode 100644
index 00000000..b6fa1d50
--- /dev/null
+++ b/zh-cn/docs/help/large-data/index.html
@@ -0,0 +1,31 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-help/large-data" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">大数据量文件 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/help/large-data/"><m [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="读取">读取<a href="#读取" class="hash-link" aria-label="读取的直接链接" title="读取的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>当需要读取 10M 大小以上的文件时,Excel 03 没有办法处理,相对内存占用大很多。Excel 07 版本有个<a href="https://learn.microsoft.com/en-us/office/open-xml/spreadsheet/working-with-the-shared-string-table" target="_blank" rel="noopener noreferrer">共享字符串</a>的概念,这个会非常占用内存,如果全部读取到内存的话,大概是 Excel 文件的大小的 3-10 倍,所以 FastExcel 用先存储文件的,然后再反序列化去读取的策略来节约内存。当然需要通过文件反序列化以后,效率会降低,大概降低 30-50%(不一定,也看命中率,可能会超过100%)。</p>
+<p>如果对读取效率感觉还能接受,就用默认的,永久占用(单个 Excel 读取整个过程)一般不会超过50M(大概率就30M),剩下临时的 GC 会很快回收。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="默认策略">默认策略<a href="#默认策略" class="hash-link" aria-label="默认策略的直接链接" title="默认策略的直接链接" translate="no"></a></h3>
+<p>默认大文件处理会自动判断,共享字符串 5M 以下会使用内存存储,大概占用 15-50M 的内存,超过 5M 则使用文件存储,然后文件存储也要设置多内存用来存放临时的共享字符串,默认 20M。除了共享字符串占用内存外,其他占用较少,所以可以预估 10M,所以默认大概 30M 就能读取一个超级大的文件。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="配置内存">配置内存<a href="#配置内存" class="hash-link" aria-label="配置内存的直接链接" title="配置内存的直接链接" translate="no"></a></h3>
+<p>如果想自定义设置,首先要确定大概愿意花多少内存来读取一个超级大的 Excel,比如希望读取 Excel 最多占用 100M 内存(是读取过程中永久占用,新生代马上回收的不算),那就设置使用文件来存储共享字符串的大小判断为 20M (小于20M存内存,大于存临时文件),然后设置文件存储时临时共享字符串占用内存大小 90M 差不多。</p>
+<p>如果最大文件条数也就十几二十万,然后 Excel 也就是十几二十M,而且不会有很高的并发,内存也较大</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// 强制使用内存存储,这样大概一个 20M 的 Excel 使用 150M(很多临时对象,所以1 [...]
+<p>对并发要求较高,而且都是经常有超级大文件</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// 第一个参数的意思是多少M共享字符串以后,采用文件存储(单位MB,默认5M)</span><s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="关于-maxcacheactivatesize">关于 maxCacheActivateSize<a href="#关于-maxcacheactivatesize" class="hash-link" aria-label="关于 maxCacheActivateSize的直接链接" title="关于 maxCacheActivateSize的直接链接" translate="no"></a></h3>
+<p>FastExcel 在使用文件存储的时候,会把共享字符串拆分成 <strong>1000</strong> 条一批,然后放到文件存储。然后 Excel 来读取共享字符串大概率是按照顺序的,所以默认 20M 的 1000 条的数据放在内存,命中后直接返回,没命中去读文件。所以不能设置太小,太小了,很难命中,一直去读取文件,太大了的话会占用过多的内存。</p>
+<p>判断 maxCacheActivateSize是否需要调整,开启<code>debug</code>日志会输出<code>Already put :4000000</code> 最后一次输出,大概可以得出值为 400W,然后看<code>Cache misses count:4001</code>得到值为 4K,<code>400W/4K=1000</code> 这代表已经 <code>maxCacheActivateSize</code> 已经非常合理了。如果小于 500 问题就非常大了,500 到 1000 应该都还行。</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/help/parameter/index.html b/zh-cn/docs/help/parameter/index.html
new file mode 100644
index 00000000..63f86e6d
--- /dev/null
+++ b/zh-cn/docs/help/parameter/index.html
@@ -0,0 +1,413 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-help/parameter" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">参数 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/help/parameter/"><meta d [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节介绍使用 FastExcel 中的参数。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="类图">类图<a href="#类图" class="hash-link" aria-label="类图的直接链接" title="类图的直接链接" translate="no"></a></h2>
+<!-- -->
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="通用参数">通用参数<a href="#通用参数" class="hash-link" aria-label="通用参数的直接链接" title="通用参数的直接链接" translate="no"></a></h2>
+<p>所有参数,都继承自<code>BasicParameter</code></p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>名称</th><th>默认值</th><th>描述</th></tr></thead><tbody><tr><td>head</td><td>空</td><td>与<code>clazz</code>二选一。读取文件头对应的列表,会根据列表匹配数据,建议使用class</td></tr><tr><td>clazz</td><td>空</td><td>与<code>head</code>二选一。读取文件的头对应的class,也可以使用注解。如果两个都不指定,则会读取全部数据</td></tr><tr><td>customConverterList</td><td>空</td><td>默认加载了很多转换器,这里可以加入不支持的字段</td></tr><tr><td>autoTrim</td><td>true</td><td>会对表头、读取数据等进行自动去除前后空格</td></tr><tr><td>use1904windowing</td><td>false</td><td>excel中时间是存储1900年起的一个双精度浮点数,但 [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="读操作">读操作<a href="#读操作" class="hash-link" aria-label="读操作的直接链接" title="读操作的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="readbasicparameter-通用参数">ReadBasicParameter 通用参数<a href="#readbasicparameter-通用参数" class="hash-link" aria-label="ReadBasicParameter 通用参数的直接链接" title="ReadBasicParameter 通用参数的直接链接" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>名称</th><th>默认值</th><th>描述</th></tr></thead><tbody><tr><td>customReadListenerList</td><td>空</td><td>可以注册多个监听器,读取excel的时候会不断的回调监听器中的方法</td></tr><tr><td>headRowNumber</td><td>1</td><td>excel中头的行数,默认1行</td></tr></tbody></table>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="readworkbook-参数">ReadWorkbook 参数<a href="#readworkbook-参数" class="hash-link" aria-label="ReadWorkbook 参数的直接链接" title="ReadWorkbook 参数的直接链接" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>名称</th><th>默认值</th><th>描述</th></tr></thead><tbody><tr><td>excelType</td><td>空</td><td>当前excel的类型,支持XLS、XLSX、CSV</td></tr><tr><td>inputStream</td><td>空</td><td>与<code>file</code>二选一。读取文件的流,如果接收到的是流就只用,不用流建议使用<code>file</code>参数。因为使用了<code>inputStream</code> FastExcel会帮忙创建临时文件,最终还是<code>file</code></td></tr><tr><td>file</td><td>空</td><td>与<code>inputStream</code>二选一。读取文件的文件。</td></tr><tr><td>mandatoryUseInputStream</td><td>false</td><td>强制使用 <code>inputStream</code> [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="readsheet-参数">ReadSheet 参数<a href="#readsheet-参数" class="hash-link" aria-label="ReadSheet 参数的直接链接" title="ReadSheet 参数的直接链接" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>名称</th><th>默认值</th><th>描述</th></tr></thead><tbody><tr><td>sheetNo</td><td>0</td><td>需要读取Sheet的编码,建议使用这个来指定读取哪个Sheet</td></tr><tr><td>sheetName</td><td>空</td><td>根据名字去匹配Sheet</td></tr><tr><td>sheetHidden</td><td>false</td><td>Sheet 页普通隐藏状态</td></tr><tr><td>sheetVeryHidden</td><td>false</td><td>Sheet 页绝对隐藏状态</td></tr><tr><td>numRows</td><td>0</td><td>读取指定的行数,0表示不限制行数,即读取所有行</td></tr></tbody></table>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="写操作">写操作<a href="#写操作" class="hash-link" aria-label="写操作的直接链接" title="写操作的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="writebasicparameter-通用参数">WriteBasicParameter 通用参数<a href="#writebasicparameter-通用参数" class="hash-link" aria-label="WriteBasicParameter 通用参数的直接链接" title="WriteBasicParameter 通用参数的直接链接" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>名称</th><th>默认值</th><th>描述</th></tr></thead><tbody><tr><td>customWriteHandlerList</td><td>空</td><td>写的处理器。可以实现<code>WorkbookWriteHandler</code>,<code>SheetWriteHandler</code>,<code>RowWriteHandler</code>,<code>CellWriteHandler</code>,在写入excel的不同阶段会调用</td></tr><tr><td>relativeHeadRowIndex</td><td>0</td><td>写入到excel和上面空开几行</td></tr><tr><td>needHead</td><td>true</td><td>是否需要写入头到excel</td></tr><tr><td>useDefaultStyle</td><td>true</td><td>是否使用默认的样式</td></tr><tr><td>automa [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="writeworkbook-参数">WriteWorkbook 参数<a href="#writeworkbook-参数" class="hash-link" aria-label="WriteWorkbook 参数的直接链接" title="WriteWorkbook 参数的直接链接" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>名称</th><th>默认值</th><th>描述</th></tr></thead><tbody><tr><td>excelType</td><td>空</td><td>当前excel的类型,支持XLS、XLSX、CSV</td></tr><tr><td>outputStream</td><td>空</td><td>与<code>file</code>二选一。写入文件的流</td></tr><tr><td>file</td><td>空</td><td>与<code>outputStream</code>二选一。写入的文件</td></tr><tr><td>templateInputStream</td><td>空</td><td>模板的文件流</td></tr><tr><td>templateFile</td><td>空</td><td>模板文件</td></tr><tr><td>charset</td><td>Charset#defaultCharset</td><td>只有csv文件有用,写入文件的时候使用的编码</td [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="writesheet-参数">WriteSheet 参数<a href="#writesheet-参数" class="hash-link" aria-label="WriteSheet 参数的直接链接" title="WriteSheet 参数的直接链接" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>名称</th><th>默认值</th><th>描述</th></tr></thead><tbody><tr><td>sheetNo</td><td>0</td><td>需要写入的编码</td></tr><tr><td>sheetName</td><td>空</td><td>需要写的Sheet名称,默认同<code>sheetNo</code></td></tr></tbody></table>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="writetable-参数">WriteTable 参数<a href="#writetable-参数" class="hash-link" aria-label="WriteTable 参数的直接链接" title="WriteTable 参数的直接链接" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>名称</th><th>默认值</th><th>描述</th></tr></thead><tbody><tr><td>tableNo</td><td>0</td><td>需要写入的编码</td></tr></tbody></table></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/parameter.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="current [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/index.html b/zh-cn/docs/index.html
new file mode 100644
index 00000000..33a7ccb0
--- /dev/null
+++ b/zh-cn/docs/index.html
@@ -0,0 +1,33 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-introduce" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">介绍 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/"><meta data-rh="true" p [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="什么是-fastexcel">什么是 FastExcel<a href="#什么是-fastexcel" class="hash-link" aria-label="什么是 FastExcel的直接链接" title="什么是 FastExcel的直接链接" translate="no"></a></h2>
+<p>快速、简洁、解决大文件内存溢出的 Java 处理 Excel 工具。</p>
+<p>FastExcel 将始终坚持免费开源,并采用商业友好的 Apache 协议,使其适用于任何商业化场景。这为开发者和企业提供了极大的自由度和灵活性。</p>
+<p>我们计划在未来推出更多新特性,以不断提升用户体验和工具实用性。欢迎大家持续关注 FastExcel 的发展,FastExcel 致力于成为您处理 Excel 文件的最佳选择。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="主要特性">主要特性<a href="#主要特性" class="hash-link" aria-label="主要特性的直接链接" title="主要特性的直接链接" translate="no"></a></h2>
+<ul>
+<li><strong>高性能读写</strong>:FastExcel 专注于性能优化,能够高效处理大规模的 Excel 数据。相比一些传统的 Excel 处理库,它能显著降低内存占用。</li>
+<li><strong>简单易用</strong>:该库提供了简洁直观的 API,使得开发者可以轻松集成到项目中,无论是简单的 Excel 操作还是复杂的数据处理都能快速上手。</li>
+<li><strong>流式操作</strong>:FastExcel 支持流式读取,将一次性加载大量数据的问题降到最低。这种设计方式在处理数十万甚至上百万行的数据时尤为重要。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="示例">示例<a href="#示例" class="hash-link" aria-label="示例的直接链接" title="示例的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="读取">读取<a href="#读取" class="hash-link" aria-label="读取的直接链接" title="读取的直接链接" translate="no"></a></h3>
+<p>下面是读取 Excel 文档的例子:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// 实现 ReadListener 接口,设置读取数据的操作</span><span class [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="写入">写入<a href="#写入" class="hash-link" aria-label="写入的直接链接" title="写入的直接链接" translate="no"></a></h3>
+<p>下面是一个创建 Excel 文档的简单例子:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// 示例数据类</span><span class="token plain"></span>< [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/quickstart/guide/index.html b/zh-cn/docs/quickstart/guide/index.html
new file mode 100644
index 00000000..1d12025f
--- /dev/null
+++ b/zh-cn/docs/quickstart/guide/index.html
@@ -0,0 +1,63 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-quickstart/guide" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">指南 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/quickstart/guide/"><meta [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="兼容说明">兼容说明<a href="#兼容说明" class="hash-link" aria-label="兼容说明的直接链接" title="兼容说明的直接链接" translate="no"></a></h2>
+<p>下表列出了各版本 FastExcel 基础库对 Java 语言版本最低要求的情况:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>版本</th><th>jdk版本支持范围</th><th>备注</th></tr></thead><tbody><tr><td>1.3.x</td><td>jdk8 - jdk25</td><td></td></tr><tr><td>1.2.x</td><td>jdk8 - jdk21</td><td></td></tr><tr><td>1.1.x</td><td>jdk8 - jdk21</td><td></td></tr><tr><td>1.0.x</td><td>jdk8 - jdk21</td><td></td></tr></tbody></table>
+<p>我们强烈建议您使用最新版本的 FastExcel,因为最新版本中的性能优化、BUG修复和新功能都会让您的使用更加方便。</p>
+<blockquote>
+<p>当前 FastExcel 底层使用 poi 作为基础包,如果您的项目中已经有 poi 相关组件,需要您手动排除 poi 的相关 jar 包。</p>
+</blockquote>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="版本更新">版本更新<a href="#版本更新" class="hash-link" aria-label="版本更新的直接链接" title="版本更新的直接链接" translate="no"></a></h2>
+<p>您可以在 <a href="https://github.com/fast-excel/fastexcel/blob/main/CHANGELOG.md" target="_blank" rel="noopener noreferrer">版本升级详情</a>
+中查询到具体的版本更新细节。您也可以在<a href="https://mvnrepository.com/artifact/cn.idev.excel/fastexcel" target="_blank" rel="noopener noreferrer">Maven 中心仓库</a>
+中查询到所有的版本。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="maven">Maven<a href="#maven" class="hash-link" aria-label="Maven的直接链接" title="Maven的直接链接" translate="no"></a></h2>
+<p>如果您使用 Maven 进行项目构建,请在 <code>pom.xml</code> 文件中引入以下配置:</p>
+<div class="language-xml codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-xml codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34" [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="gradle">Gradle<a href="#gradle" class="hash-link" aria-label="Gradle的直接链接" title="Gradle的直接链接" translate="no"></a></h2>
+<p>如果您使用 Gradle 进行项目构建,请在 <code>build.gradle</code> 文件中引入以下配置:</p>
+<div class="language-gradle codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-gradle codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token plain">dependencies {</span><br></span><span class="token-line" style="color:#393A34"><span cl [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/quickstart/simple-example/index.html b/zh-cn/docs/quickstart/simple-example/index.html
new file mode 100644
index 00000000..c09740b5
--- /dev/null
+++ b/zh-cn/docs/quickstart/simple-example/index.html
@@ -0,0 +1,22 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-quickstart/simple-example" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">简单示例 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/quickstart/simple-exam [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="读取">读取<a href="#读取" class="hash-link" aria-label="读取的直接链接" title="读取的直接链接" translate="no"></a></h2>
+<p>下面是读取 Excel 文件的例子:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// 实现 ReadListener 接口,设置读取数据的操作</span><span class [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="写入">写入<a href="#写入" class="hash-link" aria-label="写入的直接链接" title="写入的直接链接" translate="no"></a></h2>
+<p>下面是一个创建 Excel 文档的简单例子:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// 示例数据类</span><span class="token plain"></span>< [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/read/converter/index.html b/zh-cn/docs/read/converter/index.html
new file mode 100644
index 00000000..50f48875
--- /dev/null
+++ b/zh-cn/docs/read/converter/index.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/converter" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">格式转换 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/read/converter/"><meta [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>FastExcel 支持日期、数字、自定义格式转换。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h2>
+<p>在使用过程中,我们可能需要对读取或写入的数据进行特定格式的转换。FastExcel 提供了灵活的转换器机制,允许用户自定义数据转换规则,以满足各种业务需求。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="示例">示例<a href="#示例" class="hash-link" aria-label="示例的直接链接" title="示例的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-类">POJO 类<a href="#pojo-类" class="hash-link" aria-label="POJO 类的直接链接" title="POJO 类的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="转换器">转换器<a href="#转换器" class="hash-link" aria-label="转换器的直接链接" title="转换器的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/read/csv/index.html b/zh-cn/docs/read/csv/index.html
new file mode 100644
index 00000000..14ad86a3
--- /dev/null
+++ b/zh-cn/docs/read/csv/index.html
@@ -0,0 +1,90 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/csv" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">CSV | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/read/csv/"><meta data-r [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节介绍如何使用 FastExcel 来读取自定义 CSV 文件。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h2>
+<p>FastExcel 通过不同的参数设计进行 CSV 的读取。其底层使用了<a href="https://commons.apache.org/proper/commons-csv" target="_blank" rel="noopener noreferrer">Apache Commons CSV</a>,也支持通过直接设置<a href="https://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/CSVFormat.html" target="_blank" rel="noopener noreferrer">CSVFormat</a>进行设定来达成读取的目标。</p>
+<p>主要的参数如下:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th style="text-align:left">名称</th><th style="text-align:left">默认值</th><th style="text-align:left">描述</th></tr></thead><tbody><tr><td style="text-align:left"><code>delimiter</code></td><td style="text-align:left"><code>,</code> (逗号)</td><td style="text-align:left">字段分隔符。推荐使用 <code>CsvConstant</code> 中预定义的常量,例如 <code>CsvConstant.AT</code> (<code>@</code>)、<code>CsvConstant.TAB</code> 等。</td></tr><tr><td style="text-align:left"><code>quote</code></td><td style="text-align [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="参数详解与示例">参数详解与示例<a href="#参数详解与示例" class="hash-link" aria-label="参数详解与示例的直接链接" title="参数详解与示例的直接链接" translate="no"></a></h2>
+<p>下面将详细介绍每一个参数的用法,并提供代码示例。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="delimiter">delimiter<a href="#delimiter" class="hash-link" aria-label="delimiter的直接链接" title="delimiter的直接链接" translate="no"></a></h3>
+<p><code>delimiter</code> 用于指定 CSV 文件中的字段分隔符。默认值为英文逗号 <code>,</code>。同时,FastExcel 提供了一些常量<code>CsvConstant</code>,用于简化使用</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h4>
+<p>如果 CSV 文件使用 <code>\u0000</code> 作为分隔符,可以如下设置:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="quote">quote<a href="#quote" class="hash-link" aria-label="quote的直接链接" title="quote的直接链接" translate="no"></a></h3>
+<p><code>quote</code> 用于指定包裹字段的引用符号。默认值为双引号 <code>"</code>。当字段内容本身包含分隔符或换行符时,建议设置。</p>
+<blockquote>
+<p>注意不可和 <code>recordSeparator</code> 的设置重复,建议结合<code>QuoteMode</code>使用</p>
+</blockquote>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-1">代码示例<a href="#代码示例-1" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="recordseparator">recordSeparator<a href="#recordseparator" class="hash-link" aria-label="recordSeparator的直接链接" title="recordSeparator的直接链接" translate="no"></a></h3>
+<p><code>recordSeparator</code> 用于指定文件中的换行符。不同操作系统的换行符可能不同(例如,Windows 使用 <code>CRLF</code>,而 Unix/Linux 使用 <code>LF</code>)。</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-2">代码示例<a href="#代码示例-2" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="nullstring">nullString<a href="#nullstring" class="hash-link" aria-label="nullString的直接链接" title="nullString的直接链接" translate="no"></a></h3>
+<p><code>nullString</code> 用于定义文件中代表 <code>null</code> 值的特定字符串。例如,可以将字符串 <code>"N/A"</code> 解析为 <code>null</code> 对象。</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-3">代码示例<a href="#代码示例-3" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="escape">escape<a href="#escape" class="hash-link" aria-label="escape的直接链接" title="escape的直接链接" translate="no"></a></h3>
+<p><code>escape</code> 用于指定转义字符,当引用符号(<code>quote</code>)本身出现在字段值中时,可以使用转义字符来处理。</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-4">代码示例<a href="#代码示例-4" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="csvformat设置详解与示例">CSVFormat设置详解与示例<a href="#csvformat设置详解与示例" class="hash-link" aria-label="CSVFormat设置详解与示例的直接链接" title="CSVFormat设置详解与示例的直接链接" translate="no"></a></h2>
+<p>支持直接构建一个<code>CSVFormat</code>对象。</p>
+<blockquote>
+<p>目前 FastExcel 仍然支持,但并非最推荐的使用方法。</p>
+</blockquote>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-5">代码示例<a href="#代码示例-5" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/read/exception/index.html b/zh-cn/docs/read/exception/index.html
new file mode 100644
index 00000000..b957b460
--- /dev/null
+++ b/zh-cn/docs/read/exception/index.html
@@ -0,0 +1,23 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/exception" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">异常处理 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/read/exception/"><meta [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节将介绍如何处理异常。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h2>
+<p>通过重写监听器的 <code>onException</code> 方法处理数据转换或其他读取异常。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="数据监听器">数据监听器<a href="#数据监听器" class="hash-link" aria-label="数据监听器的直接链接" title="数据监听器的直接链接" translate="no"></a></h2>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h2>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/read/extra/index.html b/zh-cn/docs/read/extra/index.html
new file mode 100644
index 00000000..41f79ce4
--- /dev/null
+++ b/zh-cn/docs/read/extra/index.html
@@ -0,0 +1,40 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/extra" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">额外信息 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/read/extra/"><meta dat [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节将介绍如何读取额外的信息,如批注、超链接、合并单元格等。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="批注">批注<a href="#批注" class="hash-link" aria-label="批注的直接链接" title="批注的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>读取额外的批注信息。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="数据监听器">数据监听器<a href="#数据监听器" class="hash-link" aria-label="数据监听器的直接链接" title="数据监听器的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="超链接">超链接<a href="#超链接" class="hash-link" aria-label="超链接的直接链接" title="超链接的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-1">概述<a href="#概述-1" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>读取额外的超链接信息。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="数据监听器-1">数据监听器<a href="#数据监听器-1" class="hash-link" aria-label="数据监听器的直接链接" title="数据监听器的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-1">代码示例<a href="#代码示例-1" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="合并单元格">合并单元格<a href="#合并单元格" class="hash-link" aria-label="合并单元格的直接链接" title="合并单元格的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-2">概述<a href="#概述-2" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>读取合并单元格范围信息。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="数据监听器-2">数据监听器<a href="#数据监听器-2" class="hash-link" aria-label="数据监听器的直接链接" title="数据监听器的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-2">代码示例<a href="#代码示例-2" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/read/head/index.html b/zh-cn/docs/read/head/index.html
new file mode 100644
index 00000000..c741bad3
--- /dev/null
+++ b/zh-cn/docs/read/head/index.html
@@ -0,0 +1,36 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/head" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">表头 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/read/head/"><meta data-r [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节将介绍读取 Excel 中的表头数据。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="读取表头数据">读取表头数据<a href="#读取表头数据" class="hash-link" aria-label="读取表头数据的直接链接" title="读取表头数据的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>可以通过重写监听器的 <code>invokeHead</code> 方法获取表头信息。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="数据监听器">数据监听器<a href="#数据监听器" class="hash-link" aria-label="数据监听器的直接链接" title="数据监听器的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="多行表头读取">多行表头读取<a href="#多行表头读取" class="hash-link" aria-label="多行表头读取的直接链接" title="多行表头读取的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-1">概述<a href="#概述-1" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>通过设置 <code>headRowNumber</code> 参数或根据实体类的表头注解自动解析多行表头。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-1">代码示例<a href="#代码示例-1" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="表头-pojo">表头 POJO<a href="#表头-pojo" class="hash-link" aria-label="表头 POJO的直接链接" title="表头 POJO的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-2">概述<a href="#概述-2" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>通过使用 <code>head()</code> 方法设置表头 POJO。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-2">代码示例<a href="#代码示例-2" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/read/num-rows/index.html b/zh-cn/docs/read/num-rows/index.html
new file mode 100644
index 00000000..15b24922
--- /dev/null
+++ b/zh-cn/docs/read/num-rows/index.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/num-rows" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">行数 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/read/num-rows/"><meta da [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节将介绍读取指定的行数。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h2>
+<p>在数据分析和处理过程中,快速查看 Excel 文件的前几行内容可以帮助我们更好地理解数据结构和内容。默认情况下,FastExcel 会读取整个 Excel 文件的所有数据,通过设置<code>numRows</code>参数可以限制读取的行数。0表示不限制行数,即读取所有行,行数包括表头行。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="所有的-sheet">所有的 Sheet<a href="#所有的-sheet" class="hash-link" aria-label="所有的 Sheet的直接链接" title="所有的 Sheet的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="单个-sheet">单个 sheet<a href="#单个-sheet" class="hash-link" aria-label="单个 sheet的直接链接" title="单个 sheet的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-1">代码示例<a href="#代码示例-1" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/read/pojo/index.html b/zh-cn/docs/read/pojo/index.html
new file mode 100644
index 00000000..575f2acb
--- /dev/null
+++ b/zh-cn/docs/read/pojo/index.html
@@ -0,0 +1,39 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/pojo" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">实体类 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/read/pojo/"><meta data- [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节将介绍通过设置 POJO 来读取数据的使用</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="按列名或列下标读取">按列名或列下标读取<a href="#按列名或列下标读取" class="hash-link" aria-label="按列名或列下标读取的直接链接" title="按列名或列下标读取的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>您可以通过指定<strong>列名</strong>或<strong>列下标</strong>来读取 Excel 数据。这使得与动态生成的 Excel 文件交互更加灵活。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="示例代码">示例代码<a href="#示例代码" class="hash-link" aria-label="示例代码的直接链接" title="示例代码的直接链接" translate="no"></a></h3>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="pojo类">POJO类<a href="#pojo类" class="hash-link" aria-label="POJO类的直接链接" title="POJO类的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="单元格对象">单元格对象<a href="#单元格对象" class="hash-link" aria-label="单元格对象的直接链接" title="单元格对象的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-1">概述<a href="#概述-1" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>使用 <code>CellData</code> 类型接收单元格数据以支持公式和多种单元格格式。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo类-1">POJO类<a href="#pojo类-1" class="hash-link" aria-label="POJO类的直接链接" title="POJO类的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-1">代码示例<a href="#代码示例-1" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="无-pojo-类与监听器">无 POJO 类与监听器<a href="#无-pojo-类与监听器" class="hash-link" aria-label="无 POJO 类与监听器的直接链接" title="无 POJO 类与监听器的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-2">概述<a href="#概述-2" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>FastExcel 支持不定义 POJO 类直接读取 Excel 文件,通过 <code>Map<Integer, String></code> 直接读取数据。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="数据监听器">数据监听器<a href="#数据监听器" class="hash-link" aria-label="数据监听器的直接链接" title="数据监听器的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/read/sheet/index.html b/zh-cn/docs/read/sheet/index.html
new file mode 100644
index 00000000..1e17c6c9
--- /dev/null
+++ b/zh-cn/docs/read/sheet/index.html
@@ -0,0 +1,38 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/sheet" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Sheet | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/read/sheet/"><meta da [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节将介绍设置 Sheet 来读取数据的使用</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="读取多个-sheet">读取多个 Sheet<a href="#读取多个-sheet" class="hash-link" aria-label="读取多个 Sheet的直接链接" title="读取多个 Sheet的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>可以读取 Excel 文件中的多个 Sheet,且同一个 Sheet 不可重复读取。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="读取全部-sheet">读取全部 Sheet<a href="#读取全部-sheet" class="hash-link" aria-label="读取全部 Sheet的直接链接" title="读取全部 Sheet的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="读取指定-sheet">读取指定 Sheet<a href="#读取指定-sheet" class="hash-link" aria-label="读取指定 Sheet的直接链接" title="读取指定 Sheet的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-1">概述<a href="#概述-1" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>可以读取 Excel 文件具体的某个 Sheet,支持指定 Sheet 的索引或名称</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-1">代码示例<a href="#代码示例-1" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="忽略隐藏-sheet">忽略隐藏 Sheet<a href="#忽略隐藏-sheet" class="hash-link" aria-label="忽略隐藏 Sheet的直接链接" title="忽略隐藏 Sheet的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-2">概述<a href="#概述-2" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>通过设置 <code>ignoreHiddenSheet</code> 参数为 true ,此时不会读取“隐藏”状态的 Sheet 中的数据。支持“普通隐藏”和“绝对隐藏”。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-2">代码示例<a href="#代码示例-2" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<blockquote>
+<p>微软 Excel 中,Sheet 有“普通隐藏(xlSheetHidden)”和“绝对隐藏(xlSheetVeryHidden)”两种状态,绝对隐藏可通过 <code>VBA</code> 来设置,此时隐藏的 Sheet 无法通过“取消隐藏”的操作来取消。</p>
+</blockquote></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/read/sheet.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_eJSs" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/read/simple/index.html b/zh-cn/docs/read/simple/index.html
new file mode 100644
index 00000000..bac72712
--- /dev/null
+++ b/zh-cn/docs/read/simple/index.html
@@ -0,0 +1,61 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/simple" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">简单读取 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/read/simple/"><meta da [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节介绍如何使用 FastExcel 完成简单 Excel 读取</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="数据监听器">数据监听器<a href="#数据监听器" class="hash-link" aria-label="数据监听器的直接链接" title="数据监听器的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>FastExcel 提供监听器机制,用于在读取 Excel 文件时对每一行数据进行处理。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="使用">使用<a href="#使用" class="hash-link" aria-label="使用的直接链接" title="使用的直接链接" translate="no"></a></h3>
+<p>数据监听器需要实例化并支持多种不同的使用方式。</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="实例化">实例化<a href="#实例化" class="hash-link" aria-label="实例化的直接链接" title="实例化的直接链接" translate="no"></a></h4>
+<p>监听器不能被 Spring 管理,每次读取 Excel 文件时需要重新实例化。</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="lambda表达式"><code>Lambda</code>表达式<a href="#lambda表达式" class="hash-link" aria-label="lambda表达式的直接链接" title="lambda表达式的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="匿名内部类">匿名内部类<a href="#匿名内部类" class="hash-link" aria-label="匿名内部类的直接链接" title="匿名内部类的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="数据监听器-1">数据监听器<a href="#数据监听器-1" class="hash-link" aria-label="数据监听器的直接链接" title="数据监听器的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-类与监听器">POJO 类与监听器<a href="#pojo-类与监听器" class="hash-link" aria-label="POJO 类与监听器的直接链接" title="POJO 类与监听器的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-1">概述<a href="#概述-1" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>FastExcel 提供了一种简单的方式来读取 Excel 文件。用户只需定义一个 POJO 类来表示数据结构,然后通过 FastExcel 的监听器机制读取数据。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-类">POJO 类<a href="#pojo-类" class="hash-link" aria-label="POJO 类的直接链接" title="POJO 类的直接链接" translate="no"></a></h3>
+<p>与 Excel 结构对应的 POJO 类 <code>DemoData</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="数据监听器-2">数据监听器<a href="#数据监听器-2" class="hash-link" aria-label="数据监听器的直接链接" title="数据监听器的直接链接" translate="no"></a></h3>
+<p><code>DemoDataListener</code> 是一个自定义监听器,用于处理从 Excel 中读取的数据。</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="无-pojo-类与监听器">无 POJO 类与监听器<a href="#无-pojo-类与监听器" class="hash-link" aria-label="无 POJO 类与监听器的直接链接" title="无 POJO 类与监听器的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-2">概述<a href="#概述-2" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>FastExcel 支持不定义 POJO 类直接读取 Excel 文件,通过 <code>Map<Integer, String></code> 直接读取数据,其中的键为<strong>列索引</strong>,值为<strong>单元格数据</strong>。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="数据监听器-3">数据监听器<a href="#数据监听器-3" class="hash-link" aria-label="数据监听器的直接链接" title="数据监听器的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="同步读取">同步读取<a href="#同步读取" class="hash-link" aria-label="同步读取的直接链接" title="同步读取的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-3">概述<a href="#概述-3" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>使用 <code>doReadSync</code> 方法直接将 Excel 数据读取为<strong>内存</strong>中的列表,这种方法推荐用于<strong>数据量较小</strong>的场景。读取的数据可以是 POJO 对象列表或 Map 列表。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-类-1">POJO 类<a href="#pojo-类-1" class="hash-link" aria-label="POJO 类的直接链接" title="POJO 类的直接链接" translate="no"></a></h3>
+<p>与 Excel 结构对应的 POJO 类 <code>DemoData</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-1">代码示例<a href="#代码示例-1" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="读取为-pojo-对象列表">读取为 POJO 对象列表<a href="#读取为-pojo-对象列表" class="hash-link" aria-label="读取为 POJO 对象列表的直接链接" title="读取为 POJO 对象列表的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="读取为-map-列表">读取为 Map 列表<a href="#读取为-map-列表" class="hash-link" aria-label="读取为 Map 列表的直接链接" title="读取为 Map 列表的直接链接" translate="no"></a></h4>
+<p>在不使用 POJO 情况下,可以将每一行读取为 Map,键为列索引,值为单元格内容。</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/read/spring/index.html b/zh-cn/docs/read/spring/index.html
new file mode 100644
index 00000000..327135e4
--- /dev/null
+++ b/zh-cn/docs/read/spring/index.html
@@ -0,0 +1,40 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/spring" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">与 Spring 集成 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/read/spring/">< [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节介绍如何在 Spring 框架中集成和使用 FastExcel 来处理用户上传的 Excel 文件。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h2>
+<p>通过创建 RESTful API 接口,用户可以使用 HTTP 请求上传 Excel 文件,服务器端使用 FastExcel 解析数据。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="环境依赖">环境依赖<a href="#环境依赖" class="hash-link" aria-label="环境依赖的直接链接" title="环境依赖的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="maven">Maven<a href="#maven" class="hash-link" aria-label="Maven的直接链接" title="Maven的直接链接" translate="no"></a></h3>
+<p>确保在 pom.xml 文件中包括必要的依赖项:</p>
+<div class="language-xml codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-xml codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34"><</span><span class="token tag" style="color:#00009f">depe [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="创建上传接口">创建上传接口<a href="#创建上传接口" class="hash-link" aria-label="创建上传接口的直接链接" title="创建上传接口的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo类">POJO类<a href="#pojo类" class="hash-link" aria-label="POJO类的直接链接" title="POJO类的直接链接" translate="no"></a></h3>
+<p>首先,定义一个用于映射 Excel 数据的 POJO 类:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="数据监听器">数据监听器<a href="#数据监听器" class="hash-link" aria-label="数据监听器的直接链接" title="数据监听器的直接链接" translate="no"></a></h3>
+<p>创建一个监听器来处理每一行数据:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="spring-控制器">Spring 控制器<a href="#spring-控制器" class="hash-link" aria-label="Spring 控制器的直接链接" title="Spring 控制器的直接链接" translate="no"></a></h3>
+<p>创建一个控制器来处理文件上传请求:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@RestController</span><span class="token plain"></sp [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="复杂场景">复杂场景<a href="#复杂场景" class="hash-link" aria-label="复杂场景的直接链接" title="复杂场景的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="多模板解析">多模板解析<a href="#多模板解析" class="hash-link" aria-label="多模板解析的直接链接" title="多模板解析的直接链接" translate="no"></a></h3>
+<p>通过在同一个监听器中定义多个不同的模型类和处理方法,可以根据需要扩展支持多模板解析。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="异常处理">异常处理<a href="#异常处理" class="hash-link" aria-label="异常处理的直接链接" title="异常处理的直接链接" translate="no"></a></h3>
+<p>为了改善用户体验并保证程序健壮性,需要在数据处理过程中加入异常处理逻辑,可以在自定义监听器中重写 <code>onException</code> 方法进行详细的异常处理。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="实际应用">实际应用<a href="#实际应用" class="hash-link" aria-label="实际应用的直接链接" title="实际应用的直接链接" translate="no"></a></h3>
+<p>在实际场景中,解析的数据可能需要存储到数据库中。可以在 <code>doAfterAllAnalysed</code> 方法中实现数据库交互逻辑,确保数据的持久化。</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/read/spring.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" cla [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/write/csv/index.html b/zh-cn/docs/write/csv/index.html
new file mode 100644
index 00000000..f02b346d
--- /dev/null
+++ b/zh-cn/docs/write/csv/index.html
@@ -0,0 +1,90 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/csv" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">CSV | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/write/csv/"><meta data- [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节介绍如何使用 FastExcel 来写入自定义 CSV 文件。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h2>
+<p>FastExcel 通过不同的参数设计进行 CSV 的写入。其底层使用了<a href="https://commons.apache.org/proper/commons-csv" target="_blank" rel="noopener noreferrer">Apache Commons CSV</a>,也支持通过直接设置<a href="https://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/CSVFormat.html" target="_blank" rel="noopener noreferrer">CSVFormat</a>进行设定来达成写入的目标。</p>
+<p>主要的参数如下:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th style="text-align:left">名称</th><th style="text-align:left">默认值</th><th style="text-align:left">描述</th></tr></thead><tbody><tr><td style="text-align:left"><code>delimiter</code></td><td style="text-align:left"><code>,</code> (逗号)</td><td style="text-align:left">字段分隔符。推荐使用 <code>CsvConstant</code> 中预定义的常量,例如 <code>CsvConstant.AT</code> (<code>@</code>)、<code>CsvConstant.TAB</code> 等。</td></tr><tr><td style="text-align:left"><code>quote</code></td><td style="text-align [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="参数详解与示例">参数详解与示例<a href="#参数详解与示例" class="hash-link" aria-label="参数详解与示例的直接链接" title="参数详解与示例的直接链接" translate="no"></a></h2>
+<p>下面将详细介绍每一个参数的用法,并提供代码示例。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="delimiter">delimiter<a href="#delimiter" class="hash-link" aria-label="delimiter的直接链接" title="delimiter的直接链接" translate="no"></a></h3>
+<p><code>delimiter</code> 用于指定 CSV 文件中的字段分隔符。默认值为英文逗号 <code>,</code>。同时,FastExcel 提供了一些常量<code>CsvConstant</code>,用于简化使用。</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h4>
+<p>如果 CSV 文件使用 <code>\u0000</code> 作为分隔符,可以如下设置:</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="quote">quote<a href="#quote" class="hash-link" aria-label="quote的直接链接" title="quote的直接链接" translate="no"></a></h3>
+<p><code>quote</code> 用于指定包裹字段的引用符号。默认值为双引号 <code>"</code>。当字段内容本身包含分隔符或换行符时,建议设置。</p>
+<blockquote>
+<p>注意不可和 <code>recordSeparator</code> 的设置重复,建议结合<code>QuoteMode</code>使用。</p>
+</blockquote>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-1">代码示例<a href="#代码示例-1" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="recordseparator">recordSeparator<a href="#recordseparator" class="hash-link" aria-label="recordSeparator的直接链接" title="recordSeparator的直接链接" translate="no"></a></h3>
+<p><code>recordSeparator</code> 用于指定文件中的换行符。不同操作系统的换行符可能不同(例如,Windows 使用 <code>CRLF</code>,而 Unix/Linux 使用 <code>LF</code>)。</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-2">代码示例<a href="#代码示例-2" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="nullstring">nullString<a href="#nullstring" class="hash-link" aria-label="nullString的直接链接" title="nullString的直接链接" translate="no"></a></h3>
+<p><code>nullString</code> 用于写入文件中将 <code>null</code> 值置换成特定字符串。例如,可以将 <code>null</code> 对象置换成字符串 <code>"N/A"</code>。</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-3">代码示例<a href="#代码示例-3" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="escape">escape<a href="#escape" class="hash-link" aria-label="escape的直接链接" title="escape的直接链接" translate="no"></a></h3>
+<p><code>escape</code> 用于指定转义字符。当使用了<code>escape</code>,输出的CSV有包含会保留显示。</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-4">代码示例<a href="#代码示例-4" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="csvformat设置详解与示例">CSVFormat设置详解与示例<a href="#csvformat设置详解与示例" class="hash-link" aria-label="CSVFormat设置详解与示例的直接链接" title="CSVFormat设置详解与示例的直接链接" translate="no"></a></h2>
+<p>支持直接构建一个<code>CSVFormat</code>对象。</p>
+<blockquote>
+<p>目前 FastExcel 仍然支持,但并非最推荐的使用方法。</p>
+</blockquote>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-5">代码示例<a href="#代码示例-5" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/write/extra/index.html b/zh-cn/docs/write/extra/index.html
new file mode 100644
index 00000000..4c38fe0a
--- /dev/null
+++ b/zh-cn/docs/write/extra/index.html
@@ -0,0 +1,73 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/extra" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">额外信息 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/write/extra/"><meta da [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节将介绍如何写入额外的信息,如批注、超链接、公式、合并单元格等。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="批注">批注<a href="#批注" class="hash-link" aria-label="批注的直接链接" title="批注的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>通过拦截器在特定单元格添加批注,适用于标注说明或特殊提示。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<p>自定义拦截器</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>使用</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果">结果<a href="#结果" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/commentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png" width="364" height="295" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="超链接">超链接<a href="#超链接" class="hash-link" aria-label="超链接的直接链接" title="超链接的直接链接" translate="no"></a></h2>
+<p>写入额外的超链接信息</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo类">POJO类<a href="#pojo类" class="hash-link" aria-label="POJO类的直接链接" title="POJO类的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-1">代码示例<a href="#代码示例-1" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果-1">结果<a href="#结果-1" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png" width="576" height="158" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="公式">公式<a href="#公式" class="hash-link" aria-label="公式的直接链接" title="公式的直接链接" translate="no"></a></h2>
+<p>写入额外的公式信息</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo类-1">POJO类<a href="#pojo类-1" class="hash-link" aria-label="POJO类的直接链接" title="POJO类的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-2">代码示例<a href="#代码示例-2" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果-2">结果<a href="#结果-2" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png" width="576" height="158" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="根据模板写入">根据模板写入<a href="#根据模板写入" class="hash-link" aria-label="根据模板写入的直接链接" title="根据模板写入的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-1">概述<a href="#概述-1" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>支持使用已有的模板文件,在模板上填充数据,适用于规范化输出。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-3">代码示例<a href="#代码示例-3" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="合并单元格">合并单元格<a href="#合并单元格" class="hash-link" aria-label="合并单元格的直接链接" title="合并单元格的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-2">概述<a href="#概述-2" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>支持通过注解或自定义合并策略实现合并单元格。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-4">代码示例<a href="#代码示例-4" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<p>注解方式</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<p>自定义合并策略</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+<p>使用</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果-3">结果<a href="#结果-3" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/mergeWrite-976e024ef4e1613c6dab373937cc56ff.png" width="384" height="291" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="自定义拦截器">自定义拦截器<a href="#自定义拦截器" class="hash-link" aria-label="自定义拦截器的直接链接" title="自定义拦截器的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-3">概述<a href="#概述-3" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>实现自定义逻辑(如添加下拉框等)需要通过拦截器操作。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-5">代码示例<a href="#代码示例-5" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<p>设置下拉框</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果-4">结果<a href="#结果-4" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/customHandlerWrite-c05ff79257df5ba72a311793a6e9db60.png" width="387" height="299" class="img_U4Mj"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/write/extra.md" target="_blank" rel="noopener noreferrer" class="the [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/write/format/index.html b/zh-cn/docs/write/format/index.html
new file mode 100644
index 00000000..dd15c942
--- /dev/null
+++ b/zh-cn/docs/write/format/index.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/format" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">格式化 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/write/format/"><meta da [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节将介绍写入数据时的数据格式化。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="自定义格式写入">自定义格式写入<a href="#自定义格式写入" class="hash-link" aria-label="自定义格式写入的直接链接" title="自定义格式写入的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>支持日期、数字或其他自定义格式,通过注解实现。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo类">POJO类<a href="#pojo类" class="hash-link" aria-label="POJO类的直接链接" title="POJO类的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果">结果<a href="#结果" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/converterWrite-3246357a06c3ba04afb519b820c19bb2.png" width="497" height="293" class="img_U4Mj"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/write/format.md" target="_blank" rel="noopener noreferrer" class="theme- [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/write/head/index.html b/zh-cn/docs/write/head/index.html
new file mode 100644
index 00000000..d5c453f3
--- /dev/null
+++ b/zh-cn/docs/write/head/index.html
@@ -0,0 +1,34 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/head" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">表头 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/write/head/"><meta data- [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节将介绍写入 Excel 中的表头数据。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="复杂头写入">复杂头写入<a href="#复杂头写入" class="hash-link" aria-label="复杂头写入的直接链接" title="复杂头写入的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>支持设置多级表头,通过 <code>@ExcelProperty</code> 注解指定主标题和子标题。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo类">POJO类<a href="#pojo类" class="hash-link" aria-label="POJO类的直接链接" title="POJO类的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果">结果<a href="#结果" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/complexHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png" width="518" height="299" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="动态头写入">动态头写入<a href="#动态头写入" class="hash-link" aria-label="动态头写入的直接链接" title="动态头写入的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-1">概述<a href="#概述-1" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>实时生成动态表头,适用于表头内容动态变化的场景。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-1">代码示例<a href="#代码示例-1" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果-1">结果<a href="#结果-1" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/dynamicHeadWrite-b33468bf605a16abf195c740309137e3.png" width="383" height="318" class="img_U4Mj"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/write/head.md" target="_blank" rel="noopener noreferrer" class="theme- [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/write/image/index.html b/zh-cn/docs/write/image/index.html
new file mode 100644
index 00000000..61e7156b
--- /dev/null
+++ b/zh-cn/docs/write/image/index.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/image" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">图片 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/write/image/"><meta data [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节介绍如何导出包含图片的文件。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="图片导出">图片导出<a href="#图片导出" class="hash-link" aria-label="图片导出的直接链接" title="图片导出的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>支持通过文件、流、字节数组、URL 等多种方式导出图片。</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-类">POJO 类<a href="#pojo-类" class="hash-link" aria-label="POJO 类的直接链接" title="POJO 类的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果">结果<a href="#结果" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png" width="751" height="300" class="img_U4Mj"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/write/image.md" target="_blank" rel="noopener noreferrer" class="theme-edit-th [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/write/pojo/index.html b/zh-cn/docs/write/pojo/index.html
new file mode 100644
index 00000000..56699ed3
--- /dev/null
+++ b/zh-cn/docs/write/pojo/index.html
@@ -0,0 +1,45 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/pojo" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">实体类 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/write/pojo/"><meta data [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节将介绍通过设置 POJO 来写入。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="根据参数只导出指定列">根据参数只导出指定列<a href="#根据参数只导出指定列" class="hash-link" aria-label="根据参数只导出指定列的直接链接" title="根据参数只导出指定列的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>通过设置列名集合动态选择要导出的列,支持忽略列或仅导出特定列。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<p>忽略指定列</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<p>仅导出指定列</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果">结果<a href="#结果" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/excludeOrIncludeWrite-bea7b205e7748fd8b55311383c344df1.png" width="246" height="297" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="指定写入的列顺序">指定写入的列顺序<a href="#指定写入的列顺序" class="hash-link" aria-label="指定写入的列顺序的直接链接" title="指定写入的列顺序的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-1">概述<a href="#概述-1" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>通过 <code>@ExcelProperty</code> 注解的 <code>index</code> 属性指定列顺序。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo类">POJO类<a href="#pojo类" class="hash-link" aria-label="POJO类的直接链接" title="POJO类的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-1">代码示例<a href="#代码示例-1" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果-1">结果<a href="#结果-1" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png" width="439" height="299" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="不创建对象的写入">不创建对象的写入<a href="#不创建对象的写入" class="hash-link" aria-label="不创建对象的写入的直接链接" title="不创建对象的写入的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-2">概述<a href="#概述-2" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>直接使用 <code>List<List<String>></code> 定义头和数据写入,无需创建实体类。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-2">代码示例<a href="#代码示例-2" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果-2">结果<a href="#结果-2" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/noModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png" width="384" height="356" class="img_U4Mj"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/write/pojo.md" target="_blank" rel="noopener noreferrer" class="theme-edit [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/write/sheet/index.html b/zh-cn/docs/write/sheet/index.html
new file mode 100644
index 00000000..02f72a89
--- /dev/null
+++ b/zh-cn/docs/write/sheet/index.html
@@ -0,0 +1,40 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/sheet" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Sheet 页 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/write/sheet/"><meta [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节将介绍设置 Sheet 来写入数据的使用。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="写入同一个-sheet">写入同一个 Sheet<a href="#写入同一个-sheet" class="hash-link" aria-label="写入同一个 Sheet的直接链接" title="写入同一个 Sheet的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>分批写入数据到同一个 Sheet。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果">结果<a href="#结果" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/repeatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png" width="386" height="298" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="写入多个-sheet">写入多个 Sheet<a href="#写入多个-sheet" class="hash-link" aria-label="写入多个 Sheet的直接链接" title="写入多个 Sheet的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-1">概述<a href="#概述-1" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>分批写入数据到多个 Sheet,可实现大数据量的分页写入。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-1">代码示例<a href="#代码示例-1" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果-1">结果<a href="#结果-1" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/repeatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png" width="386" height="298" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="使用-table-写入">使用 Table 写入<a href="#使用-table-写入" class="hash-link" aria-label="使用 Table 写入的直接链接" title="使用 Table 写入的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-2">概述<a href="#概述-2" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>支持在一个 Sheet 中使用多个 Table 分块写入。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-2">代码示例<a href="#代码示例-2" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果-2">结果<a href="#结果-2" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/tableWrite-1b3814878a3fc0ef244f767899675190.png" width="370" height="545" class="img_U4Mj"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/write/sheet.md" target="_blank" rel="noopener noreferrer" class="theme-edit- [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/write/simple/index.html b/zh-cn/docs/write/simple/index.html
new file mode 100644
index 00000000..2b2f5eac
--- /dev/null
+++ b/zh-cn/docs/write/simple/index.html
@@ -0,0 +1,33 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/simple" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">简单写入 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/write/simple/"><meta d [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节介绍如何使用 FastExcel 完成简单 Excel 写入</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h2>
+<p>使用 FastExcel 进行简单的 Excel 数据写入,可以快速地将实体对象写入 Excel 文件,是最基本、最常用的写入方式。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-类">POJO 类<a href="#pojo-类" class="hash-link" aria-label="POJO 类的直接链接" title="POJO 类的直接链接" translate="no"></a></h3>
+<p>与 Excel 结构对应的 POJO 类 <code>DemoData</code></p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="数据列表">数据列表<a href="#数据列表" class="hash-link" aria-label="数据列表的直接链接" title="数据列表的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">private</span><span class="token plain"> </span><span class="token [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="写入方式">写入方式<a href="#写入方式" class="hash-link" aria-label="写入方式的直接链接" title="写入方式的直接链接" translate="no"></a></h3>
+<p>FastExcel 提供了多种写入方式,包括 <code>Lambda</code> 表达式、数据列表、<code>ExcelWriter</code> 对象等。</p>
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="lambda-表达式"><code>Lambda</code> 表达式<a href="#lambda-表达式" class="hash-link" aria-label="lambda-表达式的直接链接" title="lambda-表达式的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="数据列表-1">数据列表<a href="#数据列表-1" class="hash-link" aria-label="数据列表的直接链接" title="数据列表的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_MEPo" id="excelwriter-对象"><code>ExcelWriter</code> 对象<a href="#excelwriter-对象" class="hash-link" aria-label="excelwriter-对象的直接链接" title="excelwriter-对象的直接链接" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/write/spring/index.html b/zh-cn/docs/write/spring/index.html
new file mode 100644
index 00000000..b9775e75
--- /dev/null
+++ b/zh-cn/docs/write/spring/index.html
@@ -0,0 +1,22 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/spring" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">与 Spring 集成 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/write/spring/"> [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节介绍如何在 Spring 框架中集成和使用 FastExcel 来生成 Excel 文件。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="spring-控制器示例">Spring 控制器示例<a href="#spring-控制器示例" class="hash-link" aria-label="Spring 控制器示例的直接链接" title="Spring 控制器示例的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>Spring Boot 项目中可以通过 HTTP 接口生成 Excel 文件并提供下载功能,便于在 Web 环境下使用 FastExcel。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@GetMapping</span><span class="token punctuation" st [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/docs/write/style/index.html b/zh-cn/docs/write/style/index.html
new file mode 100644
index 00000000..12fff34d
--- /dev/null
+++ b/zh-cn/docs/write/style/index.html
@@ -0,0 +1,59 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/style" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">样式 | Fesod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/docs/write/style/"><meta data [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>本章节将介绍写入数据时的样式设置。</p>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="注解">注解<a href="#注解" class="hash-link" aria-label="注解的直接链接" title="注解的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述">概述<a href="#概述" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>通过实体类中的注解设置单元格样式,包括字体、背景颜色、行高等。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo-类">POJO 类<a href="#pojo-类" class="hash-link" aria-label="POJO 类的直接链接" title="POJO 类的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果">结果<a href="#结果" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/annotationStyleWrite-daf422cde61cef375e3a694c3c64a0cb.png" width="529" height="427" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="内置拦截器">内置拦截器<a href="#内置拦截器" class="hash-link" aria-label="内置拦截器的直接链接" title="内置拦截器的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-1">概述<a href="#概述-1" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>通过 <code>HorizontalCellStyleStrategy</code> 为表头和内容分别设置样式。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-1">代码示例<a href="#代码示例-1" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果-1">结果<a href="#结果-1" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/handlerStyleWrite-082ae37a51bd9252f6900ab754387401.png" width="345" height="288" class="img_U4Mj"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="自定义拦截器">自定义拦截器<a href="#自定义拦截器" class="hash-link" aria-label="自定义拦截器的直接链接" title="自定义拦截器的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-2">概述<a href="#概述-2" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>如果已有策略无法满足需求,可以实现 <code>CellWriteHandler</code> 接口对样式进行完全自定义控制。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-2">代码示例<a href="#代码示例-2" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<p>自定义拦截器</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>使用</p>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="自定义-poi-样式">自定义 POI 样式<a href="#自定义-poi-样式" class="hash-link" aria-label="自定义 POI 样式的直接链接" title="自定义 POI 样式的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-3">概述<a href="#概述-3" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>直接操作 POI 的 <code>CellStyle</code>,适合对样式精确控制。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-3">代码示例<a href="#代码示例-3" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_MEPo" id="列宽和行高">列宽和行高<a href="#列宽和行高" class="hash-link" aria-label="列宽和行高的直接链接" title="列宽和行高的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="概述-4">概述<a href="#概述-4" class="hash-link" aria-label="概述的直接链接" title="概述的直接链接" translate="no"></a></h3>
+<p>通过注解控制列宽、行高,适用于对表格格式有特定要求的场景。</p>
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="pojo类">POJO类<a href="#pojo类" class="hash-link" aria-label="POJO类的直接链接" title="POJO类的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="代码示例-4">代码示例<a href="#代码示例-4" class="hash-link" aria-label="代码示例的直接链接" title="代码示例的直接链接" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_hFM9 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_YwAz"><pre tabindex="0" class="prism-code language-java codeBlock_KoT5 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_W1NM"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorWithStickyNavbar_MEPo" id="结果-2">结果<a href="#结果-2" class="hash-link" aria-label="结果的直接链接" title="结果的直接链接" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/zh-cn/assets/images/widthAndHeightWrite-77c049fb68d1ac806c1ba21e82c45f45.png" width="905" height="284" class="img_U4Mj"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/write/style.md" target="_blank" rel="noopener noreferrer" class="th [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/img/docs/fill/complexFillWithTable_file.png b/zh-cn/img/docs/fill/complexFillWithTable_file.png
new file mode 100644
index 00000000..a87a3e75
Binary files /dev/null and b/zh-cn/img/docs/fill/complexFillWithTable_file.png differ
diff --git a/zh-cn/img/docs/fill/complexFillWithTable_result.png b/zh-cn/img/docs/fill/complexFillWithTable_result.png
new file mode 100644
index 00000000..dc27781a
Binary files /dev/null and b/zh-cn/img/docs/fill/complexFillWithTable_result.png differ
diff --git a/zh-cn/img/docs/fill/complexFill_file.png b/zh-cn/img/docs/fill/complexFill_file.png
new file mode 100644
index 00000000..b2540ed2
Binary files /dev/null and b/zh-cn/img/docs/fill/complexFill_file.png differ
diff --git a/zh-cn/img/docs/fill/complexFill_result.png b/zh-cn/img/docs/fill/complexFill_result.png
new file mode 100644
index 00000000..0a9d289b
Binary files /dev/null and b/zh-cn/img/docs/fill/complexFill_result.png differ
diff --git a/zh-cn/img/docs/fill/compositeFill_file.png b/zh-cn/img/docs/fill/compositeFill_file.png
new file mode 100644
index 00000000..0e9f099f
Binary files /dev/null and b/zh-cn/img/docs/fill/compositeFill_file.png differ
diff --git a/zh-cn/img/docs/fill/compositeFill_result.png b/zh-cn/img/docs/fill/compositeFill_result.png
new file mode 100644
index 00000000..316a0022
Binary files /dev/null and b/zh-cn/img/docs/fill/compositeFill_result.png differ
diff --git a/zh-cn/img/docs/fill/horizontalFill_file.png b/zh-cn/img/docs/fill/horizontalFill_file.png
new file mode 100644
index 00000000..70af032d
Binary files /dev/null and b/zh-cn/img/docs/fill/horizontalFill_file.png differ
diff --git a/zh-cn/img/docs/fill/horizontalFill_result.png b/zh-cn/img/docs/fill/horizontalFill_result.png
new file mode 100644
index 00000000..e88053d0
Binary files /dev/null and b/zh-cn/img/docs/fill/horizontalFill_result.png differ
diff --git a/zh-cn/img/docs/fill/listFill_file.png b/zh-cn/img/docs/fill/listFill_file.png
new file mode 100644
index 00000000..8ebb7555
Binary files /dev/null and b/zh-cn/img/docs/fill/listFill_file.png differ
diff --git a/zh-cn/img/docs/fill/listFill_result.png b/zh-cn/img/docs/fill/listFill_result.png
new file mode 100644
index 00000000..4cdd60d4
Binary files /dev/null and b/zh-cn/img/docs/fill/listFill_result.png differ
diff --git a/zh-cn/img/docs/fill/simpleFill_file.png b/zh-cn/img/docs/fill/simpleFill_file.png
new file mode 100644
index 00000000..e393bad9
Binary files /dev/null and b/zh-cn/img/docs/fill/simpleFill_file.png differ
diff --git a/zh-cn/img/docs/fill/simpleFill_result.png b/zh-cn/img/docs/fill/simpleFill_result.png
new file mode 100644
index 00000000..1936c0e6
Binary files /dev/null and b/zh-cn/img/docs/fill/simpleFill_result.png differ
diff --git a/zh-cn/img/docs/wechat-public.jpg b/zh-cn/img/docs/wechat-public.jpg
new file mode 100644
index 00000000..52255238
Binary files /dev/null and b/zh-cn/img/docs/wechat-public.jpg differ
diff --git a/zh-cn/img/docs/write/annotationStyleWrite.png b/zh-cn/img/docs/write/annotationStyleWrite.png
new file mode 100644
index 00000000..6aeb9fb5
Binary files /dev/null and b/zh-cn/img/docs/write/annotationStyleWrite.png differ
diff --git a/zh-cn/img/docs/write/commentWrite.png b/zh-cn/img/docs/write/commentWrite.png
new file mode 100644
index 00000000..9ffcb125
Binary files /dev/null and b/zh-cn/img/docs/write/commentWrite.png differ
diff --git a/zh-cn/img/docs/write/complexHeadWrite.png b/zh-cn/img/docs/write/complexHeadWrite.png
new file mode 100644
index 00000000..e52d0960
Binary files /dev/null and b/zh-cn/img/docs/write/complexHeadWrite.png differ
diff --git a/zh-cn/img/docs/write/converterWrite.png b/zh-cn/img/docs/write/converterWrite.png
new file mode 100644
index 00000000..90196e1a
Binary files /dev/null and b/zh-cn/img/docs/write/converterWrite.png differ
diff --git a/zh-cn/img/docs/write/customHandlerWrite.png b/zh-cn/img/docs/write/customHandlerWrite.png
new file mode 100644
index 00000000..f263d02a
Binary files /dev/null and b/zh-cn/img/docs/write/customHandlerWrite.png differ
diff --git a/zh-cn/img/docs/write/dynamicHeadWrite.png b/zh-cn/img/docs/write/dynamicHeadWrite.png
new file mode 100644
index 00000000..68430370
Binary files /dev/null and b/zh-cn/img/docs/write/dynamicHeadWrite.png differ
diff --git a/zh-cn/img/docs/write/excludeOrIncludeWrite.png b/zh-cn/img/docs/write/excludeOrIncludeWrite.png
new file mode 100644
index 00000000..8911e5fb
Binary files /dev/null and b/zh-cn/img/docs/write/excludeOrIncludeWrite.png differ
diff --git a/zh-cn/img/docs/write/handlerStyleWrite.png b/zh-cn/img/docs/write/handlerStyleWrite.png
new file mode 100644
index 00000000..7f6248f8
Binary files /dev/null and b/zh-cn/img/docs/write/handlerStyleWrite.png differ
diff --git a/zh-cn/img/docs/write/ignore_row.png b/zh-cn/img/docs/write/ignore_row.png
new file mode 100644
index 00000000..1017b472
Binary files /dev/null and b/zh-cn/img/docs/write/ignore_row.png differ
diff --git a/zh-cn/img/docs/write/imgWrite.png b/zh-cn/img/docs/write/imgWrite.png
new file mode 100644
index 00000000..9ad021d5
Binary files /dev/null and b/zh-cn/img/docs/write/imgWrite.png differ
diff --git a/zh-cn/img/docs/write/indexRow.png b/zh-cn/img/docs/write/indexRow.png
new file mode 100644
index 00000000..0010cc07
Binary files /dev/null and b/zh-cn/img/docs/write/indexRow.png differ
diff --git a/zh-cn/img/docs/write/indexWrite.png b/zh-cn/img/docs/write/indexWrite.png
new file mode 100644
index 00000000..238d9db8
Binary files /dev/null and b/zh-cn/img/docs/write/indexWrite.png differ
diff --git a/zh-cn/img/docs/write/mergeWrite.png b/zh-cn/img/docs/write/mergeWrite.png
new file mode 100644
index 00000000..0249c4f6
Binary files /dev/null and b/zh-cn/img/docs/write/mergeWrite.png differ
diff --git a/zh-cn/img/docs/write/noModelWrite.png b/zh-cn/img/docs/write/noModelWrite.png
new file mode 100644
index 00000000..6a66c62d
Binary files /dev/null and b/zh-cn/img/docs/write/noModelWrite.png differ
diff --git a/zh-cn/img/docs/write/repeatedWrite.png b/zh-cn/img/docs/write/repeatedWrite.png
new file mode 100644
index 00000000..df324c96
Binary files /dev/null and b/zh-cn/img/docs/write/repeatedWrite.png differ
diff --git a/zh-cn/img/docs/write/tableWrite.png b/zh-cn/img/docs/write/tableWrite.png
new file mode 100644
index 00000000..e1b6f2a8
Binary files /dev/null and b/zh-cn/img/docs/write/tableWrite.png differ
diff --git a/zh-cn/img/docs/write/templateWrite.png b/zh-cn/img/docs/write/templateWrite.png
new file mode 100644
index 00000000..f378efb4
Binary files /dev/null and b/zh-cn/img/docs/write/templateWrite.png differ
diff --git a/zh-cn/img/docs/write/widthAndHeightWrite.png b/zh-cn/img/docs/write/widthAndHeightWrite.png
new file mode 100644
index 00000000..167b5511
Binary files /dev/null and b/zh-cn/img/docs/write/widthAndHeightWrite.png differ
diff --git a/zh-cn/img/docs/write/writeCellDataWrite.png b/zh-cn/img/docs/write/writeCellDataWrite.png
new file mode 100644
index 00000000..54b2666f
Binary files /dev/null and b/zh-cn/img/docs/write/writeCellDataWrite.png differ
diff --git a/zh-cn/img/favicon.ico b/zh-cn/img/favicon.ico
new file mode 100644
index 00000000..90357161
Binary files /dev/null and b/zh-cn/img/favicon.ico differ
diff --git a/zh-cn/img/github_icon.svg b/zh-cn/img/github_icon.svg
new file mode 100644
index 00000000..93ebbeca
--- /dev/null
+++ b/zh-cn/img/github_icon.svg
@@ -0,0 +1,21 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="black">
+ <path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285 [...]
+</svg>
\ No newline at end of file
diff --git a/zh-cn/img/index/undraw_files.svg b/zh-cn/img/index/undraw_files.svg
new file mode 100644
index 00000000..16039dd0
--- /dev/null
+++ b/zh-cn/img/index/undraw_files.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1008.92039" height="607.44997" viewBox="0 0 1008.92039 607.44997" xmlns:xlink="http://www.w3.org/1999/xlink" role="img" artist="Katerina Limpitsouni" source="https://undraw.co/"><path d="M1104.46,620.305a15.34,15.34,0,0,1-15.25952,15.42H417.8a15.34,15.34,0,0,1-15.26-15.41955V161.695a15.34,15.34,0,0,1,15.25958-15.42H1089.2a15.34,15.34,0,0,1,15.26,15.41957h0V620.305Z" transform="translate(-95.53981 -146.27502)" fill="#e6e6e6"/><path d="M1096.5 [...]
\ No newline at end of file
diff --git a/zh-cn/img/index/undraw_programming.svg b/zh-cn/img/index/undraw_programming.svg
new file mode 100644
index 00000000..f8189de9
--- /dev/null
+++ b/zh-cn/img/index/undraw_programming.svg
@@ -0,0 +1,125 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="882.126" height="576.272" viewBox="0 0 882.126 576.272" xmlns:xlink="http://www.w3.org/1999/xlink" role="img" artist="Katerina Limpitsouni" source="https://undraw.co/">
+ <g id="Group_138" data-name="Group 138" transform="translate(-519 -251.864)">
+ <g id="Group_137" data-name="Group 137">
+ <path id="Path_1240-340" data-name="Path 1240" d="M958.821,382.941,907.537,402.1,893.89,367.923l36.505-12.787C931.953,364.095,939.352,378.718,958.821,382.941Z" transform="matrix(0.914, 0.407, -0.407, 0.914, 46.029, -113.727)" fill="#ffb8b8"/>
+ <circle id="Ellipse_405" data-name="Ellipse 405" cx="26.701" cy="26.701" r="26.701" transform="translate(928.774 296.429)" fill="#fd6584"/>
+ <path id="Path_2166-341" data-name="Path 2166" d="M655.233,220.487a13.235,13.235,0,0,0-11.17-9.29,1.078,1.078,0,0,0-.18,0,1.418,1.418,0,0,0-.22-.05c-8.94-1.16-18.88,1.66-25.57,7.8a23.958,23.958,0,0,0-5.83,8.04,12.917,12.917,0,0,0-10.83-5.28,13.184,13.184,0,0,0-11.8,9.51,1.526,1.526,0,0,0,.69,1.69,6.674,6.674,0,0,0,2.79,1.42c2.21.47,4.44.9,6.67,1.29q6.54,1.14,13.15,1.85,4.365.465,8.75.74c6.04.38,12.11.47,18.16.28,3-.1,5.88-.2,8.62-1.52a12.8,12.8,0,0,0,4.95-4.31,14.548,14.548,0,0,0,1 [...]
+ <path id="Path_2167-342" data-name="Path 2167" d="M600.3,259.387a13.65,13.65,0,0,0-.56-3.3,13.26,13.26,0,0,0-11.18-9.29.966.966,0,0,0-.17,0,1.884,1.884,0,0,0-.23-.05,33.193,33.193,0,0,0-14.69,1.51c-7.26,2.43-13.63,7.33-16.7,14.33a12.922,12.922,0,0,0-10.84-5.28,13.184,13.184,0,0,0-11.8,9.51,1.555,1.555,0,0,0,.69,1.69,6.733,6.733,0,0,0,2.79,1.42c2.22.47,4.44.9,6.68,1.29q6.54,1.14,13.14,1.85a195.168,195.168,0,0,0,26.92,1.02c2.99-.1,5.88-.2,8.62-1.52a12.77,12.77,0,0,0,4.94-4.31,14.265, [...]
+ <path id="Path_2170-343" data-name="Path 2170" d="M895.47,639.046H792.093a167.922,167.922,0,0,1,.149-24.858c4.131-51.094,31.929-99.768,73.868-129.241-5.359,19.09-2.6,38.069,2.977,57.122-.781.26-1.563.484-2.27.781a46.236,46.236,0,0,0-15.294,9.378c-1.228,1.154-2.53,2.828-1.9,4.428.558,1.34,2.233,1.786,3.684,2.084,3.5.67,7,1.34,10.457,1.972,2.791.558,5.582,1.079,8.373,1.637,1.3.223,2.6.484,3.907.744.186.447.3.856.484,1.265,6.549,18.048,13.694,36.245,17.044,54.74a127.806,127.806,0,0,1, [...]
+ <path id="Path_2172-344" data-name="Path 2172" d="M424.08,571.318c-17.565,10.68-28.729,27.2-37.846,45.7a46.743,46.743,0,0,0-21.249,11.164c-1.265,1.154-2.568,2.828-1.9,4.428.558,1.34,2.233,1.786,3.684,2.084,3.461.67,7,1.34,10.457,1.972-.335.782-.67,1.6-1,2.382H260.12A164.175,164.175,0,0,1,277.573,619.1c1.377-1.377,2.791-2.679,4.242-4.019a173.651,173.651,0,0,1,50.238-31.706,176.734,176.734,0,0,1,92.028-12.057Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <path id="Path_2174-345" data-name="Path 2174" d="M664.33,595.644l92.37,8.2.99.09V209.794l-.99-.69a288.324,288.324,0,0,0-62.01-32.94l-4.72,65.1-.43,5.96-4.67,64.56-1.44,19.86-18.93,261.7Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <path id="Path_2175-346" data-name="Path 2175" d="M435.9,202.454c-.66.42-1.32.84-1.98,1.28v400.2l1.98-.18,91.37-8.11-.17-2.3-18.93-261.7-1.44-19.86-4.67-64.56-.43-5.96-4.95-68.27a287.689,287.689,0,0,0-60.78,29.46Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <path id="Path_2176-347" data-name="Path 2176" d="M433.92,203.734c-1.33.86-2.66,1.74-3.97,2.63v403.03c0,10.07,5.97,18.51,13.95,20.66a15.251,15.251,0,0,0,4,.53H744.7a15.117,15.117,0,0,0,3.99-.53,17.06,17.06,0,0,0,7.78-4.66,22.919,22.919,0,0,0,6.18-16V213.374c-1.64-1.21-3.29-2.41-4.96-3.58l-.99-.69v400.29a16.113,16.113,0,0,1-.46,3.85c-1.41,5.95-6.06,10.31-11.54,10.31H447.9c-6.62,0-12-6.35-12-14.16V202.454C435.24,202.874,434.58,203.294,433.92,203.734Z" transform="translate(360 90)" fi [...]
+ <rect id="Rectangle_484" data-name="Rectangle 484" width="326.752" height="5.959" transform="translate(792.922 331.268)" fill="#f2f2f2"/>
+ <path id="Path_2177-348" data-name="Path 2177" d="M659.6,165.254c-1.98-.49-3.96-.95-5.96-1.38v161.81h5.96Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <path id="Path_2178-349" data-name="Path 2178" d="M538.96,161.864c-1.99.37-3.98.75-5.96,1.16v162.66h5.96Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <path id="Path_2179-350" data-name="Path 2179" d="M368.86,620.154a26.712,26.712,0,0,0,1.93,9.98,25.539,25.539,0,0,0,1.75,3.56,27.1,27.1,0,0,0,3.02,4.18,26.76,26.76,0,0,0,20.12,9.11H786.99a26.82,26.82,0,0,0,0-53.64H395.68A26.846,26.846,0,0,0,368.86,620.154Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <rect id="Rectangle_485" data-name="Rectangle 485" width="324.766" height="19.863" transform="translate(1117.688 421.646) rotate(180)" fill="#f2f2f2"/>
+ <path id="Path_2180-351" data-name="Path 2180" d="M581.4,305.824H609.21a10.925,10.925,0,0,1-10.925,10.925h-5.959A10.925,10.925,0,0,1,581.4,305.824h0Z" transform="translate(1550.611 712.572) rotate(180)" fill="#f2f2f2"/>
+ <path id="Path_2181-352" data-name="Path 2181" d="M159.92,635.474a292.039,292.039,0,0,0,28.749,28.95H1013.3a292.039,292.039,0,0,0,28.749-28.95Z" transform="translate(359.08 90)" fill="#f2f2f2"/>
+ <path id="Path_2182-353" data-name="Path 2182" d="M556.61,538.664v102.56h71.85V538.664a3.448,3.448,0,0,0-2.43-3.3,3.174,3.174,0,0,0-1.03-.16H560.08A3.463,3.463,0,0,0,556.61,538.664Zm28.04,35.24a7.67,7.67,0,1,1,15.34,0v11.9a7.67,7.67,0,1,1-15.34,0Z" transform="translate(360 90)" fill="#e6e6e6"/>
+ <path id="Path_2183-354" data-name="Path 2183" d="M556.39,637.944v9.89a1.946,1.946,0,0,0,1.93,1.94h68.43a1.94,1.94,0,0,0,1.93-1.94v-9.89Z" transform="translate(360 90)" fill="#3f3d56"/>
+ <path id="Path_2184-355" data-name="Path 2184" d="M443.58,384.144V571.4a9.007,9.007,0,0,0,9,9h277.5a9.007,9.007,0,0,0,9-9V384.144a9.012,9.012,0,0,0-9-8.99H452.58a9.011,9.011,0,0,0-9,8.99Z" transform="translate(360 90)" fill="#3f3d56"/>
+ <path id="Path_2185-356" data-name="Path 2185" d="M450.09,386.474v182.62a4.818,4.818,0,0,0,4.81,4.81H727.77a4.818,4.818,0,0,0,4.81-4.81V386.474a4.82,4.82,0,0,0-4.81-4.82H454.9a4.821,4.821,0,0,0-4.81,4.82Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <path id="Path_2186-357" data-name="Path 2186" d="M505.73,652.1a2.948,2.948,0,0,0,2.32,1.11H670.39a2.987,2.987,0,0,0,2.92-3.6l-2.52-11.97a2.993,2.993,0,0,0-1.86-2.17,2.9,2.9,0,0,0-1.06-.2H510.56a2.894,2.894,0,0,0-1.06.2,2.992,2.992,0,0,0-1.86,2.17l-2.52,11.97a2.985,2.985,0,0,0,.61,2.49Z" transform="translate(360 90)" fill="#2f2e41"/>
+ <rect id="Rectangle_486" data-name="Rectangle 486" width="5" height="3" rx="0.488" transform="translate(1026.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_487" data-name="Rectangle 487" width="5" height="3" rx="0.488" transform="translate(1016.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_488" data-name="Rectangle 488" width="5" height="3" rx="0.488" transform="translate(1006.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_489" data-name="Rectangle 489" width="5" height="3" rx="0.488" transform="translate(996.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_490" data-name="Rectangle 490" width="5" height="3" rx="0.488" transform="translate(986.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_491" data-name="Rectangle 491" width="5" height="3" rx="0.488" transform="translate(976.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_492" data-name="Rectangle 492" width="5" height="3" rx="0.488" transform="translate(966.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_493" data-name="Rectangle 493" width="5" height="3" rx="0.488" transform="translate(956.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_494" data-name="Rectangle 494" width="5" height="3" rx="0.488" transform="translate(946.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_495" data-name="Rectangle 495" width="5" height="3" rx="0.488" transform="translate(936.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_496" data-name="Rectangle 496" width="5" height="3" rx="0.488" transform="translate(926.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_497" data-name="Rectangle 497" width="5" height="3" rx="0.488" transform="translate(916.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_498" data-name="Rectangle 498" width="5" height="3" rx="0.488" transform="translate(906.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_499" data-name="Rectangle 499" width="5" height="3" rx="0.488" transform="translate(896.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_500" data-name="Rectangle 500" width="5" height="3" rx="0.488" transform="translate(886.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_501" data-name="Rectangle 501" width="5" height="3" rx="0.488" transform="translate(876.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_502" data-name="Rectangle 502" width="5" height="3" rx="0.488" transform="translate(1026.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_503" data-name="Rectangle 503" width="5" height="3" rx="0.488" transform="translate(1016.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_504" data-name="Rectangle 504" width="5" height="3" rx="0.488" transform="translate(1006.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_505" data-name="Rectangle 505" width="5" height="3" rx="0.488" transform="translate(996.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_506" data-name="Rectangle 506" width="5" height="3" rx="0.488" transform="translate(986.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_507" data-name="Rectangle 507" width="5" height="3" rx="0.488" transform="translate(976.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_508" data-name="Rectangle 508" width="5" height="3" rx="0.488" transform="translate(966.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_509" data-name="Rectangle 509" width="5" height="3" rx="0.488" transform="translate(956.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_510" data-name="Rectangle 510" width="5" height="3" rx="0.488" transform="translate(946.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_511" data-name="Rectangle 511" width="5" height="3" rx="0.488" transform="translate(936.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_512" data-name="Rectangle 512" width="5" height="3" rx="0.488" transform="translate(926.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_513" data-name="Rectangle 513" width="5" height="3" rx="0.488" transform="translate(916.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_514" data-name="Rectangle 514" width="5" height="3" rx="0.488" transform="translate(906.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_515" data-name="Rectangle 515" width="5" height="3" rx="0.488" transform="translate(896.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_516" data-name="Rectangle 516" width="5" height="3" rx="0.488" transform="translate(886.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_517" data-name="Rectangle 517" width="5" height="3" rx="0.488" transform="translate(876.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_518" data-name="Rectangle 518" width="40" height="3" rx="0.488" transform="translate(978.835 741.43) rotate(180)" fill="#3f3d56"/>
+ <path id="Path_2187-358" data-name="Path 2187" d="M468.612,406.811H723.935a1.015,1.015,0,1,0,0-2.031H468.612a1.015,1.015,0,1,0,0,2.031Z" transform="translate(360 90)" fill="#3f3d56"/>
+ <ellipse id="Ellipse_406" data-name="Ellipse 406" cx="5.95" cy="6.083" rx="5.95" ry="6.083" transform="translate(1060.604 477.43)" fill="#3f3d56"/>
+ <ellipse id="Ellipse_407" data-name="Ellipse 407" cx="5.95" cy="6.083" rx="5.95" ry="6.083" transform="translate(1040.049 477.43)" fill="#3f3d56"/>
+ <ellipse id="Ellipse_408" data-name="Ellipse 408" cx="5.95" cy="6.083" rx="5.95" ry="6.083" transform="translate(1019.493 477.43)" fill="#3f3d56"/>
+ <path id="Path_2188-359" data-name="Path 2188" d="M479.9,390.044a1.1,1.1,0,0,0,1.09,1.1h14.6a1.105,1.105,0,0,0,0-2.21h-14.6a1.1,1.1,0,0,0-1.09,1.11Z" transform="translate(360 90)" fill="#3f3d56"/>
+ <path id="Path_2189-360" data-name="Path 2189" d="M479.9,394.194a1.1,1.1,0,0,0,1.09,1.1h14.6a1.105,1.105,0,0,0,0-2.21h-14.6a1.1,1.1,0,0,0-1.09,1.11Z" transform="translate(360 90)" fill="#3f3d56"/>
+ <path id="Path_2190-361" data-name="Path 2190" d="M479.9,398.334a1.1,1.1,0,0,0,1.09,1.11h14.6a1.105,1.105,0,0,0,0-2.21h-14.6A1.1,1.1,0,0,0,479.9,398.334Z" transform="translate(360 90)" fill="#3f3d56"/>
+ <rect id="Rectangle_519" data-name="Rectangle 519" width="11.006" height="5.76" rx="2.88" transform="translate(836.286 520.407)" fill="#2e8555"/>
+ <rect id="Rectangle_520" data-name="Rectangle 520" width="11.006" height="5.76" rx="2.88" transform="translate(896.286 520.407)" fill="#2e8555"/>
+ <rect id="Rectangle_521" data-name="Rectangle 521" width="11.006" height="5.76" rx="2.88" transform="translate(913.286 520.407)" fill="#2e8555"/>
+ <rect id="Rectangle_522" data-name="Rectangle 522" width="38.366" height="5.76" rx="2.88" transform="translate(852.606 519.927)" fill="#2e8555"/>
+ <rect id="Rectangle_523" data-name="Rectangle 523" width="38.366" height="5.76" rx="2.88" transform="translate(932.606 519.927)" fill="#2e8555"/>
+ <rect id="Rectangle_524" data-name="Rectangle 524" width="11.006" height="5.76" rx="2.88" transform="translate(852.286 533.407)" fill="#2e8555"/>
+ <rect id="Rectangle_525" data-name="Rectangle 525" width="11.006" height="5.76" rx="2.88" transform="translate(912.286 533.407)" fill="#2e8555"/>
+ <rect id="Rectangle_526" data-name="Rectangle 526" width="11.006" height="5.76" rx="2.88" transform="translate(929.286 533.407)" fill="#2e8555"/>
+ <rect id="Rectangle_527" data-name="Rectangle 527" width="38.366" height="5.76" rx="2.88" transform="translate(868.606 532.927)" fill="#2e8555"/>
+ <rect id="Rectangle_528" data-name="Rectangle 528" width="38.366" height="5.76" rx="2.88" transform="translate(948.606 532.927)" fill="#2e8555"/>
+ <rect id="Rectangle_529" data-name="Rectangle 529" width="11.006" height="5.76" rx="2.88" transform="translate(868.286 546.407)" fill="#2e8555"/>
+ <rect id="Rectangle_530" data-name="Rectangle 530" width="11.006" height="5.76" rx="2.88" transform="translate(928.286 546.407)" fill="#2e8555"/>
+ <rect id="Rectangle_531" data-name="Rectangle 531" width="11.006" height="5.76" rx="2.88" transform="translate(945.286 546.407)" fill="#2e8555"/>
+ <rect id="Rectangle_532" data-name="Rectangle 532" width="38.366" height="5.76" rx="2.88" transform="translate(884.606 545.927)" fill="#2e8555"/>
+ <rect id="Rectangle_533" data-name="Rectangle 533" width="38.366" height="5.76" rx="2.88" transform="translate(964.606 545.927)" fill="#2e8555"/>
+ <rect id="Rectangle_534" data-name="Rectangle 534" width="11.006" height="5.76" rx="2.88" transform="translate(884.286 559.407)" fill="#2e8555"/>
+ <rect id="Rectangle_535" data-name="Rectangle 535" width="11.006" height="5.76" rx="2.88" transform="translate(944.286 559.407)" fill="#2e8555"/>
+ <rect id="Rectangle_536" data-name="Rectangle 536" width="11.006" height="5.76" rx="2.88" transform="translate(961.286 559.407)" fill="#2e8555"/>
+ <rect id="Rectangle_537" data-name="Rectangle 537" width="38.366" height="5.76" rx="2.88" transform="translate(900.606 558.927)" fill="#2e8555"/>
+ <rect id="Rectangle_538" data-name="Rectangle 538" width="11.006" height="5.76" rx="2.88" transform="translate(896.286 611.101)" fill="#2e8555"/>
+ <rect id="Rectangle_539" data-name="Rectangle 539" width="11.006" height="5.76" rx="2.88" transform="translate(913.286 611.101)" fill="#2e8555"/>
+ <rect id="Rectangle_540" data-name="Rectangle 540" width="38.366" height="5.76" rx="2.88" transform="translate(932.606 611.581)" fill="#2e8555"/>
+ <rect id="Rectangle_541" data-name="Rectangle 541" width="11.006" height="5.76" rx="2.88" transform="translate(836.286 611.101)" fill="#2e8555"/>
+ <rect id="Rectangle_542" data-name="Rectangle 542" width="38.366" height="5.76" rx="2.88" transform="translate(852.606 611.581)" fill="#2e8555"/>
+ <rect id="Rectangle_543" data-name="Rectangle 543" width="11.006" height="5.76" rx="2.88" transform="translate(852.286 598.101)" fill="#2e8555"/>
+ <rect id="Rectangle_544" data-name="Rectangle 544" width="11.006" height="5.76" rx="2.88" transform="translate(912.286 598.101)" fill="#2e8555"/>
+ <rect id="Rectangle_545" data-name="Rectangle 545" width="11.006" height="5.76" rx="2.88" transform="translate(929.286 598.101)" fill="#2e8555"/>
+ <rect id="Rectangle_546" data-name="Rectangle 546" width="38.366" height="5.76" rx="2.88" transform="translate(868.606 598.581)" fill="#2e8555"/>
+ <rect id="Rectangle_547" data-name="Rectangle 547" width="11.006" height="5.76" rx="2.88" transform="translate(868.286 585.101)" fill="#2e8555"/>
+ <rect id="Rectangle_548" data-name="Rectangle 548" width="11.006" height="5.76" rx="2.88" transform="translate(928.286 585.101)" fill="#2e8555"/>
+ <rect id="Rectangle_549" data-name="Rectangle 549" width="11.006" height="5.76" rx="2.88" transform="translate(945.286 585.101)" fill="#2e8555"/>
+ <rect id="Rectangle_550" data-name="Rectangle 550" width="38.366" height="5.76" rx="2.88" transform="translate(884.606 585.581)" fill="#2e8555"/>
+ <rect id="Rectangle_551" data-name="Rectangle 551" width="11.006" height="5.76" rx="2.88" transform="translate(884.286 572.101)" fill="#2e8555"/>
+ <rect id="Rectangle_552" data-name="Rectangle 552" width="11.006" height="5.76" rx="2.88" transform="translate(944.286 572.101)" fill="#2e8555"/>
+ <rect id="Rectangle_553" data-name="Rectangle 553" width="11.006" height="5.76" rx="2.88" transform="translate(961.286 572.101)" fill="#2e8555"/>
+ <rect id="Rectangle_554" data-name="Rectangle 554" width="38.366" height="5.76" rx="2.88" transform="translate(900.606 572.581)" fill="#2e8555"/>
+ <path id="Path_2191-362" data-name="Path 2191" d="M509.832,707.816c-.22.11-.44.22-.66.32q-2.085,1.035-4.2,2.04-6.33,3.015-12.82,5.73a285.491,285.491,0,0,1-34.97,12.03c-2-12.47-3.94-41.88-5.8-63.51-.35-4.07-.7-7.86-1.05-11.21a97.15,97.15,0,0,0-1.89-13.08,4.359,4.359,0,0,0-.39-.97c.19,1.73.39,6.89.58,14.05.1,3.35.19,7.14.29,11.21.47,20.82.96,49.15,1.45,65.28-1.39.34-2.79.68-4.19,1-.88.21-1.77.41-2.66.6-1.08.24-2.16.48-3.24.7q-1.7.36-3.39.69a290.078,290.078,0,0,1-56.06,5.44c-1.25,0-2. [...]
+ <path id="Path_2192-363" data-name="Path 2192" d="M303.59,473.566l-8.5-32.792-7.5,28.3Z" transform="translate(519.92 251.864)" opacity="0.2"/>
+ <path id="Path_2193-364" data-name="Path 2193" d="M175.749,635.05a6.416,6.416,0,0,0,6.183,4.331l26.492-.682a6.328,6.328,0,0,0,5.981-4.657l3.749-40.087a9.8,9.8,0,0,0,4.238.871,9.661,9.661,0,1,0-.485-19.317,8.177,8.177,0,0,0-1.736.181,6.548,6.548,0,0,0-4.874-2.1l-40.751,1.052a5.858,5.858,0,0,0-1.005.125,6.365,6.365,0,0,0-4.873,8.265Zm43.173-43.817,2.668-9.553a6.506,6.506,0,0,0,.02-3.375c.129,0,.244-.062.373-.062a6.91,6.91,0,1,1,.324,13.817,6.505,6.505,0,0,1-3.385-.828Z" transform="tr [...]
+ <path id="Path_2194-365" data-name="Path 2194" d="M173.541,574.763c.868,4.964,10.629,8.454,22.366,7.847,10.793-.5,19.617-4.287,21.234-8.779a6.024,6.024,0,0,0-1.844-.246l-40.751,1.052A5.852,5.852,0,0,0,173.541,574.763Z" transform="translate(360 90)" fill="#090814"/>
+ <path id="Path_2195-366" data-name="Path 2195" d="M198.283,615.324a.625.625,0,0,0,.191-.084l7.281-4.766a.632.632,0,0,0,0-1.058l-7.568-4.957a.632.632,0,0,0-.693,1.058l6.759,4.427-6.472,4.237a.633.633,0,0,0,.5,1.143Z" transform="translate(363.097 86.083)" fill="#f2f2f2"/>
+ <path id="Path_2196-367" data-name="Path 2196" d="M190.721,615.743a.633.633,0,0,0,.16-1.162l-6.712-3.848,6.487-4.819a.632.632,0,0,0-.754-1.015l-7.263,5.395a.632.632,0,0,0,.062,1.057l7.55,4.328a.633.633,0,0,0,.47.064Z" transform="translate(359.16 86.194)" fill="#f2f2f2"/>
+ <path id="Path_2197-368" data-name="Path 2197" d="M199.817,620.145a.611.611,0,0,0,.173-.073.633.633,0,0,0,.212-.87l-10.322-16.97a.633.633,0,1,0-1.081.659l10.322,16.97a.633.633,0,0,0,.7.284Z" transform="translate(360.839 85.438)" fill="#f2f2f2"/>
+ <path id="Path_2198-369" data-name="Path 2198" d="M945.069,708.9c-.61.31-1.23.62-1.84.92-15.8,7.9-28.44,12.39-45.73,17.31-1.46-16.3-2.87-44.95-4.24-62.71-.36-4.61-.72-8.48-1.07-11.21a15.183,15.183,0,0,0-.88-4.25l.06,4.25.15,11.21.87,64.11a288.589,288.589,0,0,1-65.84,9.49c-1.16.03-2.3.05-3.4.07-.39.01-.77.02-1.15.02-1.25.01-2.49.02-3.74.02a289.272,289.272,0,0,1-69.54-8.43c.49-16.13.98-44.46,1.45-65.28.1-4.07.19-7.86.29-11.21.19-7.16.39-12.32.58-14.05a4.36,4.36,0,0,0-.39.97,97.15,97. [...]
+ <circle id="Ellipse_409" data-name="Ellipse 409" cx="50.836" cy="50.836" r="50.836" transform="translate(1126.038 497.186)" fill="#ffb9b9"/>
+ <path id="Path_2199-370" data-name="Path 2199" d="M575.659,473.566l8.5-32.792,7.5,28.3Z" transform="translate(519.92 251.864)" opacity="0.2"/>
+ <path id="Path_2200-371" data-name="Path 2200" d="M961.689,614.064c-3.04,41.88.11,60.32-16.67,94.85a286.162,286.162,0,0,1-47.52,18.22q-2.55.72-5.11,1.4a288.585,288.585,0,0,1-65.84,9.49c-1.16.03-2.3.05-3.4.07-.39.01-.77.02-1.15.02-1.25.01-2.49.02-3.74.02a289.272,289.272,0,0,1-69.54-8.43q-3.42-.84-6.81-1.77a285.473,285.473,0,0,1-34.97-12.03q-9-3.75-17.68-8.09c-1.31-.66-2.62-1.32-3.91-2-6.63-11.66-10.4-25.84-10.48-42.88C679.459,633.574,951.549,588.744,961.689,614.064Z" transform="tran [...]
+ <path id="Path_2201-372" data-name="Path 2201" d="M961.681,621.236c.155-2.593.329-5.271.531-8.06-10.14-25.32-282.23,19.51-286.82,48.87.013,2.692.128,5.3.321,7.855C686.829,640.922,945.318,598.314,961.681,621.236Z" transform="translate(360 90)" opacity="0.2"/>
+ <path id="Path_2202-373" data-name="Path 2202" d="M668.1,616.039l22.334-11.167-18.611-50.251-4.9-25.342a19.161,19.161,0,0,0-31.282-10.907h0a19.161,19.161,0,0,0-2.493,26.518l18.207,22.759Z" transform="translate(370.081 118.444)" fill="#ffb9b9"/>
+ <path id="Path_2203-374" data-name="Path 2203" d="M690.436,595.567l-29.778,14.889,22.6,70.809a30.977,30.977,0,0,0,22.336,20.716h0a30.977,30.977,0,0,0,33.737-14.2L799.254,585.07a31.62,31.62,0,0,0-10.2-42.982h0a31.62,31.62,0,0,0-45.3,12.765L707.187,632.79Z" transform="translate(360 90)" fill="#2e8555"/>
+ <circle id="Ellipse_410" data-name="Ellipse 410" cx="55.935" cy="55.935" r="55.935" transform="translate(673.493 483.48)" fill="#ffb9b9"/>
+ <path id="Path_2204-375" data-name="Path 2204" d="M314.164,410.87c4.548-6.13,11.085-10.488,16.085-16.255,2.743-3.164,5.021-6.75,8.106-9.582,5.73-5.263,13.744-7.42,21.52-7.688a54.3,54.3,0,0,1,44.331,21.038l12.194-7.149,4.817,12.68a7.391,7.391,0,0,1,11.264,9.248c.967-2.989,5.4-3.623,7.842-1.649s3.1,5.488,2.7,8.6a17.32,17.32,0,0,1-13.065,14.326c-5.3,1.182-11.477-.06-15.723,3.332-3.4,2.72-4.431,7.672-7.9,10.3-4.28,3.24-10.329,1.742-15.65,2.458-9.308,1.253-16.678,10.773-15.56,20.1-.842- [...]
+ <path id="Path_2205-376" data-name="Path 2205" d="M880.582,486.046c10.642-24.4,4.613-46.85-8.36-58.76v-.01c-5.1-11.43-11.88-20.25-19.64-22.32-3.75-2.41-7.39-5.24-11.43-6.68a14.887,14.887,0,0,0-11.68.53l-2.06-.55c-4.551-.651-.111.381-6.08-1.62-8.78-4.09-16.69-5.92-23.73-5.92-22.96,0-36.54,19.44-40.14,42.94l19.19,5.11,6.67-10.63-3.08,11.59,10.59,2.81c16.12,20.99-3.17,69.41-27.62,96.35q8.73-2.415,17.39-4.08l20.98-30.76-13,28c6.75-.99,15.36-.04,24.77,1.87,3.17-4.14,4.84-9.66,3.2-14.58a [...]
+ <path id="Path_2206-377" data-name="Path 2206" d="M887.505,403.054c7.795,17.453-7.933,24.96-22.341,24.748-13.019-.192-24.084-9.338-24.748-22.341a23.576,23.576,0,0,1,22.341-24.748C875.76,380.048,882.2,391.166,887.505,403.054Z" transform="translate(360 90)" fill="#090814"/>
+ <path id="Path_2207-378" data-name="Path 2207" d="M526.5,693.633l-13.442-23.177,44.7-35.052,18.583-20.282A19.644,19.644,0,0,1,595.51,609.2,20.352,20.352,0,0,1,610.1,623.35h0c3.145,10.7-2.478,22.045-12.712,25.657L568.51,659.2Z" transform="translate(358.634 88.636)" fill="#ffb9b9"/>
+ <path id="Path_2208-379" data-name="Path 2208" d="M535.182,686.466l-19.99,16.66-5.39,4.49-.63.52q-2.085,1.035-4.2,2.04-6.33,3.015-12.82,5.73a285.491,285.491,0,0,1-34.97,12.03q-3.39.93-6.81,1.77c-1.39.34-2.79.68-4.19,1-.88.21-1.77.41-2.66.6-1.08.24-2.16.48-3.24.7q-1.7.36-3.39.69a30.963,30.963,0,0,1-9.62-22.44c0-.27,0-.55.01-.83l3.21-82.33,1.42-36.49a31.618,31.618,0,0,1,31.69-30.78c.96,0,1.91.05,2.85.14.68.88,1.31,1.79,1.92,2.71,1.66,2.46,3.9,6.35,6.54,11.23,1.09,2.01,2.24,4.19,3.45, [...]
+ <path id="Path_2209-380" data-name="Path 2209" d="M524.222,662.936c-.01,1.7-.05,3.37-.14,5.02a97.238,97.238,0,0,1-1.58,13.56,79.141,79.141,0,0,1-7.31,21.61c-.46.91-.95,1.81-1.45,2.69-1.29.68-2.6,1.34-3.91,2-.22.11-.44.22-.66.32q-8.355,4.155-17.02,7.77a285.491,285.491,0,0,1-34.97,12.03q-3.39.93-6.81,1.77-6.675,1.65-13.48,2.99a290.068,290.068,0,0,1-56.06,5.44c-1.25,0-2.49-.01-3.74-.02-.38,0-.76-.01-1.15-.02-1.1-.02-2.24-.04-3.4-.07a288.588,288.588,0,0,1-65.84-9.49q-2.565-.675-5.11-1. [...]
+ <path id="Path_2210-381" data-name="Path 2210" d="M237.408,621.236c-.155-2.593-.329-5.271-.531-8.06,10.14-25.32,282.23,19.51,286.82,48.87-.013,2.692-.128,5.3-.321,7.855C512.26,640.922,253.77,598.314,237.408,621.236Z" transform="translate(360 90)" opacity="0.2"/>
+ </g>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/zh-cn/img/index/undraw_spreadsheet.svg b/zh-cn/img/index/undraw_spreadsheet.svg
new file mode 100644
index 00000000..b7bc4ee6
--- /dev/null
+++ b/zh-cn/img/index/undraw_spreadsheet.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="840.77002" height="511.63" viewBox="0 0 840.77002 511.63" xmlns:xlink="http://www.w3.org/1999/xlink" role="img" artist="Katerina Limpitsouni" source="https://undraw.co/"><path d="M638.405,705.815c-.73-.79-1.46-1.58-2.17-2.38a122.82463,122.82463,0,0,1-16.39-22.95,97.25,97.25,0,0,1-10.22-28.63c-3.74-19.93-1.07-40.83,10.12-57.43q.41994-.63.87-1.26c.14.52.29,1.03.45,1.55a135.41037,135.41037,0,0,0,7.79,20.51c.23.52.48,1.03.74,1.54a142.15754,142.1 [...]
\ No newline at end of file
diff --git a/zh-cn/img/logo.svg b/zh-cn/img/logo.svg
new file mode 100644
index 00000000..a3de5966
--- /dev/null
+++ b/zh-cn/img/logo.svg
@@ -0,0 +1,36 @@
+<svg width="139" height="40" viewBox="0 0 139 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="Group 51">
+<g id="Union">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M26.0501 6.40647L22.7108 1.37247L14.8502 10.2688L17.9857 11.3837H20.4941L21.444 11.3837L26.0501 6.40647ZM60.2267 26.1755L57.4656 21.4217L59.043 15.9726L67.3517 10.5267L64.3066 5.64828L50.9216 21.3781L55.4215 21.9761L52.627 27.0829L56.5693 30.5607L60.2267 30.5607V26.1755ZM103.826 4.19486L106.776 8.64506L101.803 26.9968L75.4595 34.3257L72.4409 29.7855L103.826 4.19486ZM134.671 1.76463L137.622 6.21483L132.408 24.2217L126.211 30.2336L123.193 25 [...]
+<path d="M22.7108 1.37247L23.2606 1.00776L22.7855 0.291519L22.2164 0.93561L22.7108 1.37247ZM26.0501 6.40647L26.5343 6.85459L26.8866 6.47395L26.5999 6.04176L26.0501 6.40647ZM14.8502 10.2688L14.3557 9.83196L13.7094 10.5635L14.6291 10.8905L14.8502 10.2688ZM17.9857 11.3837L17.7647 12.0053L17.8719 12.0434H17.9857V11.3837ZM20.4941 11.3837L20.4941 10.7239H20.4941V11.3837ZM21.444 11.3837L21.444 12.0435L21.7324 12.0435L21.9282 11.8318L21.444 11.3837ZM57.4656 21.4217L56.8319 21.2383L56.7535 21.509 [...]
+</g>
+<g id="Group 48">
+<path id="Rectangle 4" d="M76.0534 34.4283L82.385 9.16285H106.675L100.344 34.4283H76.0534Z" fill="black" stroke="black" stroke-width="1.31954"/>
+<path id="E" d="M4.77891 29.9253L4.6775 30.5772H5.33726H11.006H11.6658L11.7672 29.9253L13.0677 21.5649H22.2569H22.9167L23.0181 20.913L23.7336 16.313L23.8351 15.6611H23.1753H13.986L14.3819 13.116H24.5213H25.181L25.2824 12.464L26.0175 7.73886L26.1189 7.08693H25.4591H15.3198H14.66H13.4883H12.8285H8.9913H8.33154L8.23012 7.73886L4.77891 29.9253Z" fill="black" stroke="black" stroke-width="1.31954"/>
+<path id="c" d="M100.935 29.8907L100.938 29.8927C102.256 30.6346 103.795 30.9998 105.538 30.9998C106.877 30.9998 108.13 30.7792 109.287 30.3229C110.455 29.8708 111.567 29.1967 112.624 28.3111L113.176 27.8481L112.772 27.3814L109.792 23.9392L109.371 23.4529L108.828 23.9709C108.527 24.2585 108.199 24.4729 107.843 24.6214C107.504 24.7623 107.081 24.8456 106.558 24.8456C106.076 24.8456 105.669 24.7368 105.323 24.5262C104.991 24.3115 104.735 24.0254 104.554 23.66C104.405 23.2937 104.36 22.8589 [...]
+<path id="x" d="M91.8963 30.3352L92.0365 30.66H92.4165H98.7502H99.9901L99.4555 29.6439L95.4929 22.1116L101.405 15.0712L102.259 14.0541H101.017H95.1263H94.7506L94.5092 14.3734L92.3983 17.1659L91.1802 14.3768L91.0393 14.0541H90.661H84.2955H83.0495L83.5914 15.0725L87.392 22.2138L81.0134 29.6358L80.1332 30.66H81.3957H87.2861H87.6514L87.8928 30.3541L90.4867 27.0686L91.8963 30.3352Z" fill="black" stroke="black" stroke-width="1.31954"/>
+<path id="e" d="M70.671 29.5842L70.671 29.5842L70.6778 29.588C72.0021 30.3089 73.5834 30.66 75.4018 30.66C76.8443 30.66 78.1915 30.4298 79.4342 29.9546C80.6978 29.4795 81.8218 28.7744 82.7965 27.8409L83.2759 27.3818L82.9059 26.9498L80.7085 24.3842L83.7621 24.3702L84.2751 24.3678L84.4759 23.8764C84.6533 23.4421 84.7867 23.0435 84.8681 22.6856C84.9667 22.3333 85.0425 21.989 85.0948 21.653C85.3412 20.0691 85.1905 18.6385 84.6239 17.3807C84.0847 16.1085 83.2002 15.1179 81.9826 14.4159C80.782 [...]
+<path id="Vector 19" d="M68.0441 28.2931L63.7236 22.2849L69.8752 26.7961L68.0441 28.2931Z" fill="black"/>
+<path id="e_2" d="M114.489 29.8289L114.489 29.829L114.496 29.8327C115.82 30.5536 117.401 30.9047 119.22 30.9047C120.662 30.9047 122.01 30.6745 123.252 30.1994C124.516 29.7242 125.64 29.0192 126.615 28.0856L127.094 27.6265L126.724 27.1945L124.527 24.6289L127.58 24.6149L128.093 24.6126L128.294 24.1211C128.471 23.6868 128.605 23.2883 128.686 22.9303C128.785 22.5781 128.861 22.2337 128.913 21.8977C129.159 20.3139 129.009 18.8833 128.442 17.6254C127.903 16.3532 127.018 15.3627 125.801 14.6606 [...]
+<path id="t" d="M58.747 31.2248L61.7644 11.9253H67.4354L64.4179 31.2248H58.747ZM56.7412 22.9885L57.3658 18.3042H70.0766L69.452 22.9885H56.7412Z" fill="black"/>
+<path id="s" d="M43.58 30.693L43.5836 30.694C44.5271 30.9594 45.5043 31.0925 46.5138 31.0925C48.5926 31.0925 50.4013 30.6334 51.8847 29.6478L51.8847 29.6478L51.8913 29.6433C53.4021 28.6181 54.3007 27.2138 54.5678 25.4963C54.7282 24.4652 54.6774 23.561 54.3585 22.8271C54.079 22.1371 53.6411 21.5794 53.0454 21.166C52.8137 20.9893 52.5723 20.8293 52.3212 20.6862L52.6337 20.4161L56.1461 17.3808L56.6276 16.9647L56.3242 16.5106C55.6594 15.5156 54.7017 14.784 53.4743 14.3095C52.2699 13.8219 50. [...]
+<path id="a" d="M23.3365 26.7678L23.3364 26.7678L23.338 26.7719C23.8237 28.06 24.62 29.0864 25.7247 29.838C26.8396 30.5966 28.1818 30.9692 29.7294 30.9692C30.7032 30.9692 31.7376 30.927 32.7447 30.5104C32.8871 30.4516 33.026 30.3869 33.1613 30.3175L33.1086 30.6563H33.7683H39.1837H39.8435L39.9449 30.0043L42.3252 14.7023L42.4266 14.0504H41.7668H36.3515H35.6917L35.6201 14.5104C35.4983 14.4439 35.3721 14.3815 35.2417 14.3233C34.4092 13.9294 33.4615 13.7374 32.4099 13.7374C30.864 13.7374 29.4 [...]
+<path id="l" d="M126.938 29.9178L126.837 30.5697H127.497H133.007H133.667L133.768 29.9178L137.317 7.10551L137.418 6.45359H136.759H131.248H130.588L130.487 7.10551L126.938 29.9178Z" fill="black" stroke="black" stroke-width="1.31954"/>
+</g>
+<g id="Group 47">
+<path id="Rectangle 4_2" d="M72.4563 29.0607L78.7878 3.7953H103.078L96.7465 29.0607H72.4563Z" fill="#79F427" stroke="black" stroke-width="1.31954"/>
+<path id="Rectangle 5" d="M77.3086 8.02875H86.9292L88.778 11.097L91.4152 8.02875H101.25V21.5989H77.3086V8.02875Z" fill="black"/>
+<path id="c_2" d="M97.3374 24.5231L97.341 24.5251C98.659 25.2671 100.197 25.6322 101.94 25.6322C103.279 25.6322 104.533 25.4117 105.69 24.9553C106.857 24.5033 107.97 23.8291 109.026 22.9435L109.579 22.4805L109.175 22.0138L106.195 18.5716L105.774 18.0854L105.231 18.6034C104.929 18.8909 104.602 19.1054 104.245 19.2538C103.906 19.3948 103.484 19.478 102.961 19.478C102.479 19.478 102.072 19.3692 101.726 19.1587C101.393 18.944 101.138 18.6578 100.956 18.2924C100.807 17.9262 100.763 17.4913 10 [...]
+<path id="x_2" d="M88.2986 24.9677L88.4388 25.2925H88.8188H95.1526H96.3924L95.8579 24.2763L91.8953 16.744L97.8074 9.70361L98.6615 8.68656H97.419H91.5286H91.1529L90.9115 9.00587L88.8006 11.7984L87.5826 9.0092L87.4417 8.68656H87.0633H80.6979H79.4518L79.9938 9.70492L83.7944 16.8463L77.4157 24.2683L76.5355 25.2925H77.7981H83.6885H84.0537L84.2952 24.9866L86.889 21.701L88.2986 24.9677Z" fill="white" stroke="black" stroke-width="1.31954"/>
+<path id="t_2" d="M53.5428 25.1124L53.4382 25.7812H54.1132H59.7841H60.429L60.5289 25.1422L61.7167 17.545H64.8181H65.4779L65.5651 16.891L66.1896 12.2067L66.2768 11.5527H65.6171H62.6536L63.5463 5.84277L63.6509 5.17391H62.976H57.305H56.6602L56.5602 5.81293L55.6628 11.5527H52.9064H52.2466L52.1594 12.2067L51.5349 16.891L51.4477 17.545H52.1074H54.7259L53.5428 25.1124Z" fill="white" stroke="black" stroke-width="1.31946"/>
+<path id="e_3" d="M67.362 24.7026L67.362 24.7026L67.3688 24.7063C68.664 25.4114 70.2101 25.7546 71.9874 25.7546C73.3973 25.7546 74.7147 25.5295 75.9302 25.0647C77.1662 24.6 78.2656 23.9103 79.2191 22.9972L79.6985 22.5381L79.3284 22.1061L77.2058 19.6276L80.1492 19.6142L80.6622 19.6118L80.863 19.1204C81.0364 18.6959 81.1669 18.3061 81.2466 17.9556C81.343 17.6113 81.4172 17.2746 81.4683 16.946C81.7092 15.3973 81.5619 13.998 81.0076 12.7673C80.4801 11.523 79.6148 10.5539 78.4239 9.86725C77.2 [...]
+<path id="e_4" d="M110.892 24.4614L110.892 24.4614L110.898 24.4651C112.223 25.1861 113.804 25.5372 115.622 25.5372C117.065 25.5372 118.412 25.307 119.655 24.8318C120.919 24.3567 122.042 23.6516 123.017 22.7181L123.497 22.259L123.127 21.827L120.929 19.2613L123.983 19.2474L124.496 19.245L124.697 18.7536C124.874 18.3192 125.007 17.9207 125.089 17.5628C125.187 17.2105 125.263 16.8662 125.316 16.5301C125.562 14.9463 125.411 13.5157 124.845 12.2578C124.305 10.9857 123.421 9.99511 122.203 9.293 [...]
+<path id="s_2" d="M39.9826 25.3254L39.9862 25.3264C40.9297 25.5918 41.9069 25.7249 42.9164 25.7249C44.9952 25.7249 46.8039 25.2659 48.2873 24.2802L48.2873 24.2803L48.2939 24.2758C49.8047 23.2505 50.7033 21.8462 50.9704 20.1288C51.1308 19.0977 51.08 18.1935 50.7611 17.4596C50.4816 16.7696 50.0437 16.2119 49.448 15.7984C49.2203 15.6248 48.9832 15.4673 48.7369 15.3261L49.057 15.0301L52.0926 12.2233L52.5417 11.8081L52.2501 11.3717C52.1644 11.2435 52.0798 11.1079 51.9928 10.9682C51.5316 10.22 [...]
+<path id="a_2" d="M19.7391 21.4002L19.739 21.4002L19.7406 21.4044C20.2263 22.6925 21.0226 23.7189 22.1273 24.4705C23.2422 25.229 24.5844 25.6016 26.132 25.6016C27.1862 25.6016 28.196 25.4087 29.1532 25.0128C29.2997 24.9522 29.4434 24.8881 29.584 24.8204L29.5111 25.2887H30.1709H35.5863H36.2461L36.3475 24.6368L38.7278 9.33474L38.8292 8.68282H38.1694H32.7541H32.0943L32.0227 9.14288C31.9009 9.07635 31.7747 9.01398 31.6443 8.95576C30.8118 8.56186 29.8641 8.36989 28.8125 8.36989C27.2665 8.3698 [...]
+<path id="l_2" d="M123.341 24.5502L123.24 25.2021H123.899H129.41H130.069L130.171 24.5502L133.719 1.73796L133.821 1.08603H133.161H127.651H126.991L126.89 1.73796L123.341 24.5502Z" fill="white" stroke="black" stroke-width="1.31954"/>
+<path id="F" d="M0.86303 24.6625L0.775838 25.3164H1.43557H7.30945H7.96918L8.05637 24.6625L9.11847 16.6967H18.7626H19.4224L19.5096 16.0428L20.1644 11.1312L20.2516 10.4772H19.5919H9.94773L10.3892 7.16626H20.5584H21.2181L21.3053 6.51232L21.9602 1.60072L22.0474 0.946782H21.3877H11.2185H10.5587H9.34458H8.68485H4.68485H4.02512L3.93793 1.60072L0.86303 24.6625Z" fill="white" stroke="black" stroke-width="1.31946"/>
+</g>
+<path id="Vector 18" d="M3.98817 31.1698L0.118164 25.9845L7.20055 25.7821L3.98817 31.1698Z" fill="black"/>
+<path id="Vector 11" d="M82.4462 33.8961H92.4155L82.4462 39.0752V33.8961Z" fill="black"/>
+</g>
+</svg>
diff --git a/zh-cn/index.html b/zh-cn/index.html
new file mode 100644
index 00000000..3381cd19
--- /dev/null
+++ b/zh-cn/index.html
@@ -0,0 +1,16 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Fesod</title><meta data-rh="true" property="og:title" content="Fesod"><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https:// [...]
+<script src="/zh-cn/assets/js/runtime~main.4bcce36e.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.dad80087.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/sitemap.xml b/zh-cn/sitemap.xml
new file mode 100644
index 00000000..b8a0b3aa
--- /dev/null
+++ b/zh-cn/sitemap.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://fesod.apache.org/zh-cn/community/bug-report/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://fesod.apache.org/zh- [...]
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@fesod.apache.org
For additional commands, e-mail: commits-help@fesod.apache.org