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

做菠菜网站多少钱wordpress根目录403

做菠菜网站多少钱,wordpress根目录403,重庆网站建设子沃科技,中铁建设集团有限公司地址前言 公司有个需求本来只涉及到两个下拉选项#xff0c;后面就想能不能实现多个下拉选#xff0c;当然我这里说的多个下拉选是联动的#xff0c;比如省、地市、区县这种。 实现步骤 1、添加EasyExcel的Maven依赖 dependencygroupIdcom.alibaba/group… 前言 公司有个需求本来只涉及到两个下拉选项后面就想能不能实现多个下拉选当然我这里说的多个下拉选是联动的比如省、地市、区县这种。 实现步骤 1、添加EasyExcel的Maven依赖 dependencygroupIdcom.alibaba/groupIdartifactIdeasyexcel/artifactIdversion3.3.2/version/dependency 2、一个具有多级关联的数据项 /*** excel下拉框数据项* author lcy*/ Data public class SelectItem {public SelectItem(Integer columnIndex) {this.columnIndex columnIndex;}/*** 下拉框所在列的索引从0开始*/private Integer columnIndex;/*** 下拉框的值列表*/private ListDataItem dataItems;/*** 子级对应的下拉框数据*/private SelectItem subSelect;public void addDataItem(String mappingKey,ListString values){if (this.dataItems null){this.dataItems new ArrayList();}this.dataItems.add(new DataItem(mappingKey,values));}public void addDataItem(ListString values){this.addDataItem(_UUID.randomUUID().toString().replaceAll(-,),values);}Datapublic static class DataItem{/*** 关联上级的key*/private String mappingKey;/*** 当前下拉框的值*/private ListString values;/*** 当前下拉框的引用隐藏页单元格地址*/private String hiddenFormulaRef;public DataItem(String mappingKey, ListString values) {Assert.notBlank(mappingKey,mappingKey is not blank);Assert.notEmpty(values,values is not empty);this.mappingKey mappingKey;this.values values;}}3、定义一个SheetWriteHandler这是EasyExcel提供的一个组件允许我们在sheet页生成前后做一些干预动作。 /*** author lcy*/ public class SelectWriteHandler implements SheetWriteHandler , CellWriteHandler {private static final int ROW_SIZE 10000;private final WriteFont redFont;private final ListSelectItem selectItems;private final String HIDDEN_SHEET_NAME hidden_sheet;private final SetInteger selectColumns new HashSet();private boolean isLoadSelectColumns false;private int rowIndex 0;public SelectWriteHandler(ListSelectItem selectItems) {Assert.notEmpty(selectItems, selectItems can not be empty);this.selectItems selectItems;redFont getRedFont();}Overridepublic void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {Workbook workbook writeWorkbookHolder.getWorkbook();Sheet hiddenSheet workbook.getSheet(HIDDEN_SHEET_NAME);if (hiddenSheet ! null){return ;}hiddenSheet workbook.createSheet(HIDDEN_SHEET_NAME);workbook.setSheetHidden(workbook.getSheetIndex(hiddenSheet),true);Sheet sheet writeSheetHolder.getSheet();for (SelectItem selectItem : selectItems) {buildHiddenSheetSelectRef(workbook,sheet,hiddenSheet,selectItem,null);}if (!isLoadSelectColumns){isLoadSelectColumns true;}}private void buildHiddenSheetSelectRef(Workbook workbook,Sheet sheet,Sheet hiddenSheet, SelectItem selectItem,String formulaRef ) {if (!isLoadSelectColumns){selectColumns.add(selectItem.getColumnIndex());}ListSelectItem.DataItem dataItems selectItem.getDataItems();for (SelectItem.DataItem dataItem : dataItems) {setDataAndName(workbook, hiddenSheet, dataItem);}// 单元格地址引用if (formulaRef null || formulaRef.isEmpty()){formulaRef dataItems.get(0).getHiddenFormulaRef();}// 创建检验器DataValidation dataValidation getDataValidation(sheet, selectItem, formulaRef);sheet.addValidationData(dataValidation);SelectItem subSelect selectItem.getSubSelect();if (subSelect ! null){buildHiddenSheetSelectRef(workbook,sheet,hiddenSheet,subSelect,getInDirectFormulaRef(selectItem.getColumnIndex()));}}private DataValidation getDataValidation(Sheet sheet, SelectItem selectItem, String formulaRef) {DataValidationHelper helper sheet.getDataValidationHelper();DataValidationConstraint constraint helper.createFormulaListConstraint(formulaRef);CellRangeAddressList rangeAddressList new CellRangeAddressList(1,ROW_SIZE, selectItem.getColumnIndex(), selectItem.getColumnIndex());DataValidation dataValidation helper.createValidation(constraint, rangeAddressList);dataValidation.setShowErrorBox(true);return dataValidation;}private void setDataAndName(Workbook workbook, Sheet hiddenSheet, SelectItem.DataItem dataItem) {// 构建隐藏数据Row row hiddenSheet.createRow(rowIndex);ListString values dataItem.getValues();for (int i 0; i values.size(); i) {row.createCell(i).setCellValue(values.get(i));}// 创建名称命名器Name name workbook.createName();name.setNameName(dataItem.getMappingKey());name.setRefersToFormula(getFormulaRef(row));dataItem.setHiddenFormulaRef(name.getRefersToFormula());rowIndex;}private String getInDirectFormulaRef(Integer columnIndex){CellReference slectCellReference new CellReference(1, columnIndex);return INDIRECT(joinFormulaRef(slectCellReference, false));}Overridepublic void afterCellDispose(CellWriteHandlerContext context) {if (!context.getHead()){Integer columnIndex context.getColumnIndex();if (selectColumns.contains(columnIndex)){// 设置红色字体context.getFirstCellData().getOrCreateStyle().setWriteFont(redFont);}}CellWriteHandler.super.afterCellDispose(context);}private String getFormulaRef(Row prvRow) {Cell startCell prvRow.getCell(prvRow.getFirstCellNum());Cell endCell prvRow.getCell(prvRow.getLastCellNum() - 1);return HIDDEN_SHEET_NAME ! joinFormulaRef(new CellReference(startCell),true) : joinFormulaRef(new CellReference(endCell),true);}public String joinFormulaRef(CellReference cellReference,boolean isAbsolute){StringBuilder sb new StringBuilder();String[] refs cellReference.getCellRefParts();for (int i refs.length -1 ; i 1; i--) {if (isAbsolute){sb.append($);}sb.append(refs[i]);}return sb.toString();}/*** 返回一个红色字体* return*/private WriteFont getRedFont() {WriteFont redFont new WriteFont();redFont.setColor(IndexedColors.RED.getIndex());return redFont;} } 4、准备数据 // 准备数据SelectItem selectItem new SelectItem(0);selectItem.addDataItem(List.of(浙江省,河南省));SelectItem subSelectItem new SelectItem(1);subSelectItem.addDataItem(浙江省,List.of(杭州市,宁波市));subSelectItem.addDataItem(河南省,List.of(郑州市,洛阳市,开封市));selectItem.setSubSelect(subSelectItem);SelectItem selectItem3 new SelectItem(2);selectItem3.addDataItem(杭州市,List.of(滨江区,西湖区));selectItem3.addDataItem(宁波市,List.of(宁波市1,宁波市2));selectItem3.addDataItem(郑州市,List.of(金水区,二七区));selectItem3.addDataItem(洛阳市,List.of(洛阳市1,洛阳市2));selectItem3.addDataItem(开封市,List.of(开封市1,开封市2));subSelectItem.setSubSelect(selectItem3); 5、测试 EasyExcel.write(d:\\5555.xlsx).registerWriteHandler(new SelectWriteHandler(List.of(selectItem))).sheet().doWrite(Collections.emptyList()); 完整的测试代码 public class SelectExcelTest {public static void main(String[] args) {// 准备数据SelectItem selectItem new SelectItem(0);selectItem.addDataItem(List.of(浙江省,河南省));SelectItem subSelectItem new SelectItem(1);subSelectItem.addDataItem(浙江省,List.of(杭州市,宁波市));subSelectItem.addDataItem(河南省,List.of(郑州市,洛阳市,开封市));selectItem.setSubSelect(subSelectItem);SelectItem selectItem3 new SelectItem(2);selectItem3.addDataItem(杭州市,List.of(滨江区,西湖区));selectItem3.addDataItem(宁波市,List.of(宁波市1,宁波市2));selectItem3.addDataItem(郑州市,List.of(金水区,二七区));selectItem3.addDataItem(洛阳市,List.of(洛阳市1,洛阳市2));selectItem3.addDataItem(开封市,List.of(开封市1,开封市2));subSelectItem.setSubSelect(selectItem3);EasyExcel.write(d:\\5555.xlsx).registerWriteHandler(new SelectWriteHandler(List.of(selectItem))).sheet().doWrite(Collections.emptyList());}}6、结果
http://www.hkea.cn/news/14393267/

相关文章:

  • 做网站维护做邀请函用哪个网站好呢
  • 惠州建设工程交易网站sem优化师是做什么的
  • 国内手机网站建设门店销售管理系统
  • 网站建设网络推广柯wordpress自定义右键
  • 服饰网站建设怎么在百度建设一个网站
  • 国内常见响应式网站wordpress点击插件
  • 德州做名片的网站机械产品网络推广怎么做
  • 公司外文网站制作广广东网站建设
  • 南京我爱我家网站建设新村二手房建设工程教育网app
  • 中国移动网站备案管理系统不能用中国软件公司
  • 做网站 就上微赞网浙江省长兴县建设局网站
  • 建网站平台要多少钱潍坊做网站的企业
  • 网站建设项目投资测算桥下网站制作哪家好
  • 建网站软件 优帮云苏州有做网站的公司吗
  • 网站建设 沈阳一些网站是用什么颜色做的
  • 松原公司做网站的流程站长工具seo综合查询降级
  • 在本地做的网站怎么修改域名信息网站方案
  • php做购物网站详情页的代码做h5网站的公司
  • 密云做网站的文件外链
  • 社区网站 租用服务器还是只需要购买空间长沙网络开发公司
  • 做网站后有人抢注关键词网站开发流程视频
  • 一个网站的上线流程哪个网站做轴承外贸的人比较多
  • 官网设计报价鹤壁网站优化
  • html网站开发实战教程曰本免费一级a做爰视频网站
  • 网站建设费用都选网络营销型网站建设比较好
  • 免费黄页网站做物品租赁网站
  • 威海教育行业网站建设灯光设计师培训
  • 网站seo主管招聘WordPress优化手机端
  • 外贸和网站制作wordpress外观
  • 衡水高端网站建设上饶哪里做网站