# wydexcel **Repository Path**: makeone/wydexcel ## Basic Information - **Project Name**: wydexcel - **Description**: No description available - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 12 - **Forks**: 0 - **Created**: 2022-02-22 - **Last Updated**: 2024-05-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # wydexcel #### 介绍 wydExcel可以智能的导出excel, 项目可以根据不同的配置生成不同的样式,对用户屏蔽了poi相关的技术细节,只需要关注项目的配置项即可。 #### 软件架构 软件架构说明 #### 安装教程 #### 使用说明 ``` { "id": "c3102c5c-dd76-4cf9-8bd6-e348e0645b5e", "map": { "sheet1": { "autoSizeColumn": true, "bases": [ { "borderRight": "DOUBLE", "filedName": "desc", "fillForegroundColor": 10, "fillPattern": "BRICKS", "isHeader": 1, "locked": false, "rightBorderColor": 10, "wrapTest": false }], "cells": [ { "excelFieldName": "title", "excelStartCellIndex": 0, "excelStartRowIndex": 0, "value": "标题" }, { "excelFieldName": "date", "excelStartCellIndex": 2, "excelStartRowIndex": 0, "value": "时间" }, { "excelFieldName": "desc", "excelStartCellIndex": 1, "excelStartRowIndex": 0, "value": "描述" }], "columnWidth": 9000, "dataFormat": [ { "dataformat": "yyyy/m/d", "fieldName": "money", "isHeader": 2 }], "fonts": [ { "blue": 0, "bold": true, "filedName": "title", "fontColor": 12, "fontName": "Franklin", "green": 0, "isHeader": 1, "italic": true, "red": 0, "strikeout": true }, { "blue": 0, "bold": false, "filedName": "desc", "fontColor": 4, "fontName": "Franklin", "green": 0, "isHeader": 2, "italic": true, "red": 0, "strikeout": false }], "freezes": [], "head": { "cells": [], "fonts": [], "merges": [], "rows": [] }, "headerOrFootesr": [], "links": [], "merges": [], "richTexts": [ { "fieldName": "date", "isHeader": 1, "richTextProperties": [ { "endIndex": 6, "font": { "blue": 0, "bold": true, "filedName": "date_rich_716487794false", "fontColor": 0, "green": 0, "isHeader": 0, "italic": false, "red": 255, "strikeout": false }, "startIndex": 0, "text": "你们是在生活" }, { "endIndex": 13, "font": { "blue": 0, "bold": true, "filedName": "date_rich_136393487false", "fontColor": 0, "green": 255, "isHeader": 0, "italic": true, "red": 0, "strikeout": true }, "startIndex": 6, "text": "只有我是在生存" }, { "endIndex": 21, "font": { "blue": 255, "bold": true, "filedName": "date_rich_1572256205false", "fontColor": 0, "green": 0, "isHeader": 0, "italic": false, "red": 0, "strikeout": false }, "startIndex": 13, "text": "来自于祥子的说法" }], "text": "你们是在生活只有我是在生存来自于祥子的说法" }], "sheetName": "sheet1", "sheetNum": 0 } } } ExcelGenerateImpl excelGenerate = new ExcelGenerateImpl("配置的json"); ExcelGenerateImpl generateSheet = excelConfGenerate.generate("sheet1", null); for (int i = 0; i < 2; i++) { Map map = new HashMap<>(); map.put("title", "我说怎么回事呢" + i); map.put("desc", "我回来了" + i); generateSheet .generate(map); } generateSheet .writeToDisk("E:\\excel\\test.xlsx"); ``` ``` private static List getDataFromDb() { Demo demo1 = new Demo(); demo1.setSalary(Double.parseDouble("2.9876566")); demo1.setTitle("Hello WydExcel"); Demo demo2 = new Demo(); demo2.setSalary(Double.parseDouble("245.1224367")); demo2.setTitle("Hello POI"); return Arrays.asList(demo1, demo2); } private static class Demo { private String title; private Double salary; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public Double getSalary() { return salary; } public void setSalary(Double salary) { this.salary = salary; } } ExcelContext excelContext = ExcelContextAllContext.getInstance().parse(json).parseComplete(); //如果追求效率,这里可以改成异步 ExcelSheetGenerate sheetGenerator = excelContext.getSheetGenerator("sheet1"); //根据map生成excel List dataFromDb = getDataFromDb(); for (Demo demo : dataFromDb) { sheetGenerator.generate(demo); } excelContext.write("myFirst_WydExcelDemo");//这里不用指定后缀,已经在配置中指定 excelContext.colse(); ``` ![输入图片说明](%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%AF%B9%E8%B1%A1%E7%94%9F%E6%88%90excel.png) #### 参数介绍 | 属性名称 | 属性名称 | 属性名称 | 属性名称 | 属性介绍 | | | | |---|---|---|---|---|---|---|---| | id | | | | 用户指定用于区分excel | | | | | map | | | | map中可以设置多个sheet,key 为sheet名称 | | | | | | key | | | sheet名称 | | | | | | |autoSizeColumn | | 自适应列宽 true自适应 | | | | | | | cells | | excel列集合 | | | | | | | | excelFieldName |列名称,注意这里不是显示在excel中的名称,与value是对应关系 | | | | | | | | excelStartCellIndex | 第几列| | | | | | | | excelStartRowIndex |第几行 | | | | | | | | locked | 是否锁定 true 锁定 | | | | | | | |value | excel列名称,显示在excel | | | | | | | | wrapTest |是否自动换行 true 是 | | | | | | | | alignment|水平对齐 | | | | | | | | leftBorderColor|是否自动换行 true 是 | | | | | | | | rightBorderColor|是否自动换行 true 是 | | | | | | | | verticalAlignment|垂直对齐 | | | | | | | | borderLeft|设置左边框类型取值请见下方 | | | | | | | | borderRight|设置右边框类型取值请见下方 | | | | | | | | borderTop|设置上边框类型取值请见下方 | | | | | | | | borderBottom|设置下边框类型取值请见下方 | | | | | | | | bottomBorderColor|下边框颜色取值请见下方颜色设置 | | | | | | | | topBorderColor|上边框颜色取值请见下方颜色设置 | | | | | | | | leftBorderColor|左边框颜色取值请见下方颜色设置 | | | | | | | | rightBorderColor|右边框颜色取值请见下方颜色设置 | | | | | | | | fillPattern|是否自动换行 true 是 | | | | | | | | fillBackgroundColor|是否自动换行 true 是 | | | | | | | | fillForeGroundColor|是否自动换行 true 是 | | | | | | | | fillForeGroundColor|是否自动换行 true 是 | | | | | | | | indention|缩进 | | | | | | | | rotation|旋转 | | | | | | | | quotePrefixed|是否自动换行 true 是 | | | | | | | | dataFormat|是否自动换行 true 是 | | | | | | | | hidden|是否自动换行 true 是 | | | | | | | | cellComment|是否自动换行 true 是 | | | | | | | | hyperlink|是否自动换行 true 是 | | | | | | | | defaultValue|默认值 | | | | | | | columnWidth | |每列的宽度 | | | | | | | fontMap | | 字体设置| | | | | | | | key| 列名称 对哪里设置字体| | | | | | | | | bold|字体设置 | | | | | | | |filedName |列名称 对哪里设置字体 | | | | | | | | fontColor|字体颜色 取值范围请见下方介绍 | | | | | | | | fontName|字体名称 | | | | | | | | italic|字体是否倾斜 true 倾斜| | | | | | | | strikeout|删除线true有删除线,false不设置 | | | | | | | | isHeader|取值范围 0,1,2; 0代表对head和body 设置字体,1 只对head设置字体,2仅对body设置字体| | | | | | merges | |合并单元格设置 | | | | | | | sheetName | | sheet名称 | | | | #### excel 颜色设置 XSSF和HSSF略有不同 | 是否支持HSSF | 字体取值数字 | 字体取值英文名称 | 是否支持XSSF| |---|---|---|---| | | 0 | BLACK1| 是| | | 1 | WHITE1| 是 | | | 2| RED1| 是| | | 3 | BRIGHT_GREEN1|是| | | 4 | BLUE1| 是 | | | 5 | YELLOW1| 是| | | 6 | PINK1|是| | | 7 | TURQUOISE1| 是| | | 8 | BLACK | 是| | 是| 9 | WHITE | 是| | 是| 10 |RED | 是| | 是| 11 | BRIGHT_GREEN | 是| | 是| 12 | BLUE | 是| | 是| 13 | YELLOW | 是| | 是|14 |PINK |是| |是 |15 |TURQUOISE | 是| | 是|16 | DARK_RED | 是| | 是|17 | GREEN |是| | 是|18 |DARK_BLUE | 是| | 是|19 |DARK_YELLOW |是| | 是|20|VIOLET|是| | 是|21|TEAL | 是| | 是|22|GREY_25_PERCENT| 是| | 是|23|GREY_50_PERCENT| 是| | 是|24|CORNFLOWER_BLUE|是| | 是|25|MAROON| 是| | 是|26|LEMON_CHIFFON| 是| | 是|28|ORCHID | 是| | 是|29|CORAL| 是| | 是|30 |ROYAL_BLUE| 是| | 是|31|LIGHT_CORNFLOWER_BLUE|是| | 是|40 |SKY_BLUE| 是| | 是|41|LIGHT_TURQUOISE | 是| | 是|42|LIGHT_GREEN| 是| | 是|43|LIGHT_YELLOW| 是| | 是|44|PALE_BLUE|是| | 是|45|ROSE| 是| | 是|46|LAVENDER| 是| | 是|47|TAN | 是| | 是|48|LIGHT_BLUE| 是| | 是|49|AQUA|是| | 是|50|LIME|是| | 是|51|GOLD|是| | 是|52|LIGHT_ORANGE|是| | 是|53|ORANGE| 是| | 是|54|BLUE_GREY| 是| | 是|55|GREY_40_PERCENT|是| | 是|56|DARK_TEAL | 是 | | 是|57|SEA_GREEN| 是| | 是|58|DARK_GREEN| 是| | 是|59|OLIVE_GREEN|是| | 是|60|BROWN| 是| | 是|61|PLUM| 是| | 是|62|INDIGO| 是| | 是|63|GREY_80_PERCENT| 是| | 是|64|AUTOMATIC|是| #### 对齐方式 | 对齐类型 | 取值范围 | excel类型 | |---|---|---| | 水平对齐 | GENERAL | XSSF | |水平对齐 |LEFT | XSSF | | 水平对齐 | CENTER | XSSF | | 水平对齐 |RIGHT | XSSF | | 水平对齐 | FILL | XSSF | |水平对齐 | JUSTIFY | XSSF | |水平对齐 | CENTER_SELECTION | XSSF | | 水平对齐 | DISTRIBUTED |XSSF | | 垂直对齐 | TOP|XSSF | |垂直对齐 | CENTER|XSSF | | 垂直对齐 | BOTTOM|XSSF | | 垂直对齐 | JUSTIFY|XSSF | | 垂直对齐 | DISTRIBUTED|XSSF | #### 填充类型 | 填充类型 | 取值范围 | 取值范围英文名称 | excel类型 | |---|---|---|---| | | 0 | NO_FILL | XSSF/HSSF | | | 1 | SOLID_FOREGROUND | XSSF/HSSF | | | 2 | FINE_DOTS | XSSF/HSSF | | | 3 | ALT_BARS | XSSF/HSSF | | | 4 | SPARSE_DOTS | XSSF/HSSF | | | 5 | THICK_HORZ_BANDS | XSSF/HSSF | | |6 | THICK_VERT_BANDS | XSSF/HSSF | | | 7 | THICK_BACKWARD_DIAG | XSSF/HSSF | | | 8 |THICK_FORWARD_DIAG | XSSF/HSSF | | | 9 |BIG_SPOTS| XSSF/HSSF | | | 10 |BRICKS| XSSF/HSSF | | | 11|THIN_HORZ_BANDS| XSSF/HSSF | | | 12|THIN_VERT_BANDS| XSSF/HSSF | | | 13 |THIN_BACKWARD_DIAG| XSSF/HSSF | | | 14 |THIN_FORWARD_DIAG| XSSF/HSSF | | | 15|SQUARES| XSSF/HSSF | | | 16 |DIAMONDS| XSSF/HSSF | | | 17 |LESS_DOTS| XSSF/HSSF | | | 18 |LEAST_DOTS| XSSF/HSSF | #### 边框样式取值BorderStyle | 填充类型 | 取值范围 | 取值范围英文名称 | excel类型 | |---|---|---|---| | | 0 | NONE | XSSF/HSSF | | | 1 | THIN | XSSF/HSSF | | | 2 | MEDIUM | XSSF/HSSF | | | 3 | DASHED | XSSF/HSSF | | |4 | DOTTED | XSSF/HSSF | | |5 |THICK | XSSF/HSSF | | |6 | DOUBLE | XSSF/HSSF | | | 7 | HAIR | XSSF/HSSF | | | 8 | MEDIUM_DASHED| XSSF/HSSF | | | 9 | DASH_DOT| XSSF/HSSF | | | 10 | MEDIUM_DASH_DOT| XSSF/HSSF | | | 11 | DASH_DOT_DOT| XSSF/HSSF | | | 12 | MEDIUM_DASH_DOT_DOT| XSSF/HSSF | | | 13 | SLANTED_DASH_DOT| XSSF/HSSF | 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 未来规划 1.实现多版本用户可指定excel版本实现多版本导出 2.实现excel下拉框可以帮助用户在不编写poi的情况下 简单实现excel下拉框 3.动态列 4.excel消息入库可以帮助用户在线变更excel配置 5.动态word,pdf等功能