# excel-utils
**Repository Path**: evenliew/excel-utils
## Basic Information
- **Project Name**: excel-utils
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2021-01-28
- **Last Updated**: 2021-01-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# excel-utils
#### 介绍
* 通过导入一个模板, 和与模板中匹配的数据源, 进行数据替换;
* 现支持普通键值数据{{key}}, 和表格数据{{#key#}}两种;
* 不支持直接实例化,通过builder静态方法获得一个构建模板和数据的对象;
* 通过该对象build()方法构建TemplateExcelUtils对象,调用export方法即可导出。
#### 软件架构
基于POI开发
#### 使用
##### 第一步:maven依赖
```xml
3.15
org.apache.poi
poi-scratchpad
${poi.version}
org.apache.poi
ooxml-schemas
1.3
org.apache.poi
poi-ooxml
${poi.version}
org.apache.poi
poi-ooxml-schemas
```
##### 第二步:导入代码
> * 主要代码包括两个Java类(TemplateExcelUtils.java 和 Table.java)
> * TemplateExcelUtils.java为只要逻辑代码,建议放在utils包下
> * Table.java为添加表数据的实体类,建议放在common包下面
##### 第三步: 使用
1. 在excel表格中使用{{}}和{{##}}两种占位符, 保存Excel(D:template.xlsx)
| {{name}} | {{title}} | |
| :----------: | :-------: | ---- |
| {{#table1#}} | | |
2. 调用构建类,导入模板
```java
//通过文件系统的方式, 最大扫描行,最大扫描列
TemplateExcelUtils.builder()
.setFileSystemTemplate("D:/template.xlsx", 2, 3);
//在web环境下的方式, 最大扫描行,最大扫描列
TemplateExcelUtils.builder().
.setClassTemplatePath("/template.xlsx", 2, 3);
```
3. 添加普通键值数据
```java
//添加键值数据
Map data = new HashMap<>();
data.put("name", "xiaoming");
data.put("title", "The title");
TempalteExcelUtils.builder().
.setFileSystemTemplate("D:/template.xlsx", 2, 3)
.addValueData(data);
```
4. 添加表格数据
Table.java
```java
public class Table{
//键序列, 通过这个序列依次再rowDataList中取值
private List keySequence;
//表头数据
private List headers;
//行数据
private List