Skip to content

Commit fc2156d

Browse files
committed
fix: delete no use import-plugin funcitons
1 parent f1dd2a8 commit fc2156d

4 files changed

Lines changed: 3 additions & 177 deletions

File tree

packages/vtable-plugins/src/excel-import.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,10 @@ import type { ListTable, pluginsDefinition, ColumnsDefine } from '@visactor/vtab
22
import { TABLE_EVENT_TYPE } from '@visactor/vtable';
33
import ExcelJS from 'exceljs';
44
import { importExcelMultipleSheets, importCsvFile } from './excel-import/excel';
5-
import {
6-
importExcelFileForVTableSheet,
7-
importFileForVTableSheet,
8-
applyImportToVTableSheet
9-
} from './excel-import/vtable-sheet';
5+
import { applyImportToVTableSheet } from './excel-import/vtable-sheet';
106
import type { ExcelImportOptions, ImportResult, MultiSheetImportResult } from './excel-import/types';
117

128
export type { ExcelImportOptions, ImportResult, MultiSheetImportResult, SheetData } from './excel-import/types';
13-
export { importExcelMultipleSheets } from './excel-import/excel';
149

1510
/**
1611
* Excel 导入插件
Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
export {
2-
importExcelMultipleSheets,
3-
importCsvFile,
4-
parseWorksheetToSheetData,
5-
parseMergedCells,
6-
parseCellAddress
7-
} from './excel';
8-
export { importExcelFileForVTableSheet, importFileForVTableSheet, applyImportToVTableSheet } from './vtable-sheet';
1+
export { importCsvFile, parseWorksheetToSheetData, parseMergedCells, parseCellAddress } from './excel';
2+
export { applyImportToVTableSheet } from './vtable-sheet';
93
export type { ExcelImportOptions, SheetData, MultiSheetImportResult, ImportResult } from './types';

packages/vtable-plugins/src/excel-import/vtable-sheet.ts

Lines changed: 0 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -74,61 +74,3 @@ export function applyImportToVTableSheet(
7474
vtableSheetInstance.activateSheet(importedSheetKeys[0]);
7575
}
7676
}
77-
78-
/**
79-
* 为 VTableSheet 导入 Excel 文件(直接传入 VTableSheet 实例)
80-
* @param vtableSheetInstance VTableSheet 实例
81-
* @param file Excel 文件
82-
* @param options 导入选项
83-
* @returns Promise<MultiSheetImportResult>
84-
*/
85-
export async function importExcelFileForVTableSheet(
86-
vtableSheetInstance: any,
87-
file: File,
88-
options?: ExcelImportOptions
89-
): Promise<MultiSheetImportResult> {
90-
const { importExcelMultipleSheets } = await import('./excel');
91-
const result = await importExcelMultipleSheets(file, options);
92-
93-
// 自动更新 VTable-sheet
94-
if (options?.autoTable !== false && result.sheets.length > 0) {
95-
applyImportToVTableSheet(vtableSheetInstance, result, options);
96-
}
97-
98-
return result;
99-
}
100-
101-
/**
102-
* 为 VTableSheet 导入文件(支持 Excel 和 CSV)
103-
* @param vtableSheetInstance VTableSheet 实例
104-
* @param file 文件(Excel 或 CSV)
105-
* @param options 导入选项
106-
* @returns Promise<MultiSheetImportResult>
107-
*/
108-
export async function importFileForVTableSheet(
109-
vtableSheetInstance: any,
110-
file: File,
111-
options?: ExcelImportOptions
112-
): Promise<MultiSheetImportResult> {
113-
const fileExtension = file.name.split('.').pop()?.toLowerCase();
114-
let result: MultiSheetImportResult;
115-
116-
if (fileExtension === 'csv' || fileExtension === 'txt') {
117-
// CSV 导入
118-
const { importCsvFile } = await import('./excel');
119-
result = await importCsvFile(file, options);
120-
} else if (fileExtension === 'xlsx' || fileExtension === 'xls') {
121-
// Excel 导入
122-
const { importExcelMultipleSheets } = await import('./excel');
123-
result = await importExcelMultipleSheets(file, options);
124-
} else {
125-
throw new Error(`不支持的文件类型: ${fileExtension},仅支持 Excel (.xlsx, .xls) 和 CSV (.csv, .txt)`);
126-
}
127-
128-
// 自动更新 VTable-sheet
129-
if (options?.autoTable !== false && result.sheets.length > 0) {
130-
applyImportToVTableSheet(vtableSheetInstance, result, options);
131-
}
132-
133-
return result;
134-
}

packages/vtable-sheet/src/components/vtable-sheet.ts

Lines changed: 0 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -393,111 +393,6 @@ export default class VTableSheet {
393393
this.updateSheetMenu();
394394
}
395395

396-
/**
397-
* 从 Excel 文件导入多个 sheet
398-
* @param options 导入选项
399-
* @returns Promise<{ success: boolean; importedSheets: string[]; message: string }>
400-
*/
401-
async importExcelMultipleSheets(options?: {
402-
/** 是否清除现有的 sheet(默认 false,追加模式) */
403-
clearExisting?: boolean;
404-
/** 指定要导入的 sheet 索引数组(从0开始),不指定则导入所有 */
405-
sheetIndices?: number[];
406-
/** 导入后是否激活第一个导入的 sheet(默认 true) */
407-
activateFirstSheet?: boolean;
408-
}): Promise<{ success: boolean; importedSheets: string[]; message: string }> {
409-
try {
410-
// 动态导入 ExcelImportPlugin
411-
const { ExcelImportPlugin } = await import('@visactor/vtable-plugins');
412-
413-
// 创建文件输入对话框
414-
const file = await this._selectExcelFile();
415-
if (!file) {
416-
return {
417-
success: false,
418-
importedSheets: [],
419-
message: '未选择文件'
420-
};
421-
}
422-
423-
// 使用 ExcelImportPlugin 的静态方法导入多个 sheet
424-
const importResult = await ExcelImportPlugin.importExcelMultipleSheets(file, {
425-
sheetIndices: options?.sheetIndices
426-
});
427-
428-
if (!importResult.sheets || importResult.sheets.length === 0) {
429-
return {
430-
success: false,
431-
importedSheets: [],
432-
message: 'Excel 文件中没有可导入的工作表'
433-
};
434-
}
435-
436-
// 如果需要清除现有的 sheet
437-
if (options?.clearExisting) {
438-
const existingSheets = this.getAllSheets();
439-
existingSheets.forEach(sheet => {
440-
if (sheet.sheetKey) {
441-
this.removeSheet(sheet.sheetKey);
442-
}
443-
});
444-
}
445-
446-
// 导入的 sheet key 列表
447-
const importedSheetKeys: string[] = [];
448-
449-
// 为每个导入的 sheet 创建工作表
450-
for (let i = 0; i < importResult.sheets.length; i++) {
451-
const sheetData = importResult.sheets[i];
452-
453-
// 确保 sheetKey 唯一
454-
let sheetKey = sheetData.sheetKey;
455-
let suffix = 1;
456-
while (this.getSheet(sheetKey)) {
457-
sheetKey = `${sheetData.sheetKey}_${suffix}`;
458-
suffix++;
459-
}
460-
461-
// 创建 sheet 定义
462-
const sheetDefine: ISheetDefine = {
463-
sheetKey: sheetKey,
464-
sheetTitle: sheetData.sheetTitle,
465-
data: sheetData.data as any,
466-
rowCount: Math.max(sheetData.rowCount, 100), // 至少 100 行
467-
columnCount: Math.max(sheetData.columnCount, 10), // 至少 10 列
468-
cellMerge: sheetData.cellMerge,
469-
active: false
470-
};
471-
472-
// 添加 sheet
473-
this.addSheet(sheetDefine);
474-
importedSheetKeys.push(sheetKey);
475-
}
476-
477-
// 激活第一个导入的 sheet
478-
if (options?.activateFirstSheet !== false && importedSheetKeys.length > 0) {
479-
this.activateSheet(importedSheetKeys[0]);
480-
}
481-
482-
showSnackbar(`成功导入 ${importedSheetKeys.length} 个工作表`, 2000);
483-
484-
return {
485-
success: true,
486-
importedSheets: importedSheetKeys,
487-
message: `成功导入 ${importedSheetKeys.length} 个工作表`
488-
};
489-
} catch (error) {
490-
const errorMessage = error instanceof Error ? error.message : '导入失败';
491-
showSnackbar(`导入失败: ${errorMessage}`, 3000);
492-
console.error('导入多个 sheet 失败:', error);
493-
return {
494-
success: false,
495-
importedSheets: [],
496-
message: errorMessage
497-
};
498-
}
499-
}
500-
501396
/**
502397
* 选择 Excel 文件
503398
* @returns Promise<File | null>

0 commit comments

Comments
 (0)