# myh-excel-reader **Repository Path**: miao-yuhan-void/myh-excel-reader ## Basic Information - **Project Name**: myh-excel-reader - **Description**: excel分段读取,可选择单线程或多线程并发的方式返回数据,提高大批量插入数据至数据库的效率 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 1 - **Created**: 2024-03-29 - **Last Updated**: 2024-05-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # myh-excel-reader #### 功能简介 excel分段读取,可选择单线程或多线程并发的方式返回数据,提高大批量插入数据至数据库的效率 1 excel分段读取,避免表格过大占用过多的资源和性能 2 可以自动封装使用者传递的对象类型,并将数据赋值到其中并返回或批量返回 3 读取excel中,以并发的方式获取数据,每次获取的数据量为使用者传入的数量 4 以并行+代理的方式将数据传递,交由使用者处理,使用者也可以选择增加前置 或 后置处理方法 5 扩展请继承AbstractDivisibleExcelBuffer,实现方法readExcel方法 #### 软件架构 1 所有的excelBuffer均继承公共抽象父类AbstractDivisibleExcelBuffer。AbstractDivisibleExcelBuffer中做了一些具体的实现,具体如何读取excel有子类实现。 2 多线程的实现类是MICClassDivisibleExcelBuffer(MIC是集成转换的意思),是线程安全的。分段读取的数据可以通过hasNext()方法检测,next()方法中获取。若返回需要的类型数据,类需要实现FieldSort接口。具体请看案例:org.myh.excel.example.ExcelDto 3 基础实现类为SimpleExcelBuffer,此类返回数据类型为String[] 4 单线程实现类为SimpleSingleThreadExcelBuffer 5 若是需要在读取excel过程中对数据做处理,需要setExcelDataCallBack(支持泛型的),ExcelDataCallBack接口声明在AbstractDivisibleExcelBuffer中 6 多线程并行的具体实现类是:org.myh.excel.support.CRECallBackDataWithDBConnect,通过exec(callback)回调数据,需要传入实现了接口ExcelDataCallback(非AbstractDivisibleExcelBuffer.ExcelDataCallback,是在主包中定义的)的类型对象 7 可以使用ConcurrentExcelBufferBuilder来构建CRECallBackDataWithDBConnect(建议此方式) 8 目前支持jdbc方式和其他(如mybatis),通过getConnectAndExcelData不同形参的钩子方法传参,另外preExcelDataHandle做数据返回前置处理,与postExcelDataHandle执行结束后置处理 #### 安装教程 将项目clone下来 使用maven打成jar包使用即可 #### 使用说明 具体看请看包 org.myh.excel.example 中的示例