修改文档对比-添加对比结果导出Excel
This commit is contained in:
+81
-5
@@ -11,17 +11,20 @@ import com.jero.modules.compare.service.ISarFileCompareInfoService;
|
||||
import com.jero.modules.compare.service.ISarFileCompareItemCommentService;
|
||||
import com.jero.modules.compare.service.ISarFileCompareItemService;
|
||||
import com.jero.modules.system.util.StringUtils;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.poi.ss.usermodel.*;
|
||||
import org.apache.poi.ss.util.CellRangeAddress;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -169,6 +172,20 @@ public class SarFileCompareItemCommentServiceImpl extends ServiceImpl<SarFileCom
|
||||
@Override
|
||||
public void exportResXls(Map<String, Object> map, HttpServletResponse response, HttpServletRequest request) {
|
||||
String cut = (String) map.get("cut");
|
||||
//是否包含评论
|
||||
String includeComments = (String) map.get("includeComments");
|
||||
String infoId = (String) map.get("infoId");
|
||||
String selectIds = (String) map.get("selectIds");
|
||||
|
||||
LambdaQueryWrapper<SarFileCompareItemComment> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(SarFileCompareItemComment::getInfoId, infoId);
|
||||
if (!StringUtils.isEmpty(selectIds)) {
|
||||
queryWrapper.in(SarFileCompareItemComment::getId, Arrays.asList(selectIds.split(",")));
|
||||
}
|
||||
queryWrapper.orderBy(true, true, SarFileCompareItemComment::getCreateTime);
|
||||
List<SarFileCompareItemComment> list = this.list(queryWrapper);
|
||||
Map<String, SarFileCompareItem> sfcItemMap = SarFileCompareItemServiceImpl.queryMapByInfoId(infoId);
|
||||
|
||||
OutputStream os = null;
|
||||
Workbook workbook = new XSSFWorkbook();
|
||||
try {
|
||||
@@ -177,11 +194,70 @@ public class SarFileCompareItemCommentServiceImpl extends ServiceImpl<SarFileCom
|
||||
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
|
||||
response.setContentType("application/force-download");
|
||||
//创建工作表对象
|
||||
Sheet sheet = workbook.createSheet();
|
||||
// 创建头部
|
||||
//String header = StringUtils.join(headerFieldList, ",");
|
||||
Sheet sheet = workbook.createSheet("对比结果");
|
||||
|
||||
// 创建头部
|
||||
String header = "";
|
||||
if (CutEnum.CN.getValue().equals(cut)) {
|
||||
header = "条款号,条款名称,条款内容,条款号,条款名称,条款内容,评论";
|
||||
} else {
|
||||
header = "Number,Title,Content,Number,Title,Content,Comment";
|
||||
}
|
||||
CellStyle cellStyle = workbook.createCellStyle();//初始化单元格格式对象
|
||||
cellStyle.setAlignment(HorizontalAlignment.CENTER);
|
||||
cellStyle.setWrapText(true);
|
||||
Row rowHeader = sheet.createRow(0);//开始创建标题行
|
||||
if (StringUtils.isNotBlank(header)) {
|
||||
String[] headerArr = header.split(",");
|
||||
for (int i = 0; i < headerArr.length; i++) {
|
||||
rowHeader.createCell(i).setCellValue(headerArr[i]);
|
||||
}
|
||||
}
|
||||
int i = 1;
|
||||
for (SarFileCompareItemComment itemComment : list) {
|
||||
Row row = sheet.createRow(i);
|
||||
String itemIdLeft = itemComment.getItemsIdLeft();
|
||||
if (!StringUtils.isEmpty(itemIdLeft)) {
|
||||
SarFileCompareItem itemLeft = sfcItemMap.get(itemIdLeft);
|
||||
if (null != itemLeft) {
|
||||
row.createCell(0).setCellValue(itemLeft.getItemsNum());
|
||||
row.createCell(1).setCellValue(itemLeft.getItemsName());
|
||||
String text = itemLeft.getItemsText();
|
||||
text = text.replace("<p>", "").replace("</p>", "\r\n");
|
||||
row.createCell(2).setCellValue(text);
|
||||
}
|
||||
}
|
||||
String itemIdRight = itemComment.getItemsIdRight();
|
||||
SarFileCompareItem itemRight = sfcItemMap.get(itemIdRight);
|
||||
if (null != itemRight) {
|
||||
row.createCell(3).setCellValue(itemRight.getItemsNum());
|
||||
row.createCell(4).setCellValue(itemRight.getItemsName());
|
||||
String text = itemRight.getItemsText();
|
||||
text = text.replace("<p>", "").replace("</p>", "\r\n");
|
||||
row.createCell(5).setCellValue(text);
|
||||
}
|
||||
row.createCell(6).setCellValue(itemComment.getComment());
|
||||
i++;
|
||||
}
|
||||
if (!StringUtils.isEmpty(includeComments) && includeComments.equals("1")) {
|
||||
Row row = sheet.createRow(i);
|
||||
if (CutEnum.CN.getValue().equals(cut)) {
|
||||
row.createCell(0).setCellValue("全文评论");
|
||||
} else {
|
||||
row.createCell(0).setCellValue("The full text comments");
|
||||
}
|
||||
//合并单元格
|
||||
CellRangeAddress rangeAddress = new CellRangeAddress(row.getRowNum(), row.getRowNum(), 1, 6);
|
||||
sheet.addMergedRegion(rangeAddress);
|
||||
SarFileCompareInfo compareInfo = sarFileCompareInfoServiceImpl.queryById(infoId);
|
||||
row.createCell(1).setCellValue(compareInfo.getComments());
|
||||
}
|
||||
for (int j = 0; j < 7; j++) {
|
||||
sheet.autoSizeColumn(j, true);//设置列宽
|
||||
}
|
||||
os = response.getOutputStream();
|
||||
// File file = new File("C://work/ee.xlsx");
|
||||
// os = new FileOutputStream(file);
|
||||
workbook.write(os);
|
||||
os.flush();
|
||||
} catch (IOException e) {
|
||||
|
||||
Reference in New Issue
Block a user