Skip to content

Commit b8f6153

Browse files
authored
Merge pull request #4822 from VisActor/feat/excel-multiply-sheet-import
feat: vtable-sheet support excel multiple sheets
2 parents 6303b51 + 78300e2 commit b8f6153

28 files changed

Lines changed: 3551 additions & 794 deletions
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"changes": [
3+
{
4+
"comment": "feat: support import multiply sheets from excel file\n\n",
5+
"type": "none",
6+
"packageName": "@visactor/vtable"
7+
}
8+
],
9+
"packageName": "@visactor/vtable",
10+
"email": "892739385@qq.com"
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"changes": [
3+
{
4+
"comment": "feat: excel export multiply sheets\n\n",
5+
"type": "none",
6+
"packageName": "@visactor/vtable"
7+
}
8+
],
9+
"packageName": "@visactor/vtable",
10+
"email": "892739385@qq.com"
11+
}

docs/assets/api/en/SheetAPI.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,15 +75,16 @@ Save all data as a configuration
7575
Export the current sheet to a file
7676

7777
```
78-
exportSheetToFile: (fileType: 'csv' | 'xlsx') => void
78+
exportSheetToFile: (fileType: 'csv' | 'xlsx', allSheets: boolean = true) => void
7979
```
8080

8181
### importFileToSheet(Function)
8282

8383
Import a file to the current sheet
8484

8585
```
86-
importFileToSheet: () => void
86+
/** clearExisting Whether to clear existing sheets (default true means replace mode). Set false to append mode */
87+
importFileToSheet: (options: { clearExisting?: boolean } = { clearExisting: true }) => void
8788
```
8889

8990
### exportData(Function)

docs/assets/api/zh/SheetAPI.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,15 +75,16 @@ VTableSheet组件支持的方法如下:
7575
导出当前sheet到文件
7676

7777
```
78-
exportSheetToFile: (fileType: 'csv' | 'xlsx') => void
78+
exportSheetToFile: (fileType: 'csv' | 'xlsx', allSheets: boolean = true) => void
7979
```
8080

8181
### importFileToSheet(Function)
8282

8383
导入文件到当前sheet
8484

8585
```
86-
importFileToSheet: () => void
86+
/** clearExisting 是否清除现有的 sheet(默认 true 表示替换模式).设置false表示追加模式 */
87+
importFileToSheet: (options: { clearExisting?: boolean } = { clearExisting: true }) => void
8788
```
8889

8990
### exportData(Function)

docs/assets/guide/en/plugin/table-export.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,4 +170,10 @@ By default, the exported file will not be automatically downloaded, and you need
170170
By default, the exported file name is `export`; if you need to customize the file name, you can set `fileName` to the file name
171171

172172
## Usage Example
173-
Please refer to [table export](../../demo/export/table-export)
173+
Please refer to [table export](../../demo/export/table-export)
174+
175+
## vtable-sheet usage
176+
177+
In VTableSheet, you can refer to [VTableSheet export](../sheet/import_export).
178+
179+
Because the electronic spreadsheet needs to support exporting multiple sheets, so this plugin extends the interface ability to export all sheets, and specifically adds the exportMultipleVTablesToExcel method.
Lines changed: 67 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,72 @@
11
# Import and Export Capabilities
2-
The import and export functionality in VTable-Sheet relies on export plugins from VTable's plugin package @visactor/vtable-plugins.
2+
Import and export capabilities in VTable-Sheet rely on plugin packages from @visactor/vtable-plugins.
33

4-
Export plugin: @visactor/vtable-plugins/table-export-plugin, refer to the tutorial documentation: [Table Export](../plugin/table-export)
4+
Export plugin: @visactor/vtable-plugins/table-export-plugin, refer to the tutorial documentation: [table export](../plugin/table-export)
55

6-
Import plugin: @visactor/vtable-plugins/excel-import-plugin, refer to the tutorial documentation: [Table Import](../plugin/excel-import)
6+
Import plugin: @visactor/vtable-plugins/excel-import-plugin, refer to the tutorial documentation: [table import](../plugin/excel-import)
77

8-
Since VTable plugins only work on a single table instance, VTableSheet's current import and export capabilities are limited. It can only export data from the current sheet or import external data files into the current sheet. The export and import capabilities of VTableSheet will be expanded and improved in the future.
8+
If you want to modify the plugin configuration, you can configure the parameters of the import and export plugins through VTablePluginModules.
99

10-
If you want to modify the plugin configuration options, you can configure various parameters for the import and export plugins through VTablePluginModules.
10+
Import and export capabilities usually need to be used together with menu functionality, so you need to configure menu functionality, which can be referred to [menu functionality](./menu.md).
11+
12+
## Export sheet
13+
Export the current sheet, you can configure menuKey as VTableSheet.TYPES.MenuKey.EXPORT_CURRENT_SHEET_CSV to export a csv file, or configure menuKey as VTableSheet.TYPES.MenuKey.EXPORT_CURRENT_SHEET_XLSX to export an excel file.
14+
15+
Export excel file supports exporting all sheets, you can configure menuKey as VTableSheet.TYPES.MenuKey.EXPORT_ALL_SHEETS_XLSX to export an excel file.
16+
17+
Example:
18+
19+
```typescript
20+
mainMenu: {
21+
show: true,
22+
items: [
23+
......
24+
{
25+
name: 'Export',
26+
items: [
27+
{
28+
name: 'Export CSV',
29+
menuKey: TYPES.MainMenuItemKey.EXPORT_CURRENT_SHEET_CSV,
30+
description: 'Export current sheet data to csv'
31+
},
32+
{
33+
name: 'Export XLSX',
34+
menuKey: TYPES.MainMenuItemKey.EXPORT_CURRENT_SHEET_XLSX,
35+
description: 'Export current sheet data to xlsx'
36+
},
37+
{
38+
name: 'Export All Sheets',
39+
menuKey: TYPES.MainMenuItemKey.EXPORT_ALL_SHEETS_XLSX,
40+
description: 'Export all sheets to xlsx'
41+
}
42+
],
43+
description: 'Export current sheet data'
44+
}
45+
]
46+
}
47+
```
48+
49+
It also supports calling the export function through APIs, which can be referred to [API](../../api/SheetAPI#Methods.exportSheetToFile).
50+
51+
## Import sheet
52+
53+
Import sheet, you can configure menuKey as VTableSheet.TYPES.MenuKey.IMPORT to import a csv file or excel file.
54+
55+
Example:
56+
57+
```typescript
58+
mainMenu: {
59+
......
60+
items: [
61+
{
62+
name: 'Import',
63+
menuKey: VTableSheet.TYPES.MenuKey.IMPORT,
64+
description: 'Import data to current sheet'
65+
}
66+
]
67+
}
68+
```
69+
70+
It also supports calling the import function through APIs, which can be referred to [API](../../api/SheetAPI#Methods.importFileToSheet).
71+
72+
Import supports excel files and csv files, and supports multi-sheet import for excel files.

docs/assets/guide/zh/plugin/table-export.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,4 +169,10 @@ const tableExportPlugin = new VTablePlugins.TableExportPlugin({
169169
默认情况下,导出文件名称为`export`;如果需要自定义文件名,可以设置`fileName`为文件名
170170

171171
## 用法示例
172-
可参考[表格导出](../../demo/export/table-export)
172+
可参考[表格导出](../../demo/export/table-export)
173+
174+
## vtable-sheet中使用
175+
176+
在VTableSheet中使用时,可以参考[VTableSheet导出](../sheet/import_export)
177+
178+
因为电子表格需要支持导出多个sheet,所以这个插件扩展导出所有sheet的接口能力,具体增加了exportMultipleVTablesToExcel方法。
Lines changed: 65 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,72 @@
11
# 导入导出能力
2-
VTable-Sheet中导入导出依赖VTable的插件@visactor/vtable-plugins中的导出插件包来实现的
2+
VTable-Sheet中导入导出依赖VTable的插件@visactor/vtable-plugins中的插件包来实现的
33

44
导出插件:@visactor/vtable-plugins/table-export-plugin ,参考教程文档:[表格导出](../plugin/table-export)
55

66
导入插件:@visactor/vtable-plugins/excel-import-plugin, 参考教程文档:[表格导入](../plugin/excel-import)
77

8-
因为VTable的插件只作用于单个表格实例,所以VTableSheet目前的导入导出能力不强,只能将当前sheet的数据导出,或将外部数据文件导入到当前sheet。后续会扩展完善 VTableSheet 的导出和导入能力
8+
如果想要修改插件的配置项,可以通过VTablePluginModules配置导入和导出插件的各个参数
99

10-
如果想要修改插件的配置项,可以通过VTablePluginModules配置导入和导出插件的各个参数。
10+
导入导出能力一般要配合菜单功能一起使用,所以需要配置菜单功能,具体可以参考[菜单功能](./menu.md)
11+
12+
## 导出sheet
13+
导出当前sheet,可以在mainMenu配menuKey为VTableSheet.TYPES.MenuKey.EXPORT_CURRENT_SHEET_CSV来导出csv文件,或者配menuKey为VTableSheet.TYPES.MenuKey.EXPORT_CURRENT_SHEET_XLSX来导出excel文件。
14+
15+
导出excel文件支持全部sheet导出,可以在mainMenu配menuKey为VTableSheet.TYPES.MenuKey.EXPORT_ALL_SHEETS_XLSX来导出excel文件。
16+
17+
具体如:
18+
19+
```typescript
20+
mainMenu: {
21+
show: true,
22+
items: [
23+
......
24+
{
25+
name: '导出',
26+
items: [
27+
{
28+
name: '导出csv',
29+
menuKey: TYPES.MainMenuItemKey.EXPORT_CURRENT_SHEET_CSV,
30+
description: '导出当前sheet数据到csv'
31+
},
32+
{
33+
name: '导出xlsx',
34+
menuKey: TYPES.MainMenuItemKey.EXPORT_CURRENT_SHEET_XLSX,
35+
description: '导出当前sheet数据到xlsx'
36+
},
37+
{
38+
name: '导出全部xlsx',
39+
menuKey: TYPES.MainMenuItemKey.EXPORT_ALL_SHEETS_XLSX,
40+
description: '导出所有sheet到xlsx'
41+
}
42+
],
43+
description: '导出当前sheet数据'
44+
}
45+
]
46+
}
47+
```
48+
49+
也支持通过API调用导出功能,具体可以参考[API](../../api/SheetAPI#Methods.exportSheetToFile)
50+
51+
## 导入sheet
52+
53+
导入sheet,可以在mainMenu配menuKey为VTableSheet.TYPES.MenuKey.IMPORT来导入csv文件或excel文件。
54+
55+
具体如:
56+
57+
```typescript
58+
mainMenu: {
59+
......
60+
items: [
61+
{
62+
name: '导入',
63+
menuKey: VTableSheet.TYPES.MenuKey.IMPORT,
64+
description: '导入数据到当前sheet'
65+
}
66+
]
67+
}
68+
```
69+
70+
也支持通过API调用导入功能,具体可以参考[API](../../api/SheetAPI#Methods.importFileToSheet)
71+
72+
导入支持excel文件及csv文件,针对excel文件支持多sheet导入。

0 commit comments

Comments
 (0)