
com.github.xiaoyuge5201.util.ExportDatabaseDocument Maven / Gradle / Ivy
The newest version!
package com.github.xiaoyuge5201.util;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import com.github.xiaoyuge5201.config.DataSourceClient;
import com.github.xiaoyuge5201.config.DatasourceProperties;
import com.github.xiaoyuge5201.entity.ColumnEntity;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 导出设计文档
*
* @author yugb
*/
public class ExportDatabaseDocument {
/**
* 导出设计文档
* @param response 返回
* @param request 请求
* @param properties 屬性
*/
public static void export(HttpServletResponse response, HttpServletRequest request, DatasourceProperties properties) {
DataSourceClient dataSourceClient = DataSourceClient.build(properties);
try {
response.setContentType("text/html;charset=utf-8");
try {
request.setCharacterEncoding("UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
response.setContentType("application/x-msdownload;");
String filename = "数据库设计文档" + LocalDateTime.now() + ".xlsx";
response.setHeader("Content-disposition", "attachment; filename="
+ new String(filename.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1));
Workbook result = new XSSFWorkbook();
List list = dataSourceClient.findColumnByDriverAndDatabase();
list.stream().collect(Collectors.groupingBy(ColumnEntity::getTableName)).forEach((tableName, tableDescs) -> {
TemplateExportParams params = new TemplateExportParams("template-tableDesc.xlsx");//WEB-INF/classes/
Map map = new HashMap(16);
map.put("maplist", tableDescs);
map.put("TABLE_NAME", tableName);
String tem = (tableDescs.get(0).getTableComment() == null) ? "" : tableDescs.get(0).getTableComment();
map.put("TABLE_COMMENT", tem);
Workbook r = ExcelExportUtil.exportExcel(params, map);
if (r != null) {
WorkbookUtils.copySheet((XSSFWorkbook) result, (XSSFSheet) r.getSheetAt(0), (XSSFSheet) result.createSheet(tableName));
}
});
result.write(response.getOutputStream());
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy