当前位置: 首页 > news >正文

网站后台网址在哪输入wordpress 插件语言包

网站后台网址在哪输入,wordpress 插件语言包,在哪个网站可以免费做广告,常州网络公司文章目录 导入(读取)(read)-示例及核心部件导入(读取)(read)-核心部件EasyExcel(EasyExcelFactory) # 入口read() # read()方法用于构建workbook(工作簿)对象#xff0c;new ExcelReaderBuilder()doReadAll()这里选XlsxSaxAnalyser这个实现类吧然后到这个类XlsxRowHandlernew ExcelReaderBuilder()doReadAll()这里选XlsxSaxAnalyser这个实现类吧然后到这个类XlsxRowHandler这里使用了策略模式会根据xml不同的标签拿到对应的处理类来进行处理。从上面代码找到RowTagHandler这个类每解析了一行数据后都会进行处理然后看endRow()方法进入到dealData方法中跟踪invoke()方法选用ModelBuildEventListener这个实现类吧进入到buildUserModel方法中 这块内容有点多单独拉出来要不看着太乱。 导入(读取)(read)-示例及核心部件 代码 EasyExcel.read(file.getInputStream(), UserExcelVo.class, userListener).extraRead(CellExtraTypeEnum.MERGE).sheet(0) // 指定读取哪个sheet.headRowNumber(1) // 指定标题行.doRead(); // 执行读取导入(读取)(read)-核心部件 以上面代码为例。 EasyExcel(EasyExcelFactory) # 入口 read() # read()方法用于构建workbook(工作簿)对象new ExcelReaderBuilder() public class EasyExcelFactory {public static ExcelReaderBuilder read() {return new ExcelReaderBuilder();} }public class ExcelReaderBuilder extends AbstractExcelReaderParameterBuilderExcelReaderBuilder, ReadWorkbook {/*** Workbook*/private final ReadWorkbook readWorkbook;public ExcelReaderBuilder() {this.readWorkbook new ReadWorkbook();} }doReadAll() public class ExcelReaderBuilder extends AbstractExcelReaderParameterBuilderExcelReaderBuilder, ReadWorkbook {public void doReadAll() {try (ExcelReader excelReader build()) {excelReader.readAll();}} }public class ExcelReader implements Closeable {public void readAll() {excelAnalyser.analysis(null, Boolean.TRUE);} }public class ExcelAnalyserImpl implements ExcelAnalyser { Overridepublic void analysis(ListReadSheet readSheetList, Boolean readAll) {try {if (!readAll CollectionUtils.isEmpty(readSheetList)) {throw new IllegalArgumentException(Specify at least one read sheet.);}analysisContext.readWorkbookHolder().setParameterSheetDataList(readSheetList);analysisContext.readWorkbookHolder().setReadAll(readAll);try {excelReadExecutor.execute();} catch (ExcelAnalysisStopException e) {if (LOGGER.isDebugEnabled()) {LOGGER.debug(Custom stop!);}}} catch (RuntimeException e) {finish();throw e;} catch (Throwable e) {finish();throw new ExcelAnalysisException(e);}} }这里选XlsxSaxAnalyser这个实现类吧 public class XlsxSaxAnalyser implements ExcelReadExecutor { Overridepublic void execute() {for (ReadSheet readSheet : sheetList) {readSheet SheetUtils.match(readSheet, xlsxReadContext);if (readSheet ! null) {xlsxReadContext.currentSheet(readSheet);parseXmlSource(sheetMap.get(readSheet.getSheetNo()), new XlsxRowHandler(xlsxReadContext));// Read commentsreadComments(readSheet);// The last sheet is readxlsxReadContext.analysisEventProcessor().endSheet(xlsxReadContext);}}} }然后到这个类XlsxRowHandler这里使用了策略模式会根据xml不同的标签拿到对应的处理类来进行处理。 public class XlsxRowHandler extends DefaultHandler { static {CellFormulaTagHandler cellFormulaTagHandler new CellFormulaTagHandler();XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.CELL_FORMULA_TAG, cellFormulaTagHandler);XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.X_CELL_FORMULA_TAG, cellFormulaTagHandler);XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.NS2_CELL_FORMULA_TAG, cellFormulaTagHandler);CellInlineStringValueTagHandler cellInlineStringValueTagHandler new CellInlineStringValueTagHandler();XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.CELL_INLINE_STRING_VALUE_TAG, cellInlineStringValueTagHandler);XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.X_CELL_INLINE_STRING_VALUE_TAG, cellInlineStringValueTagHandler);XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.NS2_CELL_INLINE_STRING_VALUE_TAG, cellInlineStringValueTagHandler);CellTagHandler cellTagHandler new CellTagHandler();XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.CELL_TAG, cellTagHandler);XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.X_CELL_TAG, cellTagHandler);XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.NS2_CELL_TAG, cellTagHandler);CellValueTagHandler cellValueTagHandler new CellValueTagHandler();XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.CELL_VALUE_TAG, cellValueTagHandler);XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.X_CELL_VALUE_TAG, cellValueTagHandler);XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.NS2_CELL_VALUE_TAG, cellValueTagHandler);CountTagHandler countTagHandler new CountTagHandler();XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.DIMENSION_TAG, countTagHandler);XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.X_DIMENSION_TAG, countTagHandler);XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.NS2_DIMENSION_TAG, countTagHandler);HyperlinkTagHandler hyperlinkTagHandler new HyperlinkTagHandler();XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.HYPERLINK_TAG, hyperlinkTagHandler);XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.X_HYPERLINK_TAG, hyperlinkTagHandler);XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.NS2_HYPERLINK_TAG, hyperlinkTagHandler);MergeCellTagHandler mergeCellTagHandler new MergeCellTagHandler();XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.MERGE_CELL_TAG, mergeCellTagHandler);XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.X_MERGE_CELL_TAG, mergeCellTagHandler);XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.NS2_MERGE_CELL_TAG, mergeCellTagHandler);RowTagHandler rowTagHandler new RowTagHandler();XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.ROW_TAG, rowTagHandler);XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.X_ROW_TAG, rowTagHandler);XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.NS2_ROW_TAG, rowTagHandler);} }从上面代码找到RowTagHandler这个类每解析了一行数据后都会进行处理 public class RowTagHandler extends AbstractXlsxTagHandler { Overridepublic void endElement(XlsxReadContext xlsxReadContext, String name) {XlsxReadSheetHolder xlsxReadSheetHolder xlsxReadContext.xlsxReadSheetHolder();RowTypeEnum rowType MapUtils.isEmpty(xlsxReadSheetHolder.getCellMap()) ? RowTypeEnum.EMPTY : RowTypeEnum.DATA;// Its possible that all of the cells in the row are emptyif (rowType RowTypeEnum.DATA) {boolean hasData false;for (Cell cell : xlsxReadSheetHolder.getCellMap().values()) {if (!(cell instanceof ReadCellData)) {hasData true;break;}ReadCellData? readCellData (ReadCellData?)cell;if (readCellData.getType() ! CellDataTypeEnum.EMPTY) {hasData true;break;}}if (!hasData) {rowType RowTypeEnum.EMPTY;}}xlsxReadContext.readRowHolder(new ReadRowHolder(xlsxReadSheetHolder.getRowIndex(), rowType,xlsxReadSheetHolder.getGlobalConfiguration(), xlsxReadSheetHolder.getCellMap()));xlsxReadContext.analysisEventProcessor().endRow(xlsxReadContext);xlsxReadSheetHolder.setColumnIndex(null);xlsxReadSheetHolder.setCellMap(new LinkedHashMap());} }然后看endRow()方法 public class DefaultAnalysisEventProcessor implements AnalysisEventProcessor {Overridepublic void endRow(AnalysisContext analysisContext) {if (RowTypeEnum.EMPTY.equals(analysisContext.readRowHolder().getRowType())) {if (LOGGER.isDebugEnabled()) {LOGGER.debug(Empty row!);}if (analysisContext.readWorkbookHolder().getIgnoreEmptyRow()) {return;}}dealData(analysisContext);} }进入到dealData方法中 private void dealData(AnalysisContext analysisContext) {ReadRowHolder readRowHolder analysisContext.readRowHolder();MapInteger, ReadCellData? cellDataMap (Map)readRowHolder.getCellMap();readRowHolder.setCurrentRowAnalysisResult(cellDataMap);int rowIndex readRowHolder.getRowIndex();int currentHeadRowNumber analysisContext.readSheetHolder().getHeadRowNumber();boolean isData rowIndex currentHeadRowNumber;// Last head columnif (!isData currentHeadRowNumber rowIndex 1) {buildHead(analysisContext, cellDataMap);}// Now is datafor (ReadListener readListener : analysisContext.currentReadHolder().readListenerList()) {try {if (isData) {readListener.invoke(readRowHolder.getCurrentRowAnalysisResult(), analysisContext);} else {readListener.invokeHead(cellDataMap, analysisContext);}} catch (Exception e) {onException(analysisContext, e);break;}if (!readListener.hasNext(analysisContext)) {throw new ExcelAnalysisStopException();}}}这里可以看到每解析了一行数据后都会逐个调用监听器的invoke方法包括easyexcel默认的监听器和我们自定义的监听器 跟踪invoke()方法选用ModelBuildEventListener这个实现类吧 进入到ModelBuildEventListener实现类这个实现类是easyexcel自带的默认的监听器这个监听器的主要作用是将excel的每行数据封装 public class ModelBuildEventListener implements IgnoreExceptionReadListenerMapInteger, ReadCellData? {Overridepublic void invoke(MapInteger, ReadCellData? cellDataMap, AnalysisContext context) {ReadSheetHolder readSheetHolder context.readSheetHolder();if (HeadKindEnum.CLASS.equals(readSheetHolder.excelReadHeadProperty().getHeadKind())) {context.readRowHolder().setCurrentRowAnalysisResult(buildUserModel(cellDataMap, readSheetHolder, context));return;}context.readRowHolder().setCurrentRowAnalysisResult(buildNoModel(cellDataMap, readSheetHolder, context));} }进入到buildUserModel方法中 private Object buildUserModel(MapInteger, ReadCellData? cellDataMap, ReadSheetHolder readSheetHolder,AnalysisContext context) {ExcelReadHeadProperty excelReadHeadProperty readSheetHolder.excelReadHeadProperty();Object resultModel;try {resultModel excelReadHeadProperty.getHeadClazz().newInstance();} catch (Exception e) {throw new ExcelDataConvertException(context.readRowHolder().getRowIndex(), 0,new ReadCellData(CellDataTypeEnum.EMPTY), null,Can not instance class: excelReadHeadProperty.getHeadClazz().getName(), e);}MapInteger, Head headMap excelReadHeadProperty.getHeadMap();BeanMap dataMap BeanMapUtils.create(resultModel);for (Map.EntryInteger, Head entry : headMap.entrySet()) {Integer index entry.getKey();Head head entry.getValue();String fieldName head.getFieldName();if (!cellDataMap.containsKey(index)) {continue;}ReadCellData? cellData cellDataMap.get(index);Object value ConverterUtils.convertToJavaObject(cellData, head.getField(),ClassUtils.declaredExcelContentProperty(dataMap, readSheetHolder.excelReadHeadProperty().getHeadClazz(),fieldName, readSheetHolder), readSheetHolder.converterMap(), context,context.readRowHolder().getRowIndex(), index);if (value ! null) {dataMap.put(fieldName, value);}}return resultModel;}可以看到先是通过反射创建对象然后根据反射对各个对象赋值。 至此excel的一行数据就被easyexcel默认的监听器解析成了对应的java对象然后我们在自定义的监听器中就能拿到这个对象并进行处理了。
http://www.dnsts.com.cn/news/262817.html

相关文章:

  • 网站链接的基本形式互联网装饰网站
  • 建设行业信息和技术应用服务网站网页设计html代码大全超链接
  • 江苏省住房和建设厅网站唐山公司做网站
  • 网站被挂广告怎么办中企动力科技股份有限公司怎么样
  • 网站正在建设中色综合电商网站怎么做的
  • php网站建设视频教程建个网站的电话
  • 郑州做手机网站建设电子商务系统包括
  • 网站内部优化嘉陵区建设局网站
  • 企业网站建设要求怎么制作单页网站
  • 网站建设网页制作seo查询整站
  • 深圳 手机网站建设网站内容建设与管理
  • 网站建设开票项目是什么erp生产订单管理系统
  • 网站开发提问seo网站的锚文本怎么写
  • 纪检监察工作 网站建设wordpress 点击媒体库
  • 如何做图片网站网络营销方法和手段
  • asp网上书店网站开发怎么做关于梦想的网站免费的
  • 手机网站建设机构搜索优化公司
  • 嘉兴网站建设嘉兴店铺推广软文
  • 网站备案进度外链网站 英文
  • 有什么专门搜试卷做的网站个人网站做影视
  • 网站建设有模板自己能制作展览展示设计公司
  • 广州网站开发平台广东省建设信息港网站
  • 网站开发需求ppt店面怎么做位置定位
  • 动易 网站首页wordpress函数手册下载
  • 网站建设yuanmus婺源网站建设
  • 高端网站建设找哪个公司自己在线制作logo免费u钙网
  • 官方网站建设最重要的是网站建设 公司
  • 旅游景区网站建设方案文档汝州市文明建设网站
  • 专业的企业网站设计与编辑网站必须做百度推广才能被别人搜到吗
  • 做外贸用什么网站WordPress同步自媒体