diff --git a/.DS_Store b/.DS_Store
index 0226576..c7f31f8 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..24a3a36
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,46 @@
+name: Deploy to Server
+
+on:
+ push:
+ branches: [ main ]
+
+jobs:
+ deploy:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: '18'
+
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v2
+ with:
+ version: 8
+
+ - name: Install Dependencies
+ run: pnpm install
+
+ - name: Build
+ run: pnpm build
+
+ - name: Create deployment package
+ run: tar -czf deploy.tar.gz .next public
+
+ - name: Setup SSH
+ uses: webfactory/ssh-agent@v0.8.0
+ with:
+ ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
+
+ - name: Add host key
+ run: |
+ mkdir -p ~/.ssh
+ ssh-keyscan -H ${{ secrets.SERVER_IP }} >> ~/.ssh/known_hosts
+
+ - name: Deploy to server
+ run: |
+ scp deploy.tar.gz package.json package-lock.json root@${{ secrets.SERVER_IP }}:/root/fastexcel-doc
+ ssh root@${{ secrets.SERVER_IP }} "cd /root/fastexcel-doc && rm -rf .next && tar -xzvf deploy.tar.gz --warning=no-unknown-keyword && pm2 restart fastexcel-doc"
\ No newline at end of file
diff --git a/pages/en-US/docs/advance_api.mdx b/pages/en-US/docs/advance_api.mdx
index 3efd940..0a58993 100644
--- a/pages/en-US/docs/advance_api.mdx
+++ b/pages/en-US/docs/advance_api.mdx
@@ -76,7 +76,7 @@ Number conversion, using `String` to receive Excel number format data will trigg
| xlsxSAXParserFactoryName | Empty | Specifies the name of the class used for sax reading, for example: `com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl`. |
| useDefaultListener | true | `@since 2.1.4`
By default, `ModelBuildEventListener` is added to help convert to the object passed in. If set to `false`, it will not assist in converting objects, and custom listeners will receive a `Map` object. If you still want to receive `class` objects, call the `readListener` method and add custom `beforeListener`, `ModelBuildEventListener`, and custom `afterListener`. |
| extraReadSet | Empty | Set of additional content to be read, not read by default. |
-| readDefaultReturn | STRING | `@since 3.2.0`
STRING: Returns an array of Map, the return value is the content you see in the excel cell without clicking on it.
ACTUAL_DATA: Returns an array of Map, the actual stored data, will automatically convert types, Object type can be `BigDecimal`, `Boolean`, `String`, `LocalDateTime`, null.
READ_CELL_DATA: Returns an array of Map>, where `?` type refers to ACTUAL_DATA.
+| readDefaultReturn | STRING | `@since 3.2.0`
STRING: Returns an array of Map<Integer,Object>, the return value is the content you see in the excel cell without clicking on it.
ACTUAL_DATA: Returns an array of Map<Integer,Object>, the actual stored data, will automatically convert types, Object type can be `BigDecimal`, `Boolean`, `String`, `LocalDateTime`, null.
READ_CELL_DATA: Returns an array of Map<Integer,ReadCellData<?>>, where `?` type refers to ACTUAL_DATA.
## ReadSheet (just a Sheet in excel) parameters
| Name | Default Value | Description |
@@ -301,6 +301,8 @@ public void dropdownWrite() {
`ReadListener` is a generic interface, with the generic type being the type of object to be read (e.g., `DemoData`). Its core methods are as follows:
-| Method | Description |
-|----------------------------------------|----------------------------------------------------------------------------------------------|
-| `void invoke(T data, AnalysisContext context)` | Triggered when
\ No newline at end of file
+| Method | Description |
+|--------|-------------|
+| `void invoke(T data, AnalysisContext context)` | Triggered when reading each row of data |
+
+
diff --git a/public/sitemap-0.xml b/public/sitemap-0.xml
index 50e845b..871ccb1 100644
--- a/public/sitemap-0.xml
+++ b/public/sitemap-0.xml
@@ -1,51 +1,79 @@
-https://chat2db.ai/en-US2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/en-US/contact2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/en-US/docs2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/en-US/docs/FAQ2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/en-US/docs/advance_api2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/en-US/docs/best_practices2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/en-US/docs/bug2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/en-US/docs/contribution2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/en-US/docs/fill2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/en-US/docs/quick_start2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/en-US/docs/read2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/en-US/docs/write2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/ja-JP2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/ja-JP/contact2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/ja-JP/docs2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/ja-JP/docs/FAQ2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/ja-JP/docs/advance_api2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/ja-JP/docs/best_practices2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/ja-JP/docs/bug2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/ja-JP/docs/contribution2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/ja-JP/docs/fill2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/ja-JP/docs/quick_start2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/ja-JP/docs/read2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/ja-JP/docs/write2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-CN2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-CN/contact2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-CN/docs2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-CN/docs/FAQ2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-CN/docs/advance_api2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-CN/docs/best_practices2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-CN/docs/bug2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-CN/docs/contribution2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-CN/docs/fill2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-CN/docs/quick_start2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-CN/docs/read2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-CN/docs/write2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-TW2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-TW/contact2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-TW/docs2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-TW/docs/FAQ2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-TW/docs/advance_api2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-TW/docs/best_practices2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-TW/docs/bug2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-TW/docs/contribution2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-TW/docs/fill2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-TW/docs/quick_start2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-TW/docs/read2024-11-28T07:50:18.878Zdaily0.7
-https://chat2db.ai/zh-TW/docs/write2024-11-28T07:50:18.878Zdaily0.7
+https://chat2db.ai/en-US2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/en-US/contact2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/en-US/docs2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/en-US/docs/FAQ2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/en-US/docs/advance_api2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/en-US/docs/best_practices2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/en-US/docs/bug2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/en-US/docs/contribution2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/en-US/docs/converter_file/converter_to_pdf2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/en-US/docs/fill/fill2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/en-US/docs/intro/one_demo2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/en-US/docs/intro/quick_start2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/en-US/docs/read/read_easy2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/en-US/docs/read/read_hard2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/en-US/docs/read/read_rows2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/en-US/docs/read/read_spring2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/en-US/docs/write/write_easy2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/en-US/docs/write/write_hard2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/en-US/docs/write/write_spring2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP/contact2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP/docs2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP/docs/FAQ2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP/docs/advance_api2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP/docs/best_practices2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP/docs/bug2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP/docs/contribution2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP/docs/converter_file/converter_to_pdf2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP/docs/fill/fill2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP/docs/intro/one_demo2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP/docs/intro/quick_start2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP/docs/read/read_easy2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP/docs/read/read_hard2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP/docs/read/read_rows2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP/docs/read/read_spring2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP/docs/write/write_easy2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP/docs/write/write_hard2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/ja-JP/docs/write/write_spring2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN/contact2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN/docs2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN/docs/FAQ2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN/docs/advance_api2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN/docs/best_practices2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN/docs/bug2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN/docs/contribution2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN/docs/converter_file/converter_to_pdf2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN/docs/fill/fill2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN/docs/intro/one_demo2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN/docs/intro/quick_start2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN/docs/read/read_easy2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN/docs/read/read_hard2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN/docs/read/read_rows2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN/docs/read/read_spring2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN/docs/write/write_easy2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN/docs/write/write_hard2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-CN/docs/write/write_spring2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-TW2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-TW/contact2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-TW/docs2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-TW/docs/FAQ2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-TW/docs/advance_api2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-TW/docs/best_practices2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-TW/docs/bug2024-12-03T00:51:36.710Zdaily0.7
+https://chat2db.ai/zh-TW/docs/contribution2024-12-03T00:51:36.711Zdaily0.7
+https://chat2db.ai/zh-TW/docs/converter_file/converter_to_pdf2024-12-03T00:51:36.711Zdaily0.7
+https://chat2db.ai/zh-TW/docs/fill/fill2024-12-03T00:51:36.711Zdaily0.7
+https://chat2db.ai/zh-TW/docs/intro/one_demo2024-12-03T00:51:36.711Zdaily0.7
+https://chat2db.ai/zh-TW/docs/intro/quick_start2024-12-03T00:51:36.711Zdaily0.7
+https://chat2db.ai/zh-TW/docs/read/read_easy2024-12-03T00:51:36.711Zdaily0.7
+https://chat2db.ai/zh-TW/docs/read/read_hard2024-12-03T00:51:36.711Zdaily0.7
+https://chat2db.ai/zh-TW/docs/read/read_rows2024-12-03T00:51:36.711Zdaily0.7
+https://chat2db.ai/zh-TW/docs/read/read_spring2024-12-03T00:51:36.711Zdaily0.7
+https://chat2db.ai/zh-TW/docs/write/write_easy2024-12-03T00:51:36.711Zdaily0.7
+https://chat2db.ai/zh-TW/docs/write/write_hard2024-12-03T00:51:36.711Zdaily0.7
+https://chat2db.ai/zh-TW/docs/write/write_spring2024-12-03T00:51:36.711Zdaily0.7
\ No newline at end of file