# tablex **Repository Path**: everythingwins_admin/tablex ## Basic Information - **Project Name**: tablex - **Description**: Tablex:一个专注于表格处理与分析的开源项目,提供高效的数据操作工具和API,适用于数据科学家和开发者快速处理复杂数据集。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-12-28 - **Last Updated**: 2025-12-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Tablex 通用导入导出系统 Tablex是一个高性能、可扩展的通用数据导入导出系统,支持多种格式、模板和加密功能。 ## 功能特性 - **高性能**: 支持百万级数据秒级导入导出 - **多格式支持**: Excel、CSV等多种格式 - **模板引擎**: 支持模板、占位符、映射等功能 - **加密支持**: 支持SM1-SM4、AES等多种加密算法 - **多维表格**: 支持复杂表格结构 - **可扩展**: 插件化架构,易于扩展 ## 项目结构 ``` tablex-parent/ # 父项目 ├── tablex-core/ # 核心模块 ├── tablex-export/ # 导出模块 ├── tablex-import/ # 导入模块 ├── tablex-template/ # 模板模块 ├── tablex-encryption/ # 加密模块 └── tablex-spring-starter/ # Spring Boot启动器 ``` ## 使用方法 ### 1. 添加依赖 在您的项目中添加Tablex依赖: ```xml cn.sgcc.tablex tablex-spring-starter 1.0-SNAPSHOT ``` ### 2. 配置 在`application.yml`中配置: ```yaml tablex: export: batch-size: 1000 default-format: excel enable-encryption: false import: batch-size: 1000 enable-encryption: false template: default-location: classpath:templates/ encryption: default-algorithm: AES key-length: 256 ``` ### 3. 导出数据 ```java // 获取Tablex管理器 @Autowired private TablexAutoConfiguration.TablexManager tablexManager; // 准备数据 List> dataList = new ArrayList<>(); Map row = new HashMap<>(); row.put("姓名", "张三"); row.put("年龄", 25); dataList.add(row); // 创建导出数据对象 ExportData exportData = new ExportData(); exportData.setFileName("example.xlsx"); exportData.setDataList(dataList); exportData.setFormat("excel"); // 执行导出 for (ExporterService service : tablexManager.getExporterServices()) { if (service.supports("excel")) { service.export(exportData, outputStream); break; } } ``` ### 4. 导入数据 ```java // 创建导入数据对象 ImportData importData = new ImportData(); importData.setInputStream(inputStream); importData.setFileName("example.csv"); importData.setFormat("csv"); // 执行导入 for (ImporterService service : tablexManager.getImporterServices()) { if (service.supports("csv")) { List importedData = service.importData(importData); break; } } ``` ### 5. 加密功能 系统支持多种加密算法: - AES加密 - SM2/SM3/SM4国密算法 - 可扩展其他加密算法 ## 扩展开发 ### 扩展导出格式 实现`ExporterService`接口: ```java @Component public class CustomExporterService implements ExporterService { @Override public void export(ExportData exportData, OutputStream outputStream) throws Exception { // 实现自定义导出逻辑 } @Override public boolean supports(String format) { return "custom".equalsIgnoreCase(format); } @Override public String getName() { return "Custom Exporter"; } } ``` ### 扩展加密算法 实现`EncryptionService`接口: ```java @Component public class CustomEncryptionService implements EncryptionService { @Override public byte[] encrypt(byte[] data) throws Exception { // 实现自定义加密逻辑 return data; } @Override public byte[] decrypt(byte[] encryptedData) throws Exception { // 实现自定义解密逻辑 return encryptedData; } @Override public boolean supports(String algorithm) { return "CUSTOM".equalsIgnoreCase(algorithm); } @Override public String getAlgorithmName() { return "CUSTOM"; } } ``` ## 配置选项 ### tablex.export - `batch-size`: 批处理大小,默认1000 - `default-format`: 默认导出格式,默认excel - `enable-encryption`: 是否启用加密,默认false - `default-encryption-algorithm`: 默认加密算法,默认AES ### tablex.import - `batch-size`: 批处理大小,默认1000 - `enable-encryption`: 是否启用加密,默认false - `default-encryption-algorithm`: 默认加密算法,默认AES ### tablex.template - `default-location`: 默认模板位置,默认classpath:templates/ - `default-engine`: 默认模板引擎,默认simple ### tablex.encryption - `default-algorithm`: 默认加密算法,默认AES - `key-length`: 密钥长度,默认256 ## 性能优化 - 使用流式处理避免内存溢出 - 支持分批处理大数据集 - 提供缓存机制优化性能 - 支持多线程并行处理