easyexcel-alibaba
2020-07-01 10:36:19 39 举报
easyexcel
作者其他创作
大纲/内容
循环每一个xml节点适配不同的处理器执行
向readWorkbook中注册监听器
处理完每一条记录就会回调监听器的方法
XlsxSaxAnalyser
初始化readWorkbookHolder并注入readWorkbook
执行
XlsxCellHandler
03版的数据结构处理方式:用户模式-直接用大量封装好的Workbook等对象直接操作,文件大时候,由于创建的对象多太占内存。事件模式-HSSFEventFactory 逐条处理,用户自定义监听器处理数据HSSFListener,通过实例化processRecord。
EasyExcelFactory
processWorkbookEvents处理文件(循环获取每一条Record进行处理)
选择不同的执行器XlsSaxAnalyser/XlsxSaxAnalyser
XlsxRowHandler
readWorkbook.setClazz
参数:map中取出对应的sheet流自定义处理holder
。。。
初始化excelAnalyser并注入readWorkbook
startDocument是?xml标签的回调处理方法startElement方法是读到一个xml开始标签时的回调处理方法endElement是标签结束的回调处理方法characters方法是处理xml中的v标签中间的内容的回调处理方法
XlsxSax
HSSFListener
processRecord(Record record)
继承
创建事件工厂
初始化readSheet
继承了SAXParser的DefaultHandler
初始化SAXParser解析的工作,excel转化成xml,缓存处理,格式处理等
设置readSheet的sheet名称
parseXmlSource解析sheet资源
设置readSheet的sheet下标
ExcelReaderSheetBuilder
XlsSaxAnalyser
XMLReader解析流数据
CountRowCellHandler
行的规格,大小处理
execute
readWorkbook.setFile
XlsSaxAnalyser#processRecord
把sheet流缓存在map中
回调监听器的完成通知
endHandle
doRead
EasyExcel
初始化analysisContext
processLastCellOfRow
添加监听记录的事件
ProcessResultCellHandler
row标签处理,一行结束的逻辑
read
获取不到文件类型默认xlsx
ExcelReaderBuilder
notifyEndOneRow回调监听器的方法,并清除当前行。具体数据处理交给监听器
excelReader.read(readSheet)
endElement
初始化ExcelReader
excelAnalyser.analysis(readSheet)
Xls
DefaultCellHandler
默认的标签处理。<cell>等,进行列值的缓存
初始化readWorkbook
sheet
0 条评论
下一页