鍏徃闇€姹傦細鏍规嵁涓氬姟闇€瑕佸畾鏃跺彂閫侀偖浠讹紝骞朵笖閭欢闇€瑕佹湁excel闄勪欢锛岄檮浠跺唴瀹逛负鏌ヨ鍒扮殑鏁版嵁銆?
寮€鍙戞€濊矾锛氱敱浜庢湇鍔″櫒鐜鏈韩绌洪棿鏈夐檺锛岃€屼笖涓嶇‘瀹氱幆澧冧腑璇诲啓鏉冮檺锛岀敓鎴恊xcel鏂囦欢姣旇緝娴垂璧勬簮锛屽嚭鐜板紓甯告椂鍙兘瀵艰嚧鍒犻櫎涓存椂鏂囦欢澶辫触銆傚洜姝ょ敓鎴恊xcel鏂囦欢鏃朵笉鐢熸垚瀹為檯鏂囦欢锛岀洿鎺ヨ幏鍙栧埌excel鍐欏叆娴侊紝骞朵笖灏嗘祦鐩存帴鍐欏叆鍒伴偖浠堕檮浠朵腑銆?
鏌ヨ浜嗗緢澶氱綉涓婅祫鏂欎互鍙妀ava閭欢API锛屾渶缁堝緱浠ュ疄鐜帮紝鍒嗕韩涓嬩緵澶у鍙傝€冿紝浜掔浉瀛︿範锛?
杞浇璇锋爣鏄庡嚭澶勶細https://blog.csdn.net/yixin605691235/article/details/82429156
聽
璇︾粏浠g爜锛歨ttps://download.csdn.net/download/yixin605691235/10648074
鏍稿績浠g爜濡備笅锛?
閰嶇疆閭鏈嶅姟鍣ㄧ鍙e強鍙戦€佷汉鎺ユ敹浜?
mail.smtp.host=smtp.exmail.qq.com
mail.smtp.port=465
[email聽protected]
mail.send.password=xxxxxx
mail.accept.address=qqqqq[email聽protected]
[email聽protected],[email聽protected]
鐢熸垚excel宸ュ叿绫?
package com.yx.mail;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.lang3.StringUtils;
import jxl.Workbook;
import jxl.common.Logger;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.NumberFormat;
import jxl.write.WritableCell;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
/**
* java excel api(jxl) 瀵煎嚭excel宸ュ叿绫? * @author Yanyanhui
*
*/
public class JxlUtil {
private static Logger logger = Logger.getLogger(JxlUtil.class);
private static int MAX_SHEET_SIZE = 65530;
private static String DOUBLE_FORMAT = "#.00";
private static String INTER_FORMAT = "#";
private static WritableCellFormat INTER_CELL_FORMAT = new WritableCellFormat(new NumberFormat(INTER_FORMAT));
private static WritableCellFormat DOUBLE_CELL_FORMAT = new WritableCellFormat(new NumberFormat(DOUBLE_FORMAT));
/**
* 鍒楄〃杞崲鎴恊xcel瀵煎嚭
* @param list 瑕佽浆鎹㈢殑鍒楄〃
* @param title 杞崲鍒楄〃鐨勬爣棰? * @param sheetName 宸ヤ綔琛ㄥ悕绉? * @param request 璇锋眰
* @param response 鍝嶅簲
* @throws Exception
*/
public static <T> void listToExcel(List<T> list,LinkedHashMap<String, String> title,String sheetName,HttpServletRequest request,HttpServletResponse response) throws Exception{
listToExcel(list, title, sheetName, sheetName, 0, 0, request, response);
}
/**
* 鍒楄〃杞崲鎴恊xcel瀵煎嚭
* @param list 瑕佽浆鎹㈢殑鍒楄〃
* @param title 杞崲鍒楄〃鐨勬爣棰? * @param sheetName 宸ヤ綔琛ㄥ悕绉? * @param fileName excel鏂囦欢鍚嶇О
* @param request 璇锋眰
* @param response 鍝嶅簲
* @throws Exception
*/
public static <T> void listToExcel(List<T> list,LinkedHashMap<String, String> title,String sheetName, String fileName,HttpServletRequest request,HttpServletResponse response) throws Exception{
listToExcel(list, title, sheetName, fileName, 0, 0, request, response);
}
/**
* 鍒楄〃杞崲鎴恊xcel瀵煎嚭
* @param list 瑕佽浆鎹㈢殑鍒楄〃
* @param title 杞崲鍒楄〃鐨勬爣棰? * @param sheetName 宸ヤ綔琛ㄥ悕绉? * @param fileName excel鏂囦欢鍚嶇О
* @param startRow 浠庡摢琛屽紑濮嬭緭鍑? * @param request 璇锋眰
* @param response 鍝嶅簲
* @throws Exception
*/
public static <T> void listToExcel(List<T> list,LinkedHashMap<String, String> title,String sheetName, String fileName,int startRow,HttpServletRequest request,HttpServletResponse response) throws Exception{
listToExcel(list, title, sheetName, fileName, 0, startRow, request, response);
}
/**
* 鍒楄〃杞崲鎴恊xcel瀵煎嚭
* @param list 瑕佽浆鎹㈢殑鍒楄〃
* @param title 杞崲鍒楄〃鐨勬爣棰? * @param sheetName 宸ヤ綔琛ㄥ悕绉? * @param fileName excel鏂囦欢鍚嶇О
* @param sheetSize 宸ヤ綔琛ㄧ殑澶у皬
* @param startRow 浠庡摢琛屽紑濮嬭緭鍑? * @param request 璇锋眰
* @param response 鍝嶅簲
* @throws Exception
*/
public static <T> void listToExcel(List<T> list,LinkedHashMap<String, String> title,String sheetName, String fileName,int sheetSize,int startRow,HttpServletRequest request,HttpServletResponse response) throws Exception{
if (list == null || list.size() == 0) {
// throw new Exception("鍒楄〃涓病鏈変换浣曟暟鎹?);
}
if (sheetSize > MAX_SHEET_SIZE || sheetSize < 1) {
sheetSize = MAX_SHEET_SIZE;
}
try {
setResp(request, response, fileName);
OutputStream outputStream = response.getOutputStream();
WritableWorkbook wwb = Workbook.createWorkbook(outputStream);
int size = 0;
// 鍥犱负2003鐨凟xcel涓€涓伐浣滆〃鏈€澶氬彲浠ユ湁65536鏉¤褰曪紝闄ゅ幓鍒楀ご鍓╀笅65530鏉? // 鎵€浠ュ鏋滆褰曞お澶氾紝闇€瑕佹斁鍒板涓伐浣滆〃涓紝鍏跺疄灏辨槸涓垎椤电殑杩囩▼
// 1.璁$畻涓€鍏辨湁澶氬皯涓伐浣滆〃
double sheetNum = Math.ceil(size / new Integer(sheetSize).doubleValue());
// 2.鍒涘缓鐩稿簲鐨勫伐浣滆〃锛屽苟鍚戝叾涓~鍏呮暟鎹?
WritableSheet sheet = wwb.createSheet(sheetName, 0);
fillVeticalSheet(sheet, list, title, startRow, 0);
// setColumnAutoSize(sheet, 2);
wwb.write();
wwb.close();
} catch (WriteException e) {
e.printStackTrace();
logger.error(e.getMessage());
} catch (IOException e) {
e.printStackTrace();
logger.error(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
logger.error(e.getMessage());
}
}
/**
* 浠ユ祦鐨勫舰寮忓鍑篹xcel
* @param list 瑕佽浆鎹㈢殑鍒楄〃
* @param title 杞崲鍒楄〃鐨勬爣棰? * @param sheetName 宸ヤ綔琛ㄥ悕绉? * @param fileName excel鏂囦欢鍚嶇О
* @param sheetSize 宸ヤ綔琛ㄧ殑澶у皬
* @param startRow 浠庡摢琛屽紑濮嬭緭鍑? * @param request 璇锋眰
* @param response 鍝嶅簲
* @return
* @throws Exception
*/
public static <T> ByteArrayOutputStream listToExcelReturnOut(List<T> list,LinkedHashMap<String, String> title,String sheetName, String fileName,int sheetSize,int startRow,HttpServletRequest request,HttpServletResponse response) throws Exception{
if (list == null || list.size() == 0) {
// throw new Exception("鍒楄〃涓病鏈変换浣曟暟鎹?);
}
if (sheetSize > MAX_SHEET_SIZE || sheetSize < 1) {
sheetSize = MAX_SHEET_SIZE;
}
// OutputStream outputStream = response.getOutputStream();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
setResp(request, response, fileName);
try {
WritableWorkbook wwb = Workbook.createWorkbook(outputStream);
int size = 0;
// 鍥犱负2003鐨凟xcel涓€涓伐浣滆〃鏈€澶氬彲浠ユ湁65536鏉¤褰曪紝闄ゅ幓鍒楀ご鍓╀笅65530鏉? // 鎵€浠ュ鏋滆褰曞お澶氾紝闇€瑕佹斁鍒板涓伐浣滆〃涓紝鍏跺疄灏辨槸涓垎椤电殑杩囩▼
// 1.璁$畻涓€鍏辨湁澶氬皯涓伐浣滆〃
double sheetNum = Math.ceil(size / new Integer(sheetSize).doubleValue());
// 2.鍒涘缓鐩稿簲鐨勫伐浣滆〃锛屽苟鍚戝叾涓~鍏呮暟鎹?
WritableSheet sheet = wwb.createSheet(sheetName, 0);
fillVeticalSheet(sheet, list, title, startRow, 0);
// setColumnAutoSize(sheet, 2);
wwb.write();
wwb.close();
} catch (WriteException e) {
e.printStackTrace();
logger.error(e.getMessage());
} catch (IOException e) {
e.printStackTrace();
logger.error(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
logger.error(e.getMessage());
}
return outputStream;
}
/**
* 濉厖绔栫洿鏂瑰悜鐨剆heet
* @param sheet
* @param data
* @param title
* @param row
* @param col
* @throws Exception
*/
public static <T> void fillVeticalSheet(WritableSheet sheet, List<T> data, LinkedHashMap<String, String> title, int row,
int col) throws Exception {
if (null == data || null == title) {
return;
}
// 瀹氫箟瀛樻斁鑻辨枃瀛楁鍚嶅拰涓枃瀛楁鍚嶇殑鏁扮粍
String[] enFields = new String[title.size()];
String[] cnFields = new String[title.size()];
// 濉厖鏁扮粍
int count = 0;
for (Entry<String, String> entry : title.entrySet()) {
enFields[count] = entry.getKey();
cnFields[count] = entry.getValue();
count++;
}
// 濉厖琛ㄥご
for (int i = 0; i < cnFields.length; i++) {
String cnValue=cnFields[i];
Label label = new Label(col + i, row,cnValue);
sheet.addCell(label);
sheet.setColumnView(col+i, cnValue.getBytes().length);//涓€涓腑鏂囧崰2涓瓧鑺傦紝缁忚繃璋冭瘯+4鍚庢晥鏋滄瘮杈冪悊鎯?
}
// 濉厖鍐呭
int rowNo = row + 1;
int colNo = col;
for (int i = 0; i < data.size(); i++) {
T item = data.get(i);
for (int j = 0; j < enFields.length; j++) {
Object objValue = getFieldValueByNameSequence(enFields[j], item);
WritableCell cell = getWritableCell(colNo+j, rowNo, objValue);
sheet.addCell(cell);
}
rowNo++;
}
}
public static WritableCell getWritableCell(int column, int row, Object object){
if (object == null) {
return new Label(column, row, "");
}
String tempObj = object.toString();
if (object instanceof Integer) {
if (tempObj.equals("0")) {
return new Number(column, row, 0);
}
return new Number(column, row, Double.valueOf(tempObj),INTER_CELL_FORMAT);
}
if (object instanceof Double) {
return new Number(column, row, Double.valueOf(tempObj),DOUBLE_CELL_FORMAT);
}
if (object instanceof BigDecimal) {
if (tempObj.indexOf(".00") > 0) {
tempObj = tempObj.substring(0, tempObj.indexOf("."));
return tempObj.equals("0") ? new Number(column, row, 0)
: new Number(column, row, Double.valueOf(tempObj),INTER_CELL_FORMAT);
}
return new Number(column, row, Double.valueOf(tempObj),DOUBLE_CELL_FORMAT);
}
return new Label(column, row, tempObj);
}
/**
* 鏍规嵁甯﹁矾寰勬垨涓嶅甫璺緞鐨勫睘鎬у悕鑾峰彇灞炴€у€?鍗虫帴鍙楃畝鍗曞睘鎬у悕锛屽userName绛夛紝鍙堟帴鍙楀甫璺緞鐨勫睘鎬у悕锛屽student.department.
* name绛? *
* @param fieldNameSequence
* 甯﹁矾寰勭殑灞炴€у悕鎴栫畝鍗曞睘鎬у悕
* @param o
* 瀵硅薄
* @return 灞炴€у€? * @throws Exception
* 寮傚父
*/
public static Object getFieldValueByNameSequence(String fieldNameSequence, Object o) throws Exception {
Object value = null;
// 灏唂ieldNameSequence杩涜鎷嗗垎
String[] attributes = fieldNameSequence.split("\\.");
if (attributes.length == 1) {
value = PropertyUtils.getProperty(o, fieldNameSequence);
} else {
// 鏍规嵁灞炴€у悕鑾峰彇灞炴€у璞? Object fieldObj = PropertyUtils.getProperty(o, attributes[0]);
String subFieldNameSequence = fieldNameSequence.substring(fieldNameSequence.indexOf(".") + 1);
value = getFieldValueByNameSequence(subFieldNameSequence, fieldObj);
}
if (value instanceof Date) {
value = new SimpleDateFormat("yyyy-MM-dd").format(
value).toString();
}
// if (value.toString().endsWith(".0000")) {
// String txt =value.toString();
// value = txt.substring(0, txt.lastIndexOf("."));
// }
return value;
}
/**
* 鏍规嵁瀛楁鍚嶈幏鍙栧瓧娈? *
* @param fieldName
* 瀛楁鍚? * @param clazz
* 鍖呭惈璇ュ瓧娈电殑绫? * @return 瀛楁
*/
public static Field getFieldByName(String fieldName, Class<?> clazz) {
// 鎷垮埌鏈被鐨勬墍鏈夊瓧娈? Field[] selfFields = clazz.getDeclaredFields();
// 濡傛灉鏈被涓瓨鍦ㄨ瀛楁锛屽垯杩斿洖
for (Field field : selfFields) {
if (field.getName().equals(fieldName)) {
return field;
}
}
// 鍚﹀垯锛屾煡鐪嬬埗绫讳腑鏄惁瀛樺湪姝ゅ瓧娈碉紝濡傛灉鏈夊垯杩斿洖
Class<?> superClazz = clazz.getSuperclass();
if (superClazz != null && superClazz != Object.class) {
return getFieldByName(fieldName, superClazz);
}
// 濡傛灉鏈被鍜岀埗绫婚兘娌℃湁锛屽垯杩斿洖绌? return null;
}
public static <T> LinkedList<WritableCell> addCellInVertical(List<T> data, Map<String, String> dataTitle,
Map<String, WritableCellFormat> cellFormatMap, int rowIndex, int colIndex) {
Label label = new Label(1, 1, "涓崍");
LinkedList<WritableCell> cells = new LinkedList<>();
cells.add(label);
return cells;
}
/**
*
* @param fileName
* @param request
* @param response
*/
private static void setResp(HttpServletRequest request, HttpServletResponse response, String fileName) {
final String userAgent = request.getHeader("USER-AGENT");
response.reset();
// response.setContentType("application/vnd.ms-excel"); // 鏀规垚杈撳嚭excel鏂囦欢
response.setContentType("application/x-msdownload");
try {
String finalFileName = null;
if (StringUtils.contains(userAgent, "MSIE")) {// IE娴忚鍣? finalFileName = URLEncoder.encode(fileName, "UTF8");
}
else if (StringUtils.contains(userAgent, "Mozilla")) {// google,鐏嫄娴忚鍣? finalFileName = new String(fileName.getBytes(), "ISO8859-1");
}
else {
finalFileName = URLEncoder.encode(fileName, "UTF8");// 鍏朵粬娴忚鍣? }
String dataStr = new SimpleDateFormat("yyyyMMddHHmmss").format(
new Date()).toString();
// 杩欓噷璁剧疆涓€涓嬭娴忚鍣ㄥ脊鍑轰笅杞芥彁绀烘锛岃€屼笉鏄洿鎺ュ湪娴忚鍣ㄤ腑鎵撳紑
response.setHeader("Content-Disposition", "attachment; filename=" + finalFileName+"_"+dataStr + ".xls");
} catch (UnsupportedEncodingException e) {
}
}
/**
* 璁剧疆宸ヤ綔琛ㄨ嚜鍔ㄥ垪瀹藉拰棣栬鍔犵矖
*
* @param ws
* 瑕佽缃牸寮忕殑宸ヤ綔琛? * @param extraWith
* 棰濆鐨勫搴? */
public static void setColumnAutoSize(WritableSheet ws, int extraWith) {
// 鑾峰彇鏈垪鐨勬渶瀹藉崟鍏冩牸鐨勫搴? for (int i = 0; i < ws.getColumns(); i++) {
int colWith = 0;
for (int j = 0; j < ws.getRows(); j++) {
String content = ws.getCell(i, j).getContents().toString();
int cellWith = content.length();
if (colWith < cellWith) {
colWith = cellWith;
}
}
// 璁剧疆鍗曞厓鏍肩殑瀹藉害涓烘渶瀹藉搴?棰濆瀹藉害
ws.setColumnView(i, colWith + extraWith);
}
}
// public static NumberFormat getNumFormate(Object object){
// NumberFormat numberFormat = new NumberFormat("");
//
// }
public static void testExport(HttpServletRequest request,HttpServletResponse response) {
try {
setResp(request,response,"test");
OutputStream outputStream = response.getOutputStream();
WritableWorkbook wwb = Workbook.createWorkbook(outputStream);
WritableSheet sheet = wwb.createSheet("test", 0);
Label label = new Label(1, 1, "涓崍");
sheet.addCell(label);
wwb.write();
wwb.close();
} catch (WriteException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
聽
閭欢宸ュ叿绫?
聽
package com.yx.mail;
import java.io.ByteArrayInputStream;
import java.security.GeneralSecurityException;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Part;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
import javax.mail.internet.MimeMessage.RecipientType;
import javax.mail.util.ByteArrayDataSource;
import com.sun.mail.util.MailSSLSocketFactory;
public class BaseMail {
/**
* 鍙戦€侀偖浠? *
* @param to
* 閭欢鏀朵欢浜哄湴鍧€
* @param copyEmail
* 閭欢鎶勯€佸湴鍧€
* @param title
* 閭欢鏍囬
* @param text
* 鍐呭
* @param fileDs
* 闄勪欢娴? */
public void sendMsgFileDs(String to, String copyEmail, String title, String text,ByteArrayInputStream inputstream) {
Session session = assembleSession();
Message msg=new MimeMessage(session);
try {
msg.setFrom(new InternetAddress(MailConfig.sendAddress));
msg.setSubject(title);
msg.setRecipients(RecipientType.TO, acceptAddressList(to,copyEmail));
MimeBodyPart contentPart=(MimeBodyPart) createContent(text,inputstream);//鍙傛暟涓烘鏂囧唴瀹瑰拰闄勪欢娴?// MimeBodyPart stream = new MimeBodyPart();
// MimeBodyPart part=(MimeBodyPart) createAttachment("D:/test/1.jpg");//鍙鍔犲涓檮浠? MimeMultipart mime=new MimeMultipart("mixed");
mime.addBodyPart(contentPart);
// mime.addBodyPart(part);//鍙鍔犲涓檮浠? msg.setContent(mime);
Transport.send(msg);
} catch (Exception e) {
e.printStackTrace();
}
}
public Address[] acceptAddressList(String acceptAddress,String acceptAddressOther) {
// 鍒涘缓閭欢鐨勬帴鏀惰€呭湴鍧€锛屽苟璁剧疆鍒伴偖浠舵秷鎭腑
Address[] tos = null;
String [] copyEmail= acceptAddressOther.split(",");
try {
if (copyEmail != null) {
// 涓烘瘡涓偖浠舵帴鏀惰€呭垱寤轰竴涓湴鍧€
tos = new InternetAddress[copyEmail.length + 1];
tos[0] = new InternetAddress(acceptAddress);
for (int i = 0; i < copyEmail.length; i++) {
tos[i + 1] = new InternetAddress(copyEmail[i]);
}
} else {
tos = new InternetAddress[1];
tos[0] = new InternetAddress(acceptAddress);
}
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return tos;
}
public Session assembleSession() {
Session session = null;
Properties props=new Properties();
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.port", MailConfig.mailSmtpPort);
props.setProperty("mail.smtp.host", MailConfig.mailSmtpHost);//閭欢鏈嶅姟鍣? //寮€鍚畨鍏ㄥ崗璁? MailSSLSocketFactory sf = null;
try {
sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
} catch (GeneralSecurityException e1) {
e1.printStackTrace();
}
props.put("mail.smtp.ssl.socketFactory", sf);
props.put("mail.smtp.ssl.enable", "true");
session = Session.getDefaultInstance(props, new MyAuthenricator(MailConfig.sendAddress,MailConfig.sendPassWord));
return session;
}
static Part createContent(String content,ByteArrayInputStream inputstream){
MimeBodyPart contentPart=null;
try {
contentPart=new MimeBodyPart();
MimeMultipart contentMultipart=new MimeMultipart("related");
MimeBodyPart htmlPart=new MimeBodyPart();
htmlPart.setContent(content, "text/html;charset=gbk");
contentMultipart.addBodyPart(htmlPart);
//闄勪欢閮ㄥ垎
MimeBodyPart excelBodyPart=new MimeBodyPart();
DataSource dataSource=new ByteArrayDataSource(inputstream, "application/excel");
DataHandler dataHandler=new DataHandler(dataSource);
excelBodyPart.setDataHandler(dataHandler);
excelBodyPart.setFileName(MimeUtility.encodeText("閫氱煡.xls"));
// excelBodyPart.setDataHandler(new DataHandler(fileDs));
// excelBodyPart.setFileName(fileDs.getName());
// excelBodyPart.setContentID("excel");
contentMultipart.addBodyPart(excelBodyPart);
contentPart.setContent(contentMultipart);
} catch (Exception e) {
e.printStackTrace();
}
return contentPart;
}
//鐢ㄦ埛鍚嶅瘑鐮侀獙璇侊紝闇€瑕佸疄鐜版娊璞$被Authenticator鐨勬娊璞℃柟娉昉asswordAuthentication
static class MyAuthenricator extends Authenticator{
String u = null;
String p = null;
public MyAuthenricator(String u,String p){
this.u=u;
this.p=p;
}
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(u,p);
}
}
}
聽
娴嬭瘯绫伙細
package com.yx.mail;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@Scope(value = "prototype")
public class TestMain extends BaseController{
private Logger logger = LogManager.getLogger(TestMain.class);
@Autowired
private SendEmailService sendEmailService;
@RequestMapping(value = "/mail", method = RequestMethod.GET)
@ResponseBody
public String sendEmail() {
List<Order> rechecklist = new ArrayList();
Order Order1 = new Order();
Order1.setOrderNo("1");
Order1.setProvinceId("榛戦緳姹?);
Order Order2 = new Order();
Order2.setOrderNo("2");
Order2.setProvinceId("鍚夋灄");
Order Order3 = new Order();
Order3.setOrderNo("3");
Order3.setProvinceId("杈藉畞");
Order Order4 = new Order();
Order4.setOrderNo("4");
Order4.setProvinceId("绂忓缓");
rechecklist.add(Order1);rechecklist.add(Order2);rechecklist.add(Order3);rechecklist.add(Order4);
LinkedHashMap<String, String> recheckMap = new LinkedHashMap<>();
recheckMap.put("provinceId", "鐪佷唤");
recheckMap.put("orderNo", "璁㈠崟鍙?);
try {
ByteArrayOutputStream baos = JxlUtil.listToExcelReturnOut(rechecklist, recheckMap, "test", "testexport", 0, 0, request,
response);
ByteArrayInputStream InputStream = new ByteArrayInputStream(baos.toByteArray());
String email = MailConfig.acceptAddress;//鎺ユ敹浜? String copyEmail = MailConfig.acceptAddressOther;//鎶勯€佸浜轰互閫楀彿鍒嗛殧
String title = "XX閫氱煡";
String context = "褰撳墠绯荤粺瀛樺湪"+rechecklist.size()+"鏉¢渶瑕佸鐞嗙殑璁㈠崟銆傝鎯呰鐣欐剰闄勪欢銆?;
sendEmailService.sendMsgFileDs(email,copyEmail,title,context,InputStream);
// file.deleteOnExit();
} catch (Exception e) {
logger.info(e.getMessage());
logger.info("銆怣ailNoticeController銆憇endEmail 寮傚父");
}
return null;
}
}
聽