导出空白检验规格模板
This commit is contained in:
parent
b8f3bab4c1
commit
bb0299c323
@ -64,4 +64,12 @@ public class QcSpecController {
|
|||||||
return qcSpecService.exportSpecExcel(exportSpecExcelQo);
|
return qcSpecService.exportSpecExcel(exportSpecExcelQo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出空白检验规格
|
||||||
|
*/
|
||||||
|
@PostMapping("/exportEmptySpecExcel")
|
||||||
|
public String exportEmptySpecExcel(@RequestBody ExportSpecExcelQo exportSpecExcelQo) throws Exception {
|
||||||
|
return qcSpecService.exportEmptySpecExcel(exportSpecExcelQo);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
58
src/main/java/com/xkrs/model/bean/XSSFCellDataBean.java
Normal file
58
src/main/java/com/xkrs/model/bean/XSSFCellDataBean.java
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
package com.xkrs.model.bean;
|
||||||
|
|
||||||
|
public class XSSFCellDataBean {
|
||||||
|
|
||||||
|
public static final int VALUE_TYPE_STRING = 1;
|
||||||
|
public static final int VALUE_TYPE_DOUBLE = 2;
|
||||||
|
|
||||||
|
private int valueType;
|
||||||
|
private String stringValue;
|
||||||
|
private double doubleValue;
|
||||||
|
|
||||||
|
public XSSFCellDataBean(String source) {
|
||||||
|
double tempDoubleValue = -100_000D;
|
||||||
|
try {
|
||||||
|
tempDoubleValue = Double.parseDouble(source);
|
||||||
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
if (tempDoubleValue < -99_000D) {
|
||||||
|
valueType = VALUE_TYPE_STRING;
|
||||||
|
stringValue = source;
|
||||||
|
} else {
|
||||||
|
valueType = VALUE_TYPE_DOUBLE;
|
||||||
|
doubleValue = tempDoubleValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getValueType() {
|
||||||
|
return valueType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public XSSFCellDataBean setValueType(int valueType) {
|
||||||
|
this.valueType = valueType;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStringValue() {
|
||||||
|
return stringValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public XSSFCellDataBean setStringValue(String stringValue) {
|
||||||
|
this.stringValue = stringValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getDoubleValue() {
|
||||||
|
return doubleValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public XSSFCellDataBean setDoubleValue(double doubleValue) {
|
||||||
|
this.doubleValue = doubleValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "XSSFCellDataBean{" + "valueType=" + valueType + ", stringValue='" + stringValue + '\'' + ", doubleValue=" + doubleValue + '}';
|
||||||
|
}
|
||||||
|
}
|
@ -38,4 +38,10 @@ public interface QcSpecService {
|
|||||||
*/
|
*/
|
||||||
String exportSpecExcel(ExportSpecExcelQo exportSpecExcelQo) throws Exception;
|
String exportSpecExcel(ExportSpecExcelQo exportSpecExcelQo) throws Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出空白检验规格
|
||||||
|
*/
|
||||||
|
String exportEmptySpecExcel(ExportSpecExcelQo exportSpecExcelQo) throws Exception;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ import com.xkrs.dao.QcItemDao;
|
|||||||
import com.xkrs.dao.QcSpecDao;
|
import com.xkrs.dao.QcSpecDao;
|
||||||
import com.xkrs.encapsulation.PromptMessageEnum;
|
import com.xkrs.encapsulation.PromptMessageEnum;
|
||||||
import com.xkrs.model.bean.ReadSpecHeadBean;
|
import com.xkrs.model.bean.ReadSpecHeadBean;
|
||||||
|
import com.xkrs.model.bean.XSSFCellDataBean;
|
||||||
import com.xkrs.model.entity.CraftItemEntity;
|
import com.xkrs.model.entity.CraftItemEntity;
|
||||||
import com.xkrs.model.entity.QcItemEntity;
|
import com.xkrs.model.entity.QcItemEntity;
|
||||||
import com.xkrs.model.entity.QcSpecEntity;
|
import com.xkrs.model.entity.QcSpecEntity;
|
||||||
@ -14,12 +15,14 @@ import com.xkrs.model.qo.QcSpecQoInsert;
|
|||||||
import com.xkrs.model.qo.QcSpecQoUpdate;
|
import com.xkrs.model.qo.QcSpecQoUpdate;
|
||||||
import com.xkrs.service.QcSpecService;
|
import com.xkrs.service.QcSpecService;
|
||||||
import com.xkrs.util.LocalDateUtils;
|
import com.xkrs.util.LocalDateUtils;
|
||||||
|
import com.xkrs.util.LocalDoubleUtils;
|
||||||
import com.xkrs.util.LocalStringUtils;
|
import com.xkrs.util.LocalStringUtils;
|
||||||
import org.apache.http.util.TextUtils;
|
import org.apache.http.util.TextUtils;
|
||||||
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
|
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
|
||||||
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
|
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
|
||||||
import org.apache.poi.hssf.util.HSSFColor;
|
import org.apache.poi.hssf.util.HSSFColor;
|
||||||
import org.apache.poi.ss.usermodel.Cell;
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
|
import org.apache.poi.ss.usermodel.CellStyle;
|
||||||
import org.apache.poi.ss.usermodel.Row;
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
import org.apache.poi.xssf.usermodel.*;
|
import org.apache.poi.xssf.usermodel.*;
|
||||||
import org.springframework.context.i18n.LocaleContextHolder;
|
import org.springframework.context.i18n.LocaleContextHolder;
|
||||||
@ -29,8 +32,10 @@ import org.springframework.web.multipart.MultipartFile;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.transaction.Transactional;
|
import javax.transaction.Transactional;
|
||||||
|
import java.awt.*;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
|
import java.util.List;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import static com.xkrs.encapsulation.OutputEncapsulation.outputEncapsulationObject;
|
import static com.xkrs.encapsulation.OutputEncapsulation.outputEncapsulationObject;
|
||||||
@ -367,6 +372,18 @@ public class QcSpecServiceImpl implements QcSpecService {
|
|||||||
XSSFWorkbook workbook = new XSSFWorkbook();
|
XSSFWorkbook workbook = new XSSFWorkbook();
|
||||||
//建立新的sheet对象(excel的表单)
|
//建立新的sheet对象(excel的表单)
|
||||||
XSSFSheet sheet = workbook.createSheet("检验规格表");
|
XSSFSheet sheet = workbook.createSheet("检验规格表");
|
||||||
|
for (int i = 0; i < dataListList.get(0).size(); i++) {
|
||||||
|
sheet.setColumnWidth(i, 24 * 256);
|
||||||
|
}
|
||||||
|
|
||||||
|
XSSFCellStyle headCellStyle = workbook.createCellStyle();
|
||||||
|
headCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
|
||||||
|
headCellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
|
||||||
|
XSSFFont headFont = workbook.createFont();
|
||||||
|
headFont.setColor(HSSFColor.BLACK.index);
|
||||||
|
headCellStyle.setFont(headFont);
|
||||||
|
headCellStyle.setFillForegroundColor(new XSSFColor(new Color(156, 195, 230)));//设置背景色
|
||||||
|
headCellStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);//填充模式
|
||||||
|
|
||||||
XSSFCellStyle normalCellStyle = workbook.createCellStyle();
|
XSSFCellStyle normalCellStyle = workbook.createCellStyle();
|
||||||
normalCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
|
normalCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
|
||||||
@ -382,9 +399,22 @@ public class QcSpecServiceImpl implements QcSpecService {
|
|||||||
XSSFRow row = sheet.createRow(i + startRowNum);
|
XSSFRow row = sheet.createRow(i + startRowNum);
|
||||||
for (int j = 0; j < dataList.size(); j++) {
|
for (int j = 0; j < dataList.size(); j++) {
|
||||||
XSSFCell cell = row.createCell(j);
|
XSSFCell cell = row.createCell(j);
|
||||||
String data = dataList.get(j);
|
if (i == 0) {
|
||||||
cell.setCellValue(data);
|
cell.setCellStyle(headCellStyle);
|
||||||
cell.setCellStyle(normalCellStyle);
|
} else {
|
||||||
|
cell.setCellStyle(normalCellStyle);
|
||||||
|
}
|
||||||
|
String sourceValue = dataList.get(j);
|
||||||
|
if (j <= 2) {
|
||||||
|
cell.setCellValue(sourceValue);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
XSSFCellDataBean cellDataBean = new XSSFCellDataBean(sourceValue);
|
||||||
|
if (XSSFCellDataBean.VALUE_TYPE_STRING == cellDataBean.getValueType()) {
|
||||||
|
cell.setCellValue(cellDataBean.getStringValue());
|
||||||
|
} else if (XSSFCellDataBean.VALUE_TYPE_DOUBLE == cellDataBean.getValueType()) {
|
||||||
|
cell.setCellValue(LocalDoubleUtils.formatEmptyValue(cellDataBean.getDoubleValue()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -403,4 +433,62 @@ public class QcSpecServiceImpl implements QcSpecService {
|
|||||||
String finalHost = host.endsWith("/") ? host : host + "/";
|
String finalHost = host.endsWith("/") ? host : host + "/";
|
||||||
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, finalHost + "excel/" + excelFileName, locale);
|
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, finalHost + "excel/" + excelFileName, locale);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean formatData(String data) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出空白检验规格
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String exportEmptySpecExcel(ExportSpecExcelQo exportSpecExcelQo) throws Exception {
|
||||||
|
|
||||||
|
List<List<String>> dataListList = new ArrayList<>();
|
||||||
|
dataListList.add(QC_SPEC_HEAD);
|
||||||
|
|
||||||
|
XSSFWorkbook workbook = new XSSFWorkbook();
|
||||||
|
//建立新的sheet对象(excel的表单)
|
||||||
|
XSSFSheet sheet = workbook.createSheet("检验规格表");
|
||||||
|
for (int i = 0; i < dataListList.get(0).size(); i++) {
|
||||||
|
sheet.setColumnWidth(i, 24 * 256);
|
||||||
|
}
|
||||||
|
|
||||||
|
XSSFCellStyle headCellStyle = workbook.createCellStyle();
|
||||||
|
headCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
|
||||||
|
headCellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
|
||||||
|
XSSFFont headFont = workbook.createFont();
|
||||||
|
headFont.setColor(HSSFColor.BLACK.index);
|
||||||
|
headCellStyle.setFont(headFont);
|
||||||
|
headCellStyle.setFillForegroundColor(new XSSFColor(new Color(156, 195, 230)));//设置背景色
|
||||||
|
headCellStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);//填充模式
|
||||||
|
|
||||||
|
int startRowNum = 0;
|
||||||
|
List<String> dataList = dataListList.get(0);
|
||||||
|
if (dataList != null && dataList.size() > 0) {
|
||||||
|
XSSFRow row = sheet.createRow(startRowNum);
|
||||||
|
for (int j = 0; j < dataList.size(); j++) {
|
||||||
|
XSSFCell cell = row.createCell(j);
|
||||||
|
cell.setCellStyle(headCellStyle);
|
||||||
|
String data = dataList.get(j);
|
||||||
|
cell.setCellValue(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//输出Excel文件
|
||||||
|
File dirFile = new File("/home/sxy/server/industrial_measurement/excel/");
|
||||||
|
// File dirFile = new File("/Users/liuchengqian/Desktop/DaJiang/");
|
||||||
|
if (!dirFile.exists()) {
|
||||||
|
dirFile.mkdirs();
|
||||||
|
}
|
||||||
|
String excelFileName = System.currentTimeMillis() + ".xlsx";
|
||||||
|
FileOutputStream output = new FileOutputStream(new File(dirFile, excelFileName));
|
||||||
|
workbook.write(output);
|
||||||
|
output.flush();
|
||||||
|
|
||||||
|
String host = exportSpecExcelQo.getHost();
|
||||||
|
String finalHost = host.endsWith("/") ? host : host + "/";
|
||||||
|
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, finalHost + "excel/" + excelFileName, locale);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
16
src/main/java/com/xkrs/util/LocalDoubleUtils.java
Normal file
16
src/main/java/com/xkrs/util/LocalDoubleUtils.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.xkrs.util;
|
||||||
|
|
||||||
|
import java.text.DecimalFormat;
|
||||||
|
|
||||||
|
public class LocalDoubleUtils {
|
||||||
|
|
||||||
|
private static final DecimalFormat decimalFormat = new DecimalFormat("0.000");
|
||||||
|
|
||||||
|
private LocalDoubleUtils() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String formatEmptyValue(double value) {
|
||||||
|
return decimalFormat.format(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user