Skip to content

mohammadrezaeicode/mr-excel-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MR Excel

MR Excel is a tool for generating Excel files. The implementation of this library is similar to "MR Excel JavaScript". You can use the documentation from that repository for reference. example Requirement:JDK 11+

Related Projects

The following list includes new repositories related to this project. Documentation and improvements for these projects can be found in the repositories below.

  • MR Excel Java:A similar project using Java is in development. The release version is coming soon; currently, it is available as a snapshot version."repository"

  • MR Excel Editor: An editor that utilizes the library is currently under development. At present, it only generates simple results."repository""Demo"

Central repo

repo

Import in Maven project

To use the dependency, follow the structure below:

<dependency> <groupId>io.github.mohammadrezaeicode</groupId> <artifactId>excel</artifactId> <version>1.0.1</version> </dependency>

Import in Gradle project

implementation 'io.github.mohammadrezaeicode:excel:1.0.1'

Github

Import in Maven project

To use the dependency, follow the structure below:

  1. Generate a GitHub token with access to read:packages and add the server to ~/.m2/setting.xml. You can find the exact structure in this link.
<servers> <server> <id></id> <username></username> <password></password> </server> </servers>
  1. Add the repository to your pom.xml file:
<repositories> <repository> <id>github</id> <url>https://maven.pkg.github.com/mohammadrezaeicode/excel</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>
  1. Add the library to your dependencies:
<dependency> <groupId>io.github.mohammadrezaeicode</groupId> <artifactId>excel</artifactId> <version>1.0.1</version> </dependency>

Import in Gradle project

To use the dependency, follow the structure below:

  1. Generate a GitHub token with access to read:packages and configure your ~/.gradle/gradle.properties file:
gpr.user=YOUR_GITHUB_USERNAME gpr.token=YOUR_GITHUB_TOKEN
  1. Add the repository to your build.gradle file:
repositories { maven { url = uri("https://maven.pkg.github.com/mohammadrezaeicode/excel") credentials { username = project.findProperty("gpr.user") ?: System.getenv("USERNAME") password = project.findProperty("gpr.token") ?: System.getenv("TOKEN") } } }
  1. Add the library to your dependencies:
dependencies { implementation 'io.github.mohammadrezaeicode:excel:0.1-SNAPSHOT' }

Example

For the most recent updates and examples, please refer to the following link.

empty excel

GenerateExcel.generateExcel(null,null);

empty excel multi sheet

GenerateExcel.generateExcel(ExcelTable.builder() .sheet( Arrays.asList( Sheet.builder().build(), Sheet.builder().build(), Sheet.builder().build(), Sheet.builder().build() ) ) .build(), null);

style, formula

GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Arrays.asList( SheetGenerator.builder().data( Arrays.asList( Test.builder()._id(0.3). test("test1").build(), Test.builder()._id(2). test("test2").build(), Test.builder()._id(3). test("test3").build(), Test.builder()._id(4). test("test4").build(), Test.builder()._id(5). test("test5").build(), Test.builder()._id(6). test("test6").build(), Test.builder()._id(7). test("test7").build(), Test.builder()._id(8). test("test8").build(), Test.builder()._id(9). test("test9").build(), Test.builder()._id(10). test("test10").build(), Test.builder()._id(11). test("test11").build()) ).applyHeaderOptionFunction( (headers -> { for (var header : headers) { if (header.getText().equals("ID")) { header.setFormula(FormulaSetting.builder() .type(FormulaSetting.FormulaType.MAX) .styleId("formulaStyle") .build()); } } return headers; }) ).applySheetOptionFunction( sheetBuilder -> { Map<String, FormulaMapBody> formula = new HashMap<>(); formula.put("B16", FormulaSetting.builder() .type(FormulaSetting.FormulaType.SUM) .start("B2") .end("B8") .styleId("formulaStyle") .build()); sheetBuilder.tabColor("B83B5E").name("Test").formula(formula); return sheetBuilder.build(); } ) .build(), SheetGenerator.builder().data( Arrays.asList( Test.builder()._id(1). test("test1").build(), Test.builder()._id(2). test("test2").build(), Test.builder()._id(3). test("test3").build(), Test.builder()._id(4). test("test4").build(), Test.builder()._id(5). test("test5").build(), Test.builder()._id(6). test("test6").build(), Test.builder()._id(7). test("test7").build(), Test.builder()._id(8). test("test8").build(), Test.builder()._id(9). test("test9").build(), Test.builder()._id(10). test("test10").build(), Test.builder()._id(11). test("test11").build() ) ).build() ), ExcelTableOption .eBuilder() .created("2023-08-06T07:22:40Z") .modified("2023-08-06T07:22:40Z") .creator("MR Excel") .addStyles("formulaStyle", StyleBody.builder() .backgroundColor("B83B5E") .border(StyleBody.BorderOption.builder() .full(StyleBody.BorderOption.BorderBody.builder() .style(StyleBody.BorderOption.BorderBody.BorderStyle.MEDIUM) .color("F9ED69") .build()) .build()) .build()) .fileName("ex1") .build());

not save, protection option

Result<InputStream> data = GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Arrays.asList( SheetGenerator.builder().applySheetOptionFunction( sheetBuilder -> { sheetBuilder.name("family record").tabColor("#a1b4c6").sortAndFilter(SortAndFilter.builder().mode(SortAndFilter.Mode.ALL).build()); Map<Sheet.ProtectionOptionKey, Boolean> map = new HashMap<>(); map.put(Sheet.ProtectionOptionKey.SHEET, true); map.put(Sheet.ProtectionOptionKey.FORMAT_CELLS, false); map.put(Sheet.ProtectionOptionKey.FORMAT_COLUMNS, false); map.put(Sheet.ProtectionOptionKey.FORMAT_ROWS, false); map.put(Sheet.ProtectionOptionKey.INSERT_COLUMNS, false); map.put(Sheet.ProtectionOptionKey.INSERT_ROWS, false); map.put(Sheet.ProtectionOptionKey.INSERT_HYPER_LINKS, false); map.put(Sheet.ProtectionOptionKey.DELETE_COLUMNS, false); map.put(Sheet.ProtectionOptionKey.DELETE_ROWS, false); map.put(Sheet.ProtectionOptionKey.SORT, false); map.put(Sheet.ProtectionOptionKey.AUTO_FILTER, false); map.put(Sheet.ProtectionOptionKey.PIVOT_TABLES, false); sheetBuilder.protectionOption(map); return sheetBuilder.build(); } ).data( ExampleData.ex2Sheet1() ) .build(), SheetGenerator.builder().applySheetOptionFunction( sheetBuilder -> sheetBuilder.state(Sheet.State.HIDDEN).build()) .data( ExampleData.ex2Sheet2() ).build() ), ExcelTableOption .eBuilder() .created("2023-08-06T07:22:40Z") .modified("2023-08-06T07:22:40Z") .notSave(true) .generateType(GenerateType.INPUT_STREAM) .creator("MR Excel") .build()); Utils.saveZipToFile(ConverterUtil.inputStreamToByteArray(data.getFileData()), "ex2.xlsx");

style, formula

String font = "Times New Roman"; String c1 = "08D9D6"; String c2 = "252A34"; String c3 = "FF2E63"; String c4 = "EAEAEA"; GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Arrays.asList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { headers.forEach(header -> { if (header.getText().equals("id")) { header.setSize(20); header.setFormula(FormulaSetting.builder() .type(FormulaSetting.FormulaType.COUNT) .styleId("formulaStyle") .build()); } else if (header.getLabel().equals("birthDate")) { header.setSize(30); } else { header.setSize(20); } }); return headers; }) .applySheetOptionFunction( sheetBuilder -> { sheetBuilder.headerStyleKey("headerStyle").headerHeight(30); return sheetBuilder.build(); } ) .data( ExampleData.ex2Sheet1() ) .build(), SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { headers.forEach(header -> { switch (header.getLabel()) { case "id": header.setFormula(FormulaSetting.builder() .type(FormulaSetting.FormulaType.COUNT) .styleId("formulaStyle") .build()); case "surname": header.setSize(70); break; case "name": header.setSize(12); break; default: header.setSize(100); break; } }); return headers; }) .applySheetOptionFunction( sheetBuilder -> sheetBuilder .headerStyleKey("headerStyle") .withoutHeader(true) .build()) .data( ExampleData.ex2Sheet2() ).build() ), ExcelTableOption .eBuilder() .addStyles("headerStyle", StyleBody.builder() .backgroundColor(c2) .fontFamily(font) .color(c4) .size(20) .build()) .addStyles("formulaStyle", StyleBody.builder() .backgroundColor(c1) .fontFamily(font) .color(c3) .size(15) .build()) .created("2023-08-06T07:22:40Z") .modified("2023-08-06T07:22:40Z") .fileName("ex3") .creator("MR Excel") .build());

formula

String font = "Times New Roman"; String c1 = "2B2E4A"; String c2 = "E84545"; String c3 = "903749"; String c4 = "53354A"; Result<InputStream> data = GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Arrays.asList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { headers.forEach(header -> { switch (header.getLabel()){ case "date", "column5": header.setFormula(FormulaSetting.builder().type(FormulaSetting.FormulaType.COUNT).styleId("formulaStyle").build()); break; case "column1": header.setFormula(FormulaSetting.builder().type(FormulaSetting.FormulaType.AVERAGE).styleId("formulaStyle").build()); break; case "column2": header.setFormula(FormulaSetting.builder().type(FormulaSetting.FormulaType.SUM).styleId("formulaStyle").build()); break; case "column3": header.setFormula(FormulaSetting.builder().type(FormulaSetting.FormulaType.MAX).styleId("formulaStyle").build()); break; case "column4": header.setFormula(FormulaSetting.builder().type(FormulaSetting.FormulaType.MIN).styleId("formulaStyle").build()); break; default: System.out.println("not found column"); } }); return headers; }) .applySheetOptionFunction( sheetBuilder -> { Map<String, FormulaMapBody> map=new HashMap<>(); map.put("A8",FormulaSetting.builder() .type(FormulaSetting.FormulaType.SUM) .start("B2") .end("D3") .styleId("customFormulaStyle") .build()); map.put("B8",FormulaSetting.builder() .type(FormulaSetting.FormulaType.AVERAGE).start("A2").end("F6") .styleId("customFormulaStyle").build()); map.put("C8",FormulaSetting.builder() .type(FormulaSetting.FormulaType.SUM).start("A2").end("F6") .styleId("customFormulaStyle").build()); map.put("D8",FormulaSetting.builder() .type(FormulaSetting.FormulaType.MAX).start("A2").end("F6") .styleId("customFormulaStyle").build()); map.put("E8",FormulaSetting.builder() .type(FormulaSetting.FormulaType.MIN).start("A2").end("F6") .styleId("customFormulaStyle").build()); map.put("F8",FormulaSetting.builder() .type(FormulaSetting.FormulaType.COUNT).start("A2").end("F6") .styleId("customFormulaStyle").build()); sheetBuilder.formula(map).headerStyleKey("headerStyle"); return sheetBuilder.build(); } ) .data( ExampleData.ex4() ) .build() ), ExcelTableOption .eBuilder() .addStyles("headerStyle", StyleBody.builder() .backgroundColor(c1) .fontFamily(font) .color(c2) .build()) .addStyles("customFormulaStyle", StyleBody.builder() .backgroundColor(c2) .fontFamily(font) .color(c1) .size(15) .border(StyleBody.BorderOption.builder() .full(StyleBody.BorderOption.BorderBody.builder() .color(c4) .style(StyleBody.BorderOption.BorderBody.BorderStyle.DASH_DOT) .build()) .build()) .build()) .addStyles("formulaStyle", StyleBody.builder() .backgroundColor(c1) .fontFamily(font) .color(c2) .size(15) .border(StyleBody.BorderOption.builder() .full(StyleBody.BorderOption.BorderBody.builder() .color(c3) .style(StyleBody.BorderOption.BorderBody.BorderStyle.MEDIUM) .build()) .build()) .build()) .created("2023-08-06T07:22:40Z") .modified("2023-08-06T07:22:40Z") .fileName("ex4") .creator("MR Excel") .build());

format

String font = "Times New Roman"; String c1 = "2C3639"; String c2 = "3F4E4F"; String c3 = "A27B5C"; String c4 = "DCD7C9"; Map<String, StyleBody> styles=new HashMap<>(); StyleBody rowStyle=StyleBody.builder() .backgroundColor(c2) .fontFamily(font) .color(c4) .build(); StyleBody headerStyle= StyleBody.builder() .backgroundColor(c4) .fontFamily(font) .color(c2) .build(); StyleBody date=(StyleBody) rowStyle.clone(); date.setFormat("short_date"); StyleBody time=(StyleBody) rowStyle.clone(); time.setFormat("time"); StyleBody percentage=(StyleBody) rowStyle.clone(); percentage.setFormat("percentage"); StyleBody float2=(StyleBody) rowStyle.clone(); float2.setFormat("float_2"); float2.setAlignment(StyleBody.AlignmentOption.builder() .horizontal(StyleBody.AlignmentOption.AlignmentHorizontal.LEFT) .build()); StyleBody fraction=(StyleBody) rowStyle.clone(); fraction.setFormat("fraction"); StyleBody dollarRounded=(StyleBody) rowStyle.clone(); dollarRounded.setFormat("dollar_rounded"); dollarRounded.setAlignment( StyleBody.AlignmentOption.builder() .indent(3) .rtl(true) .horizontal(StyleBody.AlignmentOption.AlignmentHorizontal.LEFT) .build() ); StyleBody numSep=(StyleBody) rowStyle.clone(); numSep.setFormat("num_sep"); numSep.setAlignment(StyleBody.AlignmentOption.builder() .ltr(true) .horizontal(StyleBody.AlignmentOption.AlignmentHorizontal.LEFT) .build()); styles.put("Date",date); styles.put("Time",time); styles.put("Percentage",percentage); styles.put("Float",float2); styles.put("Fraction",fraction); styles.put("Long Number Column 1",dollarRounded); styles.put("Long Number Column 2",numSep); styles.put("headerStyle",headerStyle); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Arrays.asList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { headers.forEach(header -> { if (header.getLabel().equals("longNumberColumn1")||header.getLabel().equals("longNumberColumn2")){ header.setSize(50); } }); return headers; }) .applySheetOptionFunction( sheetBuilder -> { sheetBuilder.styleCellCondition(styleCellConditionInputFunction -> { if(styleCellConditionInputFunction.getFromHeader()){ return "headerStyle"; }else{ switch (styleCellConditionInputFunction.getColIndex()){ case 0: return "Date"; case 1: return "Time"; case 2: return "Percentage"; case 3: return "Float"; case 4: return "Fraction"; case 5: return "Long Number Column 1"; default: return "Long Number Column 2"; } } }); return sheetBuilder.build(); } ) .data( ExampleData.ex5() ) .build() ), ExcelTableOption .eBuilder() .styles(styles) .fileName("ex5") .creator("MR Excel") .build());

format, style, merge cell

String font = "Times New Roman"; String c1 = "DBE2EF"; String c2 = "112D4E"; String c4 = "F9F7F7"; Map<String, StyleBody> styles=new HashMap<>(); StyleBody rowStyle=StyleBody.builder() .backgroundColor(c2) .fontFamily(font) .color(c4) .border(StyleBody.BorderOption.builder() .full( StyleBody.BorderOption.BorderBody.builder() .style(StyleBody.BorderOption.BorderBody.BorderStyle.MEDIUM) .color(c1) .build() ) .build()) .alignment( StyleBody.AlignmentOption.builder() .horizontal( StyleBody.AlignmentOption.AlignmentHorizontal.LEFT ) .vertical( StyleBody.AlignmentOption.AlignmentVertical.TOP ) .build() ) .build(); StyleBody headerStyle= StyleBody.builder() .backgroundColor(c4) .fontFamily(font) .color(c2) .build(); StyleBody date=(StyleBody) rowStyle.clone(); date.setFormat("short_date"); StyleBody time=(StyleBody) rowStyle.clone(); time.setFormat("time"); StyleBody percentage=(StyleBody) rowStyle.clone(); percentage.setFormat("percentage"); StyleBody float2=(StyleBody) rowStyle.clone(); float2.setFormat("float_2"); StyleBody fraction=(StyleBody) rowStyle.clone(); fraction.setFormat("fraction"); StyleBody dollarRounded=(StyleBody) rowStyle.clone(); dollarRounded.setFormat("dollar_2"); StyleBody numSep=(StyleBody) rowStyle.clone(); numSep.setFormat("num_sep"); styles.put("Date",date); styles.put("Time",time); styles.put("Percentage",percentage); styles.put("Float",float2); styles.put("Fraction",fraction); styles.put("Long Number Column 1",dollarRounded); styles.put("Long Number Column 2",numSep); styles.put("headerStyle",headerStyle); styles.put("headerStyle",headerStyle); final Map<String,String> merge=new HashMap<>(); final AtomicBoolean mergeStart=new AtomicBoolean(false); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Arrays.asList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { headers.forEach(header -> { if (header.getLabel().equals("longNumberColumn1")||header.getLabel().equals("longNumberColumn2")){ header.setSize(50); } }); return headers; }) .applySheetOptionFunction( sheetBuilder -> { sheetBuilder.mergeRowDataCondition(mergeRowDataConditionInputFunction -> { if(mergeRowDataConditionInputFunction.getFromHeader()){ return false; }else{ var keyName=mergeRowDataConditionInputFunction.getKey().getName(); String mergeData=merge.get(keyName); String data=mergeRowDataConditionInputFunction.getData().toString(); if(mergeStart.get()){ if(mergeData!=null&&mergeData.equals(data)){ return true; }else{ merge.put(keyName,data); return false; } }else{ mergeStart.set(true); merge.put(keyName,data); return true; } } }); sheetBuilder.styleCellCondition(styleCellConditionInputFunction -> { if(styleCellConditionInputFunction.getFromHeader()){ return "headerStyle"; }else{ switch (styleCellConditionInputFunction.getColIndex()){ case 0: return "Date"; case 1: return "Time"; case 2: return "Percentage"; case 3: return "Float"; case 4: return "Fraction"; case 5: return "Long Number Column 1"; default: return "Long Number Column 2"; } } }); return sheetBuilder.build(); } ) .data( ExampleData.ex6() ) .build() ), ExcelTableOption .eBuilder() .styles(styles) .fileName("ex6") .creator("MR Excel") .build());

outlinelevel, hidden

String font = "Times New Roman"; String c2 = "AEE1E1"; String c4 = "FCD1D1"; String c1="112D4E"; Map<String, StyleBody> styles=new HashMap<>(); StyleBody rowStyle=StyleBody.builder() .backgroundColor(c2) .fontFamily(font) .color(c1) .alignment( StyleBody.AlignmentOption.builder() .horizontal( StyleBody.AlignmentOption.AlignmentHorizontal.LEFT ) .vertical( StyleBody.AlignmentOption.AlignmentVertical.TOP ) .build() ) .build(); StyleBody headerStyle= StyleBody.builder() .backgroundColor(c4) .fontFamily(font) .color(c1) .build(); styles.put("rowStyle",rowStyle); styles.put("headerStyle",headerStyle); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Arrays.asList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { headers.forEach(header -> { if (header.getLabel().equals("longNumberColumn1")||header.getLabel().equals("longNumberColumn2")){ header.setSize(50); } }); return headers; }) .applySheetOptionFunction( sheetBuilder -> { sheetBuilder.styleCellCondition(styleCellConditionInputFunction -> { if(styleCellConditionInputFunction.getFromHeader()){ return "headerStyle"; }else{ return "rowStyle"; } }); return sheetBuilder.build(); } ) .data( ExampleData.ex7() ) .build() ), ExcelTableOption .eBuilder() .styles(styles) .fileName("ex7") .creator("MR Excel") .build());

change getter method of hidden, outlinelevel, height

String font = "Times New Roman"; String c2 = "F9ED69"; String c4 = "F08A5D"; String c1="6A2C70"; Map<String, StyleBody> styles=new HashMap<>(); StyleBody rowStyle=StyleBody.builder() .backgroundColor(c2) .fontFamily(font) .color(c1) .alignment( StyleBody.AlignmentOption.builder() .horizontal( StyleBody.AlignmentOption.AlignmentHorizontal.LEFT ) .vertical( StyleBody.AlignmentOption.AlignmentVertical.CENTER ) .build() ) .build(); StyleBody headerStyle= StyleBody.builder() .backgroundColor(c4) .fontFamily(font) .color(c1) .build(); styles.put("rowStyle",rowStyle); styles.put("headerStyle",headerStyle); Class<OutlineCustomPropertyTest> outlineCustomPropertyTestClass=OutlineCustomPropertyTest.class; Method hightMethod=outlineCustomPropertyTestClass.getMethod("getH"); Method hiddenMethod=outlineCustomPropertyTestClass.getMethod("getNotShow"); Method outlineMethod=outlineCustomPropertyTestClass.getMethod("getGroup"); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Arrays.asList( SheetGenerator.builder() .applySheetOptionFunction( sheetBuilder -> { sheetBuilder.mapSheetDataOption( Sheet.MapSheetDataOption.<OutlineCustomPropertyTest>builder() .height(hightMethod) .hidden(hiddenMethod) .outlineLevel(outlineMethod) .build() ); sheetBuilder.styleCellCondition(styleCellConditionInputFunction -> { if(styleCellConditionInputFunction.getFromHeader()){ return "headerStyle"; }else{ return "rowStyle"; } }); return sheetBuilder.build(); } ) .data( ExampleData.ex8() ) .build() ), ExcelTableOption .eBuilder() .styles(styles) .fileName("ex8") .creator("MR Excel") .build());

styleCellCondition

String font = "Times New Roman"; String c2 = "E84545"; String c4 = "2B2E4A"; String c1="6A2C70"; StyleBody.AlignmentOption rowAlignment= StyleBody.AlignmentOption.builder() .horizontal( StyleBody.AlignmentOption.AlignmentHorizontal.LEFT ) .vertical( StyleBody.AlignmentOption.AlignmentVertical.CENTER ) .build(); Map<String, StyleBody> styles=new HashMap<>(); StyleBody rowStyle=StyleBody.builder() .backgroundColor(c2) .fontFamily(font) .color(c1) .alignment( rowAlignment ) .build(); StyleBody headerStyle= StyleBody.builder() .backgroundColor(c4) .fontFamily(font) .color("#FFFFFF") .build(); StyleBody higherBody= StyleBody.builder() .alignment(rowAlignment) .backgroundColor("DCD6F7") .color("424874") .build(); StyleBody male= StyleBody.builder() .backgroundColor("95E1D3") .color("252A34") .alignment(rowAlignment) .build(); StyleBody female= StyleBody.builder() .backgroundColor("F38181") .color("252A34") .alignment(rowAlignment) .build(); styles.put("rowStyle",rowStyle); styles.put("headerStyle",headerStyle); styles.put("c0<0.3",higherBody); styles.put("male",male); styles.put("female",female); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Arrays.asList( SheetGenerator.builder() .applySheetOptionFunction( sheetBuilder -> { sheetBuilder.styleCellCondition(styleCellConditionInputFunction -> { if(styleCellConditionInputFunction.getFromHeader()){ return "headerStyle"; }else{ Object data=styleCellConditionInputFunction.getData(); Number dataInt=null; if(data instanceof Number){ dataInt=(Number) data; } if (styleCellConditionInputFunction.getColIndex() == 0 &&dataInt!=null &&dataInt.doubleValue() < 0.3) { return "c0<0.3"; } else if (styleCellConditionInputFunction.getColIndex() == 3) { if (dataInt!=null && dataInt.intValue()>0) { return "male"; } else { return "female"; } } else { return "rowStyle"; } } }); return sheetBuilder.build(); } ) .data( ExampleData.ex9() ) .build() ), ExcelTableOption .eBuilder() .styles(styles) .fileName("ex9") .creator("MR Excel") .build());

shift sheet

String font = "Times New Roman"; String c2 = "8785A2"; String c4 = "FFC7C7"; String c1="6A2C70"; StyleBody.AlignmentOption rowAlignment= StyleBody.AlignmentOption.builder() .horizontal( StyleBody.AlignmentOption.AlignmentHorizontal.LEFT ) .vertical( StyleBody.AlignmentOption.AlignmentVertical.CENTER ) .build(); Map<String, StyleBody> styles=new HashMap<>(); StyleBody rowStyle=StyleBody.builder() .backgroundColor(c2) .fontFamily(font) .color(c1) .alignment( rowAlignment ) .build(); StyleBody headerStyle= StyleBody.builder() .backgroundColor(c4) .fontFamily(font) .color("#FFFFFF") .build(); StyleBody higherBody= StyleBody.builder() .alignment(rowAlignment) .backgroundColor("DCD6F7") .color("424874") .build(); StyleBody male= StyleBody.builder() .backgroundColor("95E1D3") .color("252A34") .alignment(rowAlignment) .build(); StyleBody female= StyleBody.builder() .backgroundColor("F38181") .color("252A34") .alignment(rowAlignment) .build(); styles.put("rowStyle",rowStyle); styles.put("headerStyle",headerStyle); styles.put("c0<0.3",higherBody); styles.put("male",male); styles.put("female",female); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Arrays.asList( SheetGenerator.builder() .applySheetOptionFunction( sheetBuilder -> { sheetBuilder.shiftTop(5); sheetBuilder.shiftLeft(5); sheetBuilder.styleCellCondition(styleCellConditionInputFunction -> { if(styleCellConditionInputFunction.getFromHeader()){ return "headerStyle"; }else{ Object data=styleCellConditionInputFunction.getData(); Number dataInt=null; if(data instanceof Number){ dataInt=(Number) data; } if (styleCellConditionInputFunction.getColIndex()-5 == 0 &&dataInt!=null &&dataInt.doubleValue() < 0.3) { return "c0<0.3"; } else if (styleCellConditionInputFunction.getColIndex()-5 == 3) { if (dataInt!=null && dataInt.intValue()>0) { return "male"; } else { return "female"; } } else { return "rowStyle"; } } }); return sheetBuilder.build(); } ) .data( ExampleData.ex9() ) .build() ), ExcelTableOption .eBuilder() .styles(styles) .fileName("ex10") .creator("MR Excel") .build());

title, shift sheet

String font = "Times New Roman"; String c2 = "8785A2"; String c4 = "FFC7C7"; String c1 = "6A2C70"; StyleBody.AlignmentOption rowAlignment = StyleBody.AlignmentOption.builder() .horizontal( StyleBody.AlignmentOption.AlignmentHorizontal.LEFT ) .vertical( StyleBody.AlignmentOption.AlignmentVertical.CENTER ) .build(); Map<String, StyleBody> styles = new HashMap<>(); StyleBody rowStyle = StyleBody.builder() .backgroundColor(c2) .fontFamily(font) .color(c1) .alignment( rowAlignment ) .build(); StyleBody headerStyle = StyleBody.builder() .backgroundColor(c4) .fontFamily(font) .color("#FFFFFF") .build(); StyleBody higherBody = StyleBody.builder() .alignment(rowAlignment) .backgroundColor("DCD6F7") .color("424874") .build(); StyleBody male = StyleBody.builder() .backgroundColor("95E1D3") .color("252A34") .alignment(rowAlignment) .build(); StyleBody female = StyleBody.builder() .backgroundColor("F38181") .color("252A34") .alignment(rowAlignment) .build(); styles.put("rowStyle", rowStyle); styles.put("headerStyle", headerStyle); styles.put("c0<0.3", higherBody); styles.put("male", male); styles.put("female", female); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Collections.singletonList( SheetGenerator.builder() .applySheetOptionFunction( sheetBuilder -> { sheetBuilder.title( Title.builder() .text("Title") .consommeRow(4) .consommeCol(6) .shiftLeft(-1) .shiftTop(1) .build() ); sheetBuilder.shiftTop(1); sheetBuilder.shiftLeft(1); sheetBuilder.styleCellCondition(styleCellConditionInputFunction -> { if (styleCellConditionInputFunction.getFromHeader()) { return "headerStyle"; } else { Object data = styleCellConditionInputFunction.getData(); Number dataInt = null; if (data instanceof Number) { dataInt = (Number) data; } if (styleCellConditionInputFunction.getColIndex() - 1 == 0 && dataInt != null && dataInt.doubleValue() < 0.3) { return "c0<0.3"; } else if (styleCellConditionInputFunction.getColIndex() - 1 == 3) { if (dataInt != null && dataInt.intValue() > 0) { return "male"; } else { return "female"; } } else { return "rowStyle"; } } }); return sheetBuilder.build(); } ) .data( ExampleData.ex9() ) .build() ), ExcelTableOption .eBuilder() .addDefaultTitleStyle(true) .styles(styles) .fileName("ex11") .creator("MR Excel") .build());

and other

public static void ex14() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { String font = "Times New Roman"; String c2 = "FFF6E0"; String c4 = "61677A"; String c1 = "6A2C70"; StyleBody.AlignmentOption rowAlignment = StyleBody.AlignmentOption.builder() .horizontal( StyleBody.AlignmentOption.AlignmentHorizontal.LEFT ) .vertical( StyleBody.AlignmentOption.AlignmentVertical.CENTER ) .build(); Map<String, StyleBody> styles = new HashMap<>(); StyleBody rowStyle = StyleBody.builder() .backgroundColor(c2) .fontFamily(font) .color(c1) .alignment( rowAlignment ) .build(); StyleBody headerStyle = StyleBody.builder() .backgroundColor(c4) .fontFamily(font) .color("#FFFFFF") .build(); StyleBody higherBody = StyleBody.builder() .alignment(rowAlignment) .backgroundColor("DCD6F7") .color("424874") .build(); StyleBody male = StyleBody.builder() .backgroundColor("95E1D3") .color("252A34") .alignment(rowAlignment) .build(); StyleBody female = StyleBody.builder() .backgroundColor("F38181") .color("252A34") .alignment(rowAlignment) .build(); styles.put("rowStyle", rowStyle); styles.put("headerStyle", headerStyle); styles.put("c0<0.3", higherBody); styles.put("male", male); styles.put("female", female); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Collections.singletonList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { headers.get(0).setComment(new Comment("misspell in header", null, "MR Excel")); return headers; }) .applySheetOptionFunction( sheetBuilder -> { sheetBuilder.title( Title.builder() .comment(new Comment("This is comment on table")) .text("Title") .consommeRow(4) .consommeCol(6) .shiftLeft(-1) .shiftTop(1) .build() ); sheetBuilder.commentCondition(commentConditionFunctionInput -> { if (commentConditionFunctionInput.getFromHeader()) { Object mainData = commentConditionFunctionInput.getData(); if (!(mainData instanceof Header)) { return new Comment("Header is invalid"); } String data = ((Header) mainData).getText(); String textDataC0 = String.valueOf(data.charAt(0)); if (!textDataC0.toUpperCase().equals(textDataC0)) { return new Comment("Header should start with " + textDataC0.toUpperCase(), null, "System"); } } return null; }).shiftTop(1).shiftLeft(1).styleCellCondition(styleCellConditionInputFunction -> { if (styleCellConditionInputFunction.getFromHeader()) { return "headerStyle"; } else { Object data = styleCellConditionInputFunction.getData(); Number dataInt = null; if (data instanceof Number) { dataInt = (Number) data; } if (styleCellConditionInputFunction.getColIndex() - 1 == 0 && dataInt != null && dataInt.doubleValue() < 0.3) { return "c0<0.3"; } else if (styleCellConditionInputFunction.getColIndex() - 1 == 3) { if (dataInt != null && dataInt.intValue() > 0) { return "male"; } else { return "female"; } } else { return "rowStyle"; } } }); return sheetBuilder.build(); } ) .data( ExampleData.ex14() ) .build() ), ExcelTableOption .eBuilder() .addDefaultTitleStyle(true) .styles(styles) .fileName("ex14") .creator("MR Excel") .build()); } public static void ex15_1() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { String font = "Times New Roman"; String c2 = "5B9A8B"; String c4 = "F7E987"; String c1 = "6A2C70"; StyleBody.AlignmentOption rowAlignment = StyleBody.AlignmentOption.builder() .horizontal( StyleBody.AlignmentOption.AlignmentHorizontal.LEFT ) .vertical( StyleBody.AlignmentOption.AlignmentVertical.CENTER ) .build(); Map<String, StyleBody> styles = new HashMap<>(); StyleBody rowStyle = StyleBody.builder() .backgroundColor(c2) .fontFamily(font) .color(c1) .alignment( rowAlignment ) .build(); StyleBody headerStyle = StyleBody.builder() .backgroundColor(c4) .fontFamily(font) .color("#FFFFFF") .build(); StyleBody higherBody = StyleBody.builder() .alignment(rowAlignment) .backgroundColor("DCD6F7") .color("424874") .build(); StyleBody male = StyleBody.builder() .backgroundColor("95E1D3") .color("252A34") .alignment(rowAlignment) .build(); StyleBody female = StyleBody.builder() .backgroundColor("F38181") .color("252A34") .alignment(rowAlignment) .build(); styles.put("rowStyle", rowStyle); styles.put("headerStyle", headerStyle); styles.put("c0<0.3", higherBody); styles.put("male", male); styles.put("female", female); styles.put("headC1", StyleBody.builder() .size(15).color("16404D") .build()); styles.put("headC2", StyleBody.builder() .size(10).color("A31D1D") .build()); styles.put("bodyC1", StyleBody.builder() .size(10).color("FBF5E5") .build()); styles.put("bodyC2", StyleBody.builder() .size(15).color("FFEB00") .build()); styles.put("title", StyleBody.builder() .size(48) .backgroundColor("E5BA73") .alignment( StyleBody.AlignmentOption.builder() .vertical(StyleBody.AlignmentOption.AlignmentVertical.CENTER) .horizontal(StyleBody.AlignmentOption.AlignmentHorizontal.CENTER) .build() ) .build()); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Collections.singletonList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { headers.get(0).setComment(new Comment("misspell in header", null, "MR Excel")); return headers; }) .applySheetOptionFunction( sheetBuilder -> { sheetBuilder.multiStyleCondition(multiStyleConditionInputFunction -> { if (multiStyleConditionInputFunction.getFromHeader()) { Header data = (Header) multiStyleConditionInputFunction.getData(); var sp = data.getText().split(""); int index = 0; List<MultiStyleValue> result = new ArrayList<>(); for (String current : sp) { result.add(new MultiStyleValue(current, index % 2 == 0 ? "headC1" : "headC2")); index++; } return result; } else { String data = multiStyleConditionInputFunction.getData().toString(); var sp = data.split(""); List<MultiStyleValue> result = new ArrayList<>(); int index = 0; for (String current : sp) { result.add(new MultiStyleValue(current, index % 2 == 0 ? "bodyC1" : "bodyC2")); index++; } return result; } }); sheetBuilder.title( Title.builder() .comment(new Comment("This is comment on table")) .text("Title") .styleId("title") .consommeRow(4) .consommeCol(6) .shiftLeft(-1) .shiftTop(1) .build() ); sheetBuilder.commentCondition(commentConditionFunctionInput -> { if (commentConditionFunctionInput.getFromHeader()) { Object mainData = commentConditionFunctionInput.getData(); if (!(mainData instanceof Header)) { return new Comment("Header is invalid"); } String data = ((Header) mainData).getText(); String textDataC0 = String.valueOf(data.charAt(0)); if (!textDataC0.toUpperCase().equals(textDataC0)) { return new Comment("Header should start with " + textDataC0.toUpperCase(), null, "System"); } } return null; }).shiftTop(1).shiftLeft(1).styleCellCondition(styleCellConditionInputFunction -> { if (styleCellConditionInputFunction.getFromHeader()) { return "headerStyle"; } else { Object data = styleCellConditionInputFunction.getData(); Number dataInt = null; if (data instanceof Number) { dataInt = (Number) data; } if (styleCellConditionInputFunction.getColIndex() - 1 == 0 && dataInt != null && dataInt.doubleValue() < 0.3) { return "c0<0.3"; } else if (styleCellConditionInputFunction.getColIndex() - 1 == 3) { if (dataInt != null && dataInt.intValue() > 0) { return "male"; } else { return "female"; } } else { return "rowStyle"; } } }); return sheetBuilder.build(); } ) .data( ExampleData.ex14() ) .build() ), ExcelTableOption .eBuilder() .addDefaultTitleStyle(true) .styles(styles) .fileName("ex15.1") .creator("MR Excel") .build()); } public static void ex15() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { String font = "Times New Roman"; String c2 = "5B9A8B"; String c4 = "F7E987"; String c1 = "6A2C70"; StyleBody.AlignmentOption rowAlignment = StyleBody.AlignmentOption.builder() .horizontal( StyleBody.AlignmentOption.AlignmentHorizontal.LEFT ) .vertical( StyleBody.AlignmentOption.AlignmentVertical.CENTER ) .build(); Map<String, StyleBody> styles = new HashMap<>(); StyleBody rowStyle = StyleBody.builder() .backgroundColor(c2) .fontFamily(font) .color(c1) .alignment( rowAlignment ) .build(); StyleBody headerStyle = StyleBody.builder() .backgroundColor(c4) .fontFamily(font) .color("#000000") .build(); StyleBody higherBody = StyleBody.builder() .alignment(rowAlignment) .backgroundColor("DCD6F7") .color("424874") .build(); StyleBody male = StyleBody.builder() .backgroundColor("95E1D3") .color("252A34") .alignment(rowAlignment) .build(); StyleBody female = StyleBody.builder() .backgroundColor("F38181") .color("252A34") .alignment(rowAlignment) .build(); styles.put("rowStyle", rowStyle); styles.put("headerStyle", headerStyle); styles.put("c0<0.3", higherBody); styles.put("male", male); styles.put("female", female); styles.put("headC1", StyleBody.builder() .size(15).color("16404D") .build()); styles.put("headC2", StyleBody.builder() .size(10).color("A31D1D") .build()); styles.put("bodyC1", StyleBody.builder() .size(10).color("FBF5E5") .build()); styles.put("bodyC2", StyleBody.builder() .size(15).color("FFEB00") .build()); styles.put("title", StyleBody.builder() .size(48) .backgroundColor("E5BA73") .alignment( StyleBody.AlignmentOption.builder() .vertical(StyleBody.AlignmentOption.AlignmentVertical.CENTER) .horizontal(StyleBody.AlignmentOption.AlignmentHorizontal.CENTER) .build() ) .build()); styles.put("t1", StyleBody.builder() .color("555555") .build()); styles.put("t2", StyleBody.builder() .size(40) .color("FFFFFF") .build()); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Collections.singletonList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { headers.get(0).setComment(new Comment("misspell in header", null, "MR Excel")); headers.get(2).setMultiStyleValue(Arrays.asList( MultiStyleValue.builder() .styleId("t1").value("N") .build(), MultiStyleValue.builder() .styleId("t2").value("a") .build() )); return headers; }) .applySheetOptionFunction( sheetBuilder -> { sheetBuilder.title( Title.builder() .comment(new Comment("This is comment on table")) .text("Can't use this text") .styleId("title") .multiStyleValue( Arrays.asList( MultiStyleValue.builder() .styleId("t2") .value("T") .build(), MultiStyleValue.builder() .value("i") .build(), MultiStyleValue.builder() .styleId("t2") .value("t") .build(), MultiStyleValue.builder() .value("l") .build(), MultiStyleValue.builder() .styleId("t2") .value("e") .build() ) ) .consommeRow(4) .consommeCol(6) .shiftLeft(-1) .shiftTop(1) .build() ); sheetBuilder.commentCondition(commentConditionFunctionInput -> { if (commentConditionFunctionInput.getFromHeader()) { Object mainData = commentConditionFunctionInput.getData(); if (!(mainData instanceof Header)) { return new Comment("Header is invalid"); } String data = ((Header) mainData).getText(); String textDataC0 = String.valueOf(data.charAt(0)); if (!textDataC0.toUpperCase().equals(textDataC0)) { return new Comment("Header should start with " + textDataC0.toUpperCase(), null, "System"); } } return null; }).shiftTop(1).shiftLeft(1).styleCellCondition(styleCellConditionInputFunction -> { if (styleCellConditionInputFunction.getFromHeader()) { return "headerStyle"; } else { Object data = styleCellConditionInputFunction.getData(); Number dataInt = null; if (data instanceof Number) { dataInt = (Number) data; } if (styleCellConditionInputFunction.getColIndex() - 1 == 0 && dataInt != null && dataInt.doubleValue() < 0.3) { return "c0<0.3"; } else if (styleCellConditionInputFunction.getColIndex() - 1 == 3) { if (dataInt != null && dataInt.intValue() > 0) { return "male"; } else { return "female"; } } else { return "rowStyle"; } } }); return sheetBuilder.build(); } ) .data( ExampleData.ex15() ) .build() ), ExcelTableOption .eBuilder() .addDefaultTitleStyle(true) .styles(styles) .fileName("ex15") .creator("MR Excel") .build()); } public static void ex16() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { String font = "Times New Roman"; String c2 = "393E46"; String c4 = "00ADB5"; String c1 = "6A2C70"; StyleBody.AlignmentOption rowAlignment = StyleBody.AlignmentOption.builder() .horizontal( StyleBody.AlignmentOption.AlignmentHorizontal.LEFT ) .vertical( StyleBody.AlignmentOption.AlignmentVertical.CENTER ) .build(); Map<String, StyleBody> styles = new HashMap<>(); StyleBody rowStyle = StyleBody.builder() .backgroundColor(c2) .fontFamily(font) .color(c1) .alignment( rowAlignment ) .build(); StyleBody headerStyle = StyleBody.builder() .backgroundColor(c4) .fontFamily(font) .color("#000000") .build(); StyleBody higherBody = StyleBody.builder() .alignment(rowAlignment) .backgroundColor("DCD6F7") .color("424874") .build(); StyleBody male = StyleBody.builder() .backgroundColor("95E1D3") .color("252A34") .alignment(rowAlignment) .build(); StyleBody female = StyleBody.builder() .backgroundColor("F38181") .color("252A34") .alignment(rowAlignment) .build(); styles.put("rowStyle", rowStyle); styles.put("headerStyle", headerStyle); styles.put("c0<0.3", higherBody); styles.put("male", male); styles.put("female", female); styles.put("headC1", StyleBody.builder() .size(15).color("16404D") .build()); styles.put("headC2", StyleBody.builder() .size(10).color("A31D1D") .build()); styles.put("bodyC1", StyleBody.builder() .size(10).color("FBF5E5") .build()); styles.put("bodyC2", StyleBody.builder() .size(15).color("FFEB00") .build()); styles.put("title", StyleBody.builder() .size(48) .backgroundColor("F9ED69") .color("6A2C70") .alignment( StyleBody.AlignmentOption.builder() .vertical(StyleBody.AlignmentOption.AlignmentVertical.CENTER) .horizontal(StyleBody.AlignmentOption.AlignmentHorizontal.CENTER) .build() ) .build()); styles.put("col1", StyleBody.builder() .color("#F9ED69") .build()); styles.put("col2", StyleBody.builder().color("FF2E63").build()); styles.put("t1", StyleBody.builder() .color("555555") .size(22) .build()); styles.put("t2", StyleBody.builder() .size(22) .color("F08A5D") .build()); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Collections.singletonList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { headers.get(0).setComment(new Comment("misspell in header", null, "MR Excel")); headers.get(2).setMultiStyleValue(Arrays.asList( MultiStyleValue.builder() .styleId("t1").value("N") .build(), MultiStyleValue.builder() .styleId("t2").value("a") .build() )); return headers; }) .applySheetOptionFunction( sheetBuilder -> { sheetBuilder.title( Title.builder() .comment(new Comment("This is comment on table")) .text("Can't use this text") .styleId("title") .multiStyleValue( Arrays.asList( MultiStyleValue.builder() .styleId("t2") .value("T") .build(), MultiStyleValue.builder() .value("i") .styleId("t1") .build(), MultiStyleValue.builder() .styleId("t2") .value("t") .build(), MultiStyleValue.builder() .styleId("t1") .value("le 1") .build() ) ) .consommeRow(4) .consommeCol(6) .shiftLeft(-1) .shiftTop(1) .build() ).commentCondition(commentConditionFunctionInput -> { if (commentConditionFunctionInput.getFromHeader()) { Object mainData = commentConditionFunctionInput.getData(); if (!(mainData instanceof Header)) { return new Comment("Header is invalid"); } String data = ((Header) mainData).getText(); String textDataC0 = String.valueOf(data.charAt(0)); if (!textDataC0.toUpperCase().equals(textDataC0)) { return new Comment("Header should start with " + textDataC0.toUpperCase(), null, "System"); } } return null; }).shiftTop(1).shiftLeft(1).styleCellCondition(styleCellConditionInputFunction -> { if (styleCellConditionInputFunction.getFromHeader()) { return "headerStyle"; } else { Object data = styleCellConditionInputFunction.getData(); Number dataInt = null; if (data instanceof Number) { dataInt = (Number) data; } if (styleCellConditionInputFunction.getColIndex() - 1 == 0 && dataInt != null && dataInt.doubleValue() < 0.3) { return "c0<0.3"; } else if (styleCellConditionInputFunction.getColIndex() - 1 == 3) { if (dataInt != null && dataInt.intValue() > 0) { return "male"; } else { return "female"; } } else { return "rowStyle"; } } }).multiStyleCondition(multiStyleConditionInputFunction -> { String data = multiStyleConditionInputFunction.getFromHeader() ? ((Header) multiStyleConditionInputFunction.getData()).getText() : (String) multiStyleConditionInputFunction.getData(); String[] charList = data.split(""); AtomicInteger index = new AtomicInteger(0); return Arrays.stream(charList).reduce(new ArrayList<>(), (result, current) -> { result.add(MultiStyleValue.builder() .styleId( index.getAndIncrement() % 2 > 0 ? "col1" : "col2" ).value(current) .build()); return result; }, (multiStyleValues, multiStyleValues2) -> { multiStyleValues.addAll(multiStyleValues2); return multiStyleValues; }); }); return sheetBuilder.build(); } ) .data( ExampleData.ex16() ) .build() ), ExcelTableOption .eBuilder() .addDefaultTitleStyle(true) .styles(styles) .fileName("ex16") .creator("MR Excel") .build()); } public static void ex17() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Collections.singletonList( SheetGenerator.builder() .applySheetOptionFunction( sheetBuilder -> { sheetBuilder.images(Arrays.asList( Sheet.ImageTypes.builder() .image(ImageInput.builder().data( "https://mohammadrezaeicode.github.io/mr-excel-page/img/ezgif.com-gif-maker.gif" ).build() ).from("H1").type(Sheet.ImageTypes.Type.ONE) .build(), Sheet.ImageTypes.builder() .image(ImageInput.builder().data( "https://mohammadrezaeicode.github.io/mr-excel-page/img/uniqe.jpg" ).build() ).from("H2").type(Sheet.ImageTypes.Type.ONE) .build(), Sheet.ImageTypes.builder() .image(ImageInput.builder().data( "https://mohammadrezaeicode.github.io/mr-excel-page/img/ex.PNG" ).build() ).from("H3").type(Sheet.ImageTypes.Type.ONE) .build(), Sheet.ImageTypes.builder() .image(ImageInput.builder().data( "https://mohammadrezaeicode.github.io/mr-excel-page/img/ex.PNG" ).build() ).from("H4").type(Sheet.ImageTypes.Type.ONE) .build() , Sheet.ImageTypes.builder() .image(ImageInput.builder().data( "https://mohammadrezaeicode.github.io/mr-excel-page/img/ezgif.com-gif-maker.gif" ).build() ).from("E1") .to("F10") .type(Sheet.ImageTypes.Type.TWO) .build(), Sheet.ImageTypes.builder() .image(ImageInput.builder().data( "https://mohammadrezaeicode.github.io/mr-excel-page/img/uniqe.jpg" ).build() ).from("H6").type(Sheet.ImageTypes.Type.TWO) .build() )); return sheetBuilder.build(); } ) .data( ExampleData.ex17() ) .build() ), ExcelTableOption .eBuilder() .fetch(Utils.fetch()) .fileName("ex17") .creator("MR Excel") .build()); } public static void ex18() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Collections.singletonList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { headers.get(0).setConditionalFormatting(ConditionalFormatting.eBuilder() .type(ConditionalFormattingOption.Type.ICON_SET) .operator(ConditionalFormattingOption.ConditionalFormattingIconSetOperation.ARROWS_3) .build()); headers.get(1).setConditionalFormatting(ConditionalFormatting.eBuilder() .type(ConditionalFormattingOption.Type.CELLS) .operator(ConditionalFormattingOption.ConditionalFormattingCellsOperation.CT) .value("a") .build()); headers.get(2).setConditionalFormatting(ConditionalFormatting.eBuilder() .type(ConditionalFormattingOption.Type.CELLS) .operator(ConditionalFormattingOption.ConditionalFormattingCellsOperation.GT) .value(10) .styleId("ct") .build()); AtomicInteger index = new AtomicInteger(1); headers.forEach(v -> { v.setText("Text " + index.getAndIncrement()); }); return headers; }) .data( ExampleData.ex18() ) .build() ), ExcelTableOption .eBuilder() .activateConditionalFormatting(true) .addStyles("ct", StyleBody.builder() .type(StyleBody.StyleType.CONDITIONAL_FORMATTING) .backgroundColor("222831") .color("EEEEEE") .build()) .fileName("ex18") .creator("MR Excel") .build()); } public static void ex19() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Collections.singletonList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { AtomicInteger index = new AtomicInteger(1); headers.forEach(v -> { v.setText("Text " + index.getAndIncrement()); }); return headers; }) .applySheetOptionFunction(sheetBuilder -> { sheetBuilder.conditionalFormatting( Arrays.asList( ConditionalFormatting.eBuilder() .type(ConditionalFormattingOption.Type.DATABAR) .start("A2") .end("B6") .build(), ConditionalFormatting.eBuilder() .type(ConditionalFormattingOption.Type.COLOR_SCALE) .start("C2") .end("C6") .build(), ConditionalFormatting.eBuilder() .type(ConditionalFormattingOption.Type.TOP) .start("D2") .end("D6") .value(2) .build(), ConditionalFormatting.eBuilder() .type(ConditionalFormattingOption.Type.TOP) .start("E2") .end("E6") .styleId("ct") .value(2) .bottom(true) .build(), ConditionalFormatting.eBuilder() .type(ConditionalFormattingOption.Type.TOP) .operator(ConditionalFormattingOption.ConditionalFormattingTopOperation.ABOVE_AVERAGE) .start("F2") .end("F6") .value(1) .build(), ConditionalFormatting.eBuilder() .type(ConditionalFormattingOption.Type.TOP) .operator(ConditionalFormattingOption.ConditionalFormattingTopOperation.BELOW_AVERAGE) .start("G2") .end("G6") .styleId("ct") .value(1) .build() ) ); return sheetBuilder.build(); }) .data( ExampleData.ex19() ) .build() ), ExcelTableOption .eBuilder() .activateConditionalFormatting(true) .addStyles("ct", StyleBody.builder() .type(StyleBody.StyleType.CONDITIONAL_FORMATTING) .backgroundColor("222831") .color("EEEEEE") .build()) .fileName("ex19") .creator("MR Excel") .build()); } public static void ex20() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Collections.singletonList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { headers.get(0).setConditionalFormatting(ConditionalFormatting.eBuilder() .type(ConditionalFormattingOption.Type.DATABAR) .build()); headers.get(1).setConditionalFormatting(ConditionalFormatting.eBuilder() .type(ConditionalFormattingOption.Type.DATABAR) .build()); headers.get(2).setConditionalFormatting(ConditionalFormatting.eBuilder() .type(ConditionalFormattingOption.Type.COLOR_SCALE) .build()); headers.get(3).setConditionalFormatting(ConditionalFormatting.eBuilder() .type(ConditionalFormattingOption.Type.TOP) .value(2) .build()); headers.get(4).setConditionalFormatting(ConditionalFormatting.eBuilder() .type(ConditionalFormattingOption.Type.TOP) .styleId("ct") .bottom(true) .value(2) .build()); headers.get(5).setConditionalFormatting(ConditionalFormatting.eBuilder() .type(ConditionalFormattingOption.Type.TOP) .operator(ConditionalFormattingOption.ConditionalFormattingTopOperation.ABOVE_AVERAGE) .value(1) .build()); headers.get(6).setConditionalFormatting(ConditionalFormatting.eBuilder() .type(ConditionalFormattingOption.Type.TOP) .operator(ConditionalFormattingOption.ConditionalFormattingTopOperation.BELOW_AVERAGE) .styleId("ct") .value(1) .build()); AtomicInteger index = new AtomicInteger(1); headers.forEach(v -> { v.setText("Text " + index.getAndIncrement()); }); return headers; }) .data( ExampleData.ex19() ) .build() ), ExcelTableOption .eBuilder() .activateConditionalFormatting(true) .addStyles("ct", StyleBody.builder() .type(StyleBody.StyleType.CONDITIONAL_FORMATTING) .backgroundColor("222831") .color("EEEEEE") .build()) .fileName("ex20") .creator("MR Excel") .build()); } public static void ex21() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { var data = ExcelTable.builder() .sheet( Arrays.asList( Sheet.builder() .headers(new ArrayList<>()) .data(new ArrayList<>()) .checkbox( Arrays.asList( Checkbox.builder() .col(3) .row(1) .link("G3") .text("Item 1") .build(), Checkbox.builder() .col(1) .row(2) .text("Item 2") .threeD(true) .build(), Checkbox.builder() .col(5) .row(1) .checked(true) .text("Item 3") .build(), Checkbox.builder() .col(1) .row(12) .text("Item 4") .mixed(true) .build() ) ) .build(), Sheet.builder() .headers(new ArrayList<>()) .data(new ArrayList<>()) .checkbox( Arrays.asList( Checkbox.builder() .col(0) .row(1) .mixed(true) .text("Item 1") .build(), Checkbox.builder() .col(1) .row(2) .text("Item 2") .link("B3") .build(), Checkbox.builder() .col(5) .row(1) .threeD(true) .text("Item 3") .build(), Checkbox.builder() .col(3) .row(3) .text("Item 4") .checked(true) .build() ) ) .build() ) ) .build(); data.applyExcelTableOption( ExcelTableOption.eBuilder() .fileName("ex21") .creator("MR Excel") .build() ); GenerateExcel.generateExcel(data, ""); } public static void ex22() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { String c1 = "2C3639"; String c2 = "3F4E4F"; String c3 = "A27B5C"; String c4 = "DCD7C9"; String font = "Times New Roman"; final Map<String, FormulaMapBody> formulaMapBodyMap = new HashMap<>(); formulaMapBodyMap.put("J7", CustomFormulaSetting.builder() .styleId("customFormulaStyle") .formula("REPLACE(D3,1,1,\"replced\")") .build()); formulaMapBodyMap.put("H8", CustomFormulaSetting.builder() .styleId("customFormulaStyle") .formula("CONCATENATE(D2, \" \", D5)") .build()); formulaMapBodyMap.put("J2:J6", CustomFormulaSetting.builder() .formula("YEAR(NOW()-A2:A6)") .build()); formulaMapBodyMap.put("K2:K6", CustomFormulaSetting.builder() .formula("LOWER(D2:D6)") .build()); formulaMapBodyMap.put("I2", CustomFormulaSetting.builder() .styleId("customFormulaStyle") .formula("COUNT(A1:B8)") .build()); formulaMapBodyMap.put("H6", NoArgFormulaSetting.builder() .noArgType(NoArgFormulaSetting.NoArgFormulaType.NOW_HOUR) .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("H5", NoArgFormulaSetting.builder() .noArgType(NoArgFormulaSetting.NoArgFormulaType.NOW) .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("H4", SingleRefFormulaSetting.builder() .type(SingleRefFormulaSetting.SingleRefFormulaType.TRIM) .referenceCell("D3") .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("H7", SingleRefFormulaSetting.builder() .type(SingleRefFormulaSetting.SingleRefFormulaType.SUMIF) .referenceCell("B1:B5") .value("\">=5\"") .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("H3", SingleRefFormulaSetting.builder() .type(SingleRefFormulaSetting.SingleRefFormulaType.COUNTIF) .referenceCell("B1:B5") .value("\">=5\"") .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("H2", SingleRefFormulaSetting.builder() .type(SingleRefFormulaSetting.SingleRefFormulaType.ABS) .referenceCell("B5") .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("I1", SingleRefFormulaSetting.builder() .type(SingleRefFormulaSetting.SingleRefFormulaType.PROPER) .referenceCell("D1") .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("G11", SingleRefFormulaSetting.builder() .type(SingleRefFormulaSetting.SingleRefFormulaType.UPPER) .referenceCell("D1") .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("G10", SingleRefFormulaSetting.builder() .type(SingleRefFormulaSetting.SingleRefFormulaType.TAN) .referenceCell("B5") .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("G8", SingleRefFormulaSetting.builder() .type(SingleRefFormulaSetting.SingleRefFormulaType.COS) .referenceCell("B5") .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("G7", SingleRefFormulaSetting.builder() .type(SingleRefFormulaSetting.SingleRefFormulaType.FLOOR) .referenceCell("B5") .value(5) .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("G2", SingleRefFormulaSetting.builder() .type(SingleRefFormulaSetting.SingleRefFormulaType.POWER) .referenceCell("B2") .value(2) .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("G3", SingleRefFormulaSetting.builder() .type(SingleRefFormulaSetting.SingleRefFormulaType.MOD) .referenceCell("B3") .value(2) .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("G4", SingleRefFormulaSetting.builder() .type(SingleRefFormulaSetting.SingleRefFormulaType.SQRT) .referenceCell("B4") .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("G5", SingleRefFormulaSetting.builder() .type(SingleRefFormulaSetting.SingleRefFormulaType.CEILING) .referenceCell("B5") .value(5) .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("G6", SingleRefFormulaSetting.builder() .type(SingleRefFormulaSetting.SingleRefFormulaType.ROUND) .referenceCell("B5") .value(5) .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("G1", SingleRefFormulaSetting.builder() .type(SingleRefFormulaSetting.SingleRefFormulaType.LEN) .referenceCell("A1") .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("A8", FormulaSetting.builder() .type(FormulaSetting.FormulaType.SUM) .start("B2") .end("D3") .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("B8", FormulaSetting.builder() .type(FormulaSetting.FormulaType.AVERAGE) .start("A2") .end("F6") .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("C8", FormulaSetting.builder() .type(FormulaSetting.FormulaType.SUM) .start("A2") .end("F6") .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("D8", FormulaSetting.builder() .type(FormulaSetting.FormulaType.MAX) .start("A2") .end("F6") .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("E8", FormulaSetting.builder() .type(FormulaSetting.FormulaType.MIN) .start("A2") .end("F6") .styleId("customFormulaStyle") .build()); formulaMapBodyMap.put("F8", FormulaSetting.builder() .type(FormulaSetting.FormulaType.MIN) .start("A2") .end("F6") .styleId("customFormulaStyle") .build()); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Collections.singletonList( SheetGenerator.builder() .applySheetOptionFunction(sheetBuilder -> sheetBuilder.formula(formulaMapBodyMap).build()) .applyHeaderOptionFunction(headers -> { AtomicInteger index = new AtomicInteger(1); headers.forEach(v -> { switch (index.get()) { case 1: v.setFormula(FormulaSetting.builder() .type(FormulaSetting.FormulaType.COUNT) .styleId("formulaStyle") .build()); break; case 2: v.setFormula(FormulaSetting.builder() .type(FormulaSetting.FormulaType.AVERAGE) .styleId("formulaStyle") .build()); break; case 3: v.setFormula(FormulaSetting.builder() .type(FormulaSetting.FormulaType.SUM) .styleId("formulaStyle") .build()); break; case 4: v.setFormula(FormulaSetting.builder() .type(FormulaSetting.FormulaType.MAX) .styleId("formulaStyle") .build()); break; case 5: v.setFormula(FormulaSetting.builder() .type(FormulaSetting.FormulaType.MIN) .styleId("formulaStyle") .build()); break; case 6: v.setFormula(FormulaSetting.builder() .type(FormulaSetting.FormulaType.COUNT) .styleId("formulaStyle") .build()); break; } v.setText("Text " + index.getAndIncrement()); }); return headers; }) .data( ExampleData.ex22() ) .build() ), ExcelTableOption .eBuilder() .activateConditionalFormatting(true) .addStyles("headerStyle", StyleBody.builder() .backgroundColor("2B2E4A") .fontFamily(font) .color("E84545") .build()) .addStyles("Date", StyleBody.builder() .format("short_date") .backgroundColor(c2) .fontFamily(font) .color(c4) .build()) .addStyles( "customFormulaStyle", StyleBody.builder() .size(15) .fontFamily(font) .color("2B2E4A") .backgroundColor("E84545") .border(StyleBody.BorderOption.builder() .full( StyleBody.BorderOption.BorderBody.builder() .color("53354A") .style(StyleBody.BorderOption.BorderBody.BorderStyle.DASH_DOT) .build() ).build()) .build() ) .addStyles("formulaStyle", StyleBody.builder() .size(15) .fontFamily(font) .color("E84545") .backgroundColor("2B2E4A") .border(StyleBody.BorderOption.builder() .full( StyleBody.BorderOption.BorderBody.builder() .color("903749") .style(StyleBody.BorderOption.BorderBody.BorderStyle.MEDIUM) .build() ).build()) .build()) .fileName("ex22") .creator("MR Excel") .build()); } public static void ex24() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Collections.singletonList( SheetGenerator.builder() .applySheetOptionFunction(sheetBuilder -> sheetBuilder.asTable(new Sheet.AsTableOption()).build()) .data( ExampleData.ex2Sheet2() ) .build() ), ExcelTableOption .eBuilder() .fileName("ex24") .creator("MR Excel") .build()); } public static void ex25() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { String c1 = "561C24"; String c2 = "6D2932"; String c3 = "C7B7A3"; String c4 = "E8D8C4"; String font = "Times New Roman"; StyleBody first = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c2).color(c1).fontFamily(font) .build(); StyleBody second = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c1) .color(c2) .fontFamily(font) .build(); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet( Collections.singletonList( SheetGenerator.builder() .applySheetOptionFunction(sheetBuilder -> { sheetBuilder.pageOption(PageOption.builder() .margin(PageOption.Margin.builder() .top(.85) .left(.85) .right(.85).bottom(.85) .build()) .footer( PageOption.HeaderFooterTypes.builder() .even(PageOption.HeaderFooterTypes.HeaderFooterLocationMap.builder() .c( PageOption.HeaderFooterTypes.HeaderFooterLocationMap.HeaderFooterOption.builder() .text("Even Footers center") .styleId("second") .build() ) .build()) .build() ) .header(PageOption.HeaderFooterTypes.builder() .first(PageOption.HeaderFooterTypes.HeaderFooterLocationMap.builder() .c( PageOption.HeaderFooterTypes.HeaderFooterLocationMap.HeaderFooterOption.builder() .text("First Header center") .styleId("first") .build() ).l( PageOption.HeaderFooterTypes.HeaderFooterLocationMap.HeaderFooterOption.builder() .text("First Header Left") .build() ) .build()) .odd(PageOption.HeaderFooterTypes.HeaderFooterLocationMap.builder() .r(PageOption.HeaderFooterTypes.HeaderFooterLocationMap.HeaderFooterOption.builder() .text("Odd Headers right") .build()) .build()) .build()) .build()); return sheetBuilder.build(); }) .data( ExampleData.ex2Sheet1() ) .build() ), ExcelTableOption .eBuilder() .addStyles("first", first).addStyles( "second", second ) .fileName("ex25") .creator("MR Excel") .build()); } public static void ex26() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { String c1 = "561C24"; String c2 = "6D2932"; String c3 = "C7B7A3"; String c4 = "E8D8C4"; String font = "Times New Roman"; StyleBody first = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c2).color(c4).fontFamily(font) .build(); StyleBody second = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c4) .color(c2) .fontFamily(font) .build(); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet( Collections.singletonList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { headers.addAll(headers); return headers; }) .applySheetOptionFunction(sheetBuilder -> { sheetBuilder.viewOption(ViewOption.builder() .type(ViewOption.Type.PAGE_BREAK_PREVIEW). hideGrid(true).hideHeadlines(true) .build()); return sheetBuilder.build(); }) .data( ExampleData.ex2Sheet1() ) .build() ), ExcelTableOption .eBuilder() .addStyles("first", first) .addStyles("second", second) .fileName("ex26") .creator("MR Excel") .build()); } public static void ex27() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { String c1 = "561C24"; String c2 = "6D2932"; String c3 = "C7B7A3"; String c4 = "E8D8C4"; String font = "Times New Roman"; StyleBody first = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c2).color(c4).fontFamily(font) .build(); StyleBody second = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c4) .color(c2) .fontFamily(font) .build(); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet( Collections.singletonList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { var arr = headers; headers.addAll(arr); return headers; }) .applySheetOptionFunction(sheetBuilder -> { sheetBuilder.viewOption(ViewOption.builder() .type(ViewOption.Type.PAGE_LAYOUT).hideRuler(true) .build()); return sheetBuilder.build(); }) .data( ExampleData.ex2Sheet1() ) .build() ), ExcelTableOption .eBuilder() .addStyles("first", first) .addStyles("second", second) .fileName("ex27") .creator("MR Excel") .build()); } public static void ex28() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { String c1 = "561C24"; String c2 = "6D2932"; String c3 = "C7B7A3"; String c4 = "E8D8C4"; String font = "Times New Roman"; StyleBody first = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c2).color(c4).fontFamily(font) .build(); StyleBody second = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c4) .color(c2) .fontFamily(font) .build(); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet( Collections.singletonList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { var arr = headers; headers.addAll(arr); return headers; }) .applySheetOptionFunction(sheetBuilder -> { sheetBuilder.viewOption( ViewOption.builder() .frozenOption( ViewOption.FrozenOption.builder() .type(ViewOption.FrozenOption.Type.ROW) .index(1) .build() ) .build() ); return sheetBuilder.build(); }) .data( ExampleData.ex2Sheet1() ) .build() ), ExcelTableOption .eBuilder() .addStyles("first", first) .addStyles("second", second) .fileName("ex28") .creator("MR Excel") .build()); } public static void ex29() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { String c1 = "561C24"; String c2 = "6D2932"; String c3 = "C7B7A3"; String c4 = "E8D8C4"; String font = "Times New Roman"; StyleBody first = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c2).color(c4).fontFamily(font) .build(); StyleBody second = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c4) .color(c2) .fontFamily(font) .build(); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet( Collections.singletonList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { var arr = headers; headers.addAll(arr); return headers; }) .applySheetOptionFunction(sheetBuilder -> { sheetBuilder.viewOption( ViewOption.builder() .frozenOption( ViewOption.FrozenOption.builder() .type(ViewOption.FrozenOption.Type.COLUMN) .index(1) .build() ) .build() ); return sheetBuilder.build(); }) .data( ExampleData.ex2Sheet1() ) .build() ), ExcelTableOption .eBuilder() .addStyles("first", first) .addStyles("second", second) .fileName("ex29") .creator("MR Excel") .build()); } public static void ex30() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { String c1 = "561C24"; String c2 = "6D2932"; String c3 = "C7B7A3"; String c4 = "E8D8C4"; String font = "Times New Roman"; StyleBody first = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c2).color(c4).fontFamily(font) .build(); StyleBody second = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c4) .color(c2) .fontFamily(font) .build(); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet( Collections.singletonList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { var arr = headers; headers.addAll(arr); return headers; }) .applySheetOptionFunction(sheetBuilder -> { sheetBuilder.viewOption( ViewOption.builder() .frozenOption( ViewOption.FrozenOption.builder() .type(ViewOption.FrozenOption.Type .BOTH) .r(2) .c(3) .build() ) .build() ); return sheetBuilder.build(); }) .data( ExampleData.ex2Sheet1() ) .build() ), ExcelTableOption .eBuilder() .addStyles("first", first) .addStyles("second", second) .fileName("ex30") .creator("MR Excel") .build()); } public static void ex31() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { String c1 = "561C24"; String c2 = "6D2932"; String c3 = "C7B7A3"; String c4 = "E8D8C4"; String font = "Times New Roman"; StyleBody first = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c2).color(c4).fontFamily(font) .build(); StyleBody second = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c4) .color(c2) .fontFamily(font) .build(); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet( Collections.singletonList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { var arr = headers; headers.addAll(arr); return headers; }) .applySheetOptionFunction(sheetBuilder -> { sheetBuilder.viewOption( ViewOption.builder() .splitOption( ViewOption.SplitOption.builder() .type(ViewOption.SplitOption.Type.VERTICAL) .split(10000) .startAt(ViewOption.SplitOption.ViewStart.builder() .r("E1") .l("C1") .build()) .build() ) .build() ); return sheetBuilder.build(); }) .data( ExampleData.ex2Sheet1() ) .build() ), ExcelTableOption .eBuilder() .addStyles("first", first) .addStyles("second", second) .fileName("ex31") .creator("MR Excel") .build()); } public static void ex32() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { String c1 = "561C24"; String c2 = "6D2932"; String c3 = "C7B7A3"; String c4 = "E8D8C4"; String font = "Times New Roman"; StyleBody first = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c2).color(c4).fontFamily(font) .build(); StyleBody second = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c4) .color(c2) .fontFamily(font) .build(); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet( Collections.singletonList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { var arr = headers; headers.addAll(arr); return headers; }) .applySheetOptionFunction(sheetBuilder -> { sheetBuilder.viewOption( ViewOption.builder() .splitOption( ViewOption.SplitOption.builder() .type(ViewOption.SplitOption.Type.HORIZONTAL) .split(5000) .startAt(ViewOption.SplitOption.ViewStart.builder() .t("A15") .b("A7") .build()) .build() ) .build() ); return sheetBuilder.build(); }) .data( ExampleData.ex2Sheet1() ) .build() ), ExcelTableOption .eBuilder() .addStyles("first", first) .addStyles("second", second) .fileName("ex32") .creator("MR Excel") .build()); } public static void ex33() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { String c1 = "561C24"; String c2 = "6D2932"; String c3 = "C7B7A3"; String c4 = "E8D8C4"; String font = "Times New Roman"; StyleBody first = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c2).color(c4).fontFamily(font) .build(); StyleBody second = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c4) .color(c2) .fontFamily(font) .build(); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet( Collections.singletonList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { var arr = headers; headers.addAll(arr); headers.addAll(arr); return headers; }) .applySheetOptionFunction(sheetBuilder -> { sheetBuilder.viewOption( ViewOption.builder() .splitOption( ViewOption.SplitOption.builder() .type(ViewOption.SplitOption.Type.BOTH) .x(10000) .y(5000) .startAt(ViewOption.SplitOption.ViewStart.builder() .one("A15") .two("A7") .build()) .build() ) .build() ); return sheetBuilder.build(); }) .data( ExampleData.ex2Sheet1() ) .build() ), ExcelTableOption .eBuilder() .addStyles("first", first) .addStyles("second", second) .fileName("ex33") .creator("MR Excel") .build()); } public static void ex34() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { String c1 = "561C24"; String c2 = "6D2932"; String c3 = "C7B7A3"; String c4 = "E8D8C4"; String font = "Times New Roman"; StyleBody first = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c2).color(c4).fontFamily(font) .build(); StyleBody second = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c4) .color(c2) .fontFamily(font) .build(); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet( Collections.singletonList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { var arr = headers; headers.addAll(arr); headers.addAll(arr); return headers; }) .applySheetOptionFunction(sheetBuilder -> sheetBuilder.rtl(true).build()) .data( ExampleData.ex2Sheet1() ) .build() ), ExcelTableOption .eBuilder() .addStyles("first", first) .addStyles("second", second) .fileName("ex34") .creator("MR Excel") .build()); } public static void ex35() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { String c1 = "561C24"; String c2 = "6D2932"; String c3 = "C7B7A3"; String c4 = "E8D8C4"; String font = "Times New Roman"; StyleBody first = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c2).color(c4).fontFamily(font) .build(); StyleBody second = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c4) .color(c2) .fontFamily(font) .build(); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet( Collections.singletonList( SheetGenerator.builder() .applyHeaderOptionFunction(headers -> { var arr = headers; headers.addAll(arr); headers.addAll(arr); return headers; }) .applySheetOptionFunction(sheetBuilder -> { sheetBuilder.pageBreak( Sheet.PageBreak.builder() .column(Arrays.asList( 4, 6, 15, 17 )) .row(Arrays.asList(1, 2, 3, 10)) .build() ); return sheetBuilder.build(); }) .data( ExampleData.ex2Sheet1() ) .build() ), ExcelTableOption .eBuilder() .addStyles("first", first) .addStyles("second", second) .fileName("ex35") .creator("MR Excel") .build()); } public static void ex36() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { String c1 = "561C24"; String c2 = "6D2932"; String c3 = "C7B7A3"; String c4 = "E8D8C4"; String font = "Times New Roman"; StyleBody first = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c2).color(c4).fontFamily(font) .build(); StyleBody second = StyleBody.builder() .type(StyleBody.StyleType.HEADER_FOOTER) .backgroundColor(c4) .color(c2) .fontFamily(font) .build(); GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet( Collections.singletonList( SheetGenerator.builder() .applySheetOptionFunction(sheetBuilder -> sheetBuilder.backgroundImage(ImageInput.builder() .data("https://raw.githubusercontent.com/mohammadrezaeicode/mr-excel-example-gallery/refs/heads/main/CDN/generateExcel/im.png") .type(ImageInput.AcceptType.URL) .build()).build()) .data( ExampleData.ex2Sheet1() ) .build() ), ExcelTableOption .eBuilder() .fetch(Utils.fetch()) .addStyles("first", first) .addStyles("second", second) .fileName("ex36") .creator("MR Excel") .build()); } public static void ex39() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Collections.singletonList( SheetGenerator.builder() .applySheetOptionFunction( sheetBuilder -> { sheetBuilder.checkbox(Arrays.asList( Checkbox.builder() .col(13) .row(1) .text("Checkbox 1") .link("G1") .build(), Checkbox.builder() .col(14) .row(2) .text("Checkbox 3") .link("G2") .build(), Checkbox.builder() .col(15) .row(3) .text("Checkbox 4") .link("G3") .build() )); sheetBuilder.images(Arrays.asList( Sheet.ImageTypes.builder() .image(ImageInput.builder().data( "https://mohammadrezaeicode.github.io/mr-excel-page/img/ezgif.com-gif-maker.gif" ).build() ).from("H1").type(Sheet.ImageTypes.Type.ONE) .build(), Sheet.ImageTypes.builder() .image(ImageInput.builder().data( "https://mohammadrezaeicode.github.io/mr-excel-page/img/uniqe.jpg" ).build() ).from("H2").type(Sheet.ImageTypes.Type.ONE) .build(), Sheet.ImageTypes.builder() .image(ImageInput.builder().data( "https://mohammadrezaeicode.github.io/mr-excel-page/img/ex.PNG" ).build() ).from("H3").type(Sheet.ImageTypes.Type.ONE) .build(), Sheet.ImageTypes.builder() .image(ImageInput.builder().data( "https://mohammadrezaeicode.github.io/mr-excel-page/img/ex.PNG" ).build() ).from("H4").type(Sheet.ImageTypes.Type.ONE) .build() , Sheet.ImageTypes.builder() .image(ImageInput.builder().data( "https://mohammadrezaeicode.github.io/mr-excel-page/img/ezgif.com-gif-maker.gif" ).build() ).from("E1") .to("F10") .type(Sheet.ImageTypes.Type.TWO) .build(), Sheet.ImageTypes.builder() .image(ImageInput.builder().data( "https://mohammadrezaeicode.github.io/mr-excel-page/img/uniqe.jpg" ).build() ).from("H6").type(Sheet.ImageTypes.Type.TWO) .build() )); return sheetBuilder.build(); } ) .data( ExampleData.ex17() ) .build() ), ExcelTableOption .eBuilder() .fetch(Utils.fetch()) .fileName("ex39") .creator("MR Excel") .build()); } public static void ex40() throws IOException, InvocationTargetException, IllegalAccessException, NoSuchMethodException { GenerateExcel.generateHeaderAndGenerateExcelWithMultiSheet(Collections.singletonList( SheetGenerator.builder() .applySheetOptionFunction(sheetBuilder -> { return sheetBuilder.dropDowns( Collections.singletonList( DropDown.builder() .forCell(ExampleData.dropdownLocation()) .option(ExampleData.dropdownItems()) .build() ) ).build(); }) .data(ExampleData.ex40()) .build() ), ExcelTableOption.eBuilder().fileName("ex40").build()); }

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages