前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。?
效果:
?
jsp 頁面 ?用的Bootstrap :
?
<li class="dropdown">
?
<a href="javascript:void(0);" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="fa fa-file-excel-o"></i></a><ul class="dropdown-menu" role="menu"><li><a href="javascript:void(0);" id="excel">excel導出 </a></li></ul></li>
?
?
?
?
?
?
? 表格是用的jquery 的dataTable ?,js :
?
?
// 導出 $("#excel").click(function(){// 查詢條件: var account = $('#account').val();var riceCount = $('#riceCount').val();var format = $('#format').val();var regioin = $('#regioin').val();var url = "/order/excelBegFlowInfo?account="+account+"&riceCount="+riceCount+"&format="+format+"®ioin="+regioin;if ($("#datatable tbody tr").text() == "表中數據為空") {$.tooltip("沒有可導出的數據", false);return;}location.href = url;})
?
?
?
后臺調用部分:
?
?
/*** 導出 * @throws Exception*/@RequestMapping("/excelBegFlowInfo")public void excelBegFlowInfo(HttpServletResponse response, BegFlowInfo info) throws Exception {// 要導出的列表數據List<BegFlowInfo> totalList = _begFlowOrderService.selectBegFlowInfo(info);if (CollectionUtils.isEmpty(totalList)) {return;}List<List<Object>> list = new ArrayList<List<Object>>(); for (BegFlowInfo begFlowInfo : totalList) {List<Object> dataList = new ArrayList<Object>();dataList.add(begFlowInfo.getId() == null ? "":begFlowInfo.getId());dataList.add(begFlowInfo.getCreateDate() == null ? "":begFlowInfo.getCreateDate());dataList.add(begFlowInfo.getAccount() == null ? "":begFlowInfo.getAccount());dataList.add(begFlowInfo.getCarrier() == null ? "":begFlowInfo.getCarrier());dataList.add(begFlowInfo.getRegioin() == null ? "":begFlowInfo.getRegioin());dataList.add(begFlowInfo.getFormat() == null ? "" :begFlowInfo.getFormat());dataList.add(begFlowInfo.getPrice() == null ? "":begFlowInfo.getPrice());dataList.add(begFlowInfo.getType() == null ? "":begFlowInfo.getType().getName());dataList.add(begFlowInfo.getRiceCount() == null ? "0":begFlowInfo.getRiceCount());dataList.add(begFlowInfo.getIdentifyCode() == null ? "":begFlowInfo.getIdentifyCode());dataList.add(begFlowInfo.getSmsCommand() == null ? "":begFlowInfo.getSmsCommand());dataList.add(begFlowInfo.getUsableDate() == null ? "":begFlowInfo.getUsableDate()); dataList.add(giveCount == null ? "":giveCount);list.add(dataList);}//表頭String[] headers = new String[]{"序號","xxx","xxx","XXX","XXX","XXX","XXX","XXX","XXX","XXX","XXXX","XXXX"};// list 是要導出的表數據 HSSFWorkbook workbook = ExcelUtil.excelOut(headers, list);try{ response.reset(); //清除response中的緩存信息response.setHeader("Content-Disposition", "attachment; filename=" + new String("訂單管理.csv".getBytes("gbk"), "iso8859-1"));response.setContentType("application/vnd.ms-excel;");response.setCharacterEncoding("utf-8");workbook.write(response.getOutputStream());} catch (Exception e){e.printStackTrace(); }}
xxx","xxx","XXX","XXX","XXX","XXX","XXX","XXX","XXX","XXXX","XXXX"};// list 是要導出的表數據 HSSFWorkbook workbook = ExcelUtil.excelOut(headers, list);try{ response.reset(); //清除response中的緩存信息response.setHeader("Content-Disposition", "attachment; filename=" + new String("訂單管理.csv".getBytes("gbk"), "iso8859-1"));response.setContentType("application/vnd.ms-excel;");response.setCharacterEncoding("utf-8");workbook.write(response.getOutputStream());} catch (Exception e){e.printStackTrace(); }}
?
?
?
POI 方式-excle導出工具類實現:
?
import java.util.List;import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;/*** Excel工具* @author jiangyu* @date */
public class ExcelUtil {public static HSSFWorkbook excelOut(String[] cloumName, List<List<Object>> list){//聲明一個工作簿 HSSFWorkbook workbook = new HSSFWorkbook(); //生成一個表格 HSSFSheet sheet = workbook.createSheet(); //設置表格默認列寬度為20個字符 sheet.setDefaultColumnWidth(20);//生成一個樣式,用來設置標題樣式 HSSFCellStyle style = workbook.createCellStyle(); // 表頭居中style.setAlignment(HSSFCellStyle.ALIGN_CENTER); //生成一個字體 HSSFFont font = workbook.createFont(); font.setFontHeightInPoints((short) 12); // 字體高度font.setFontName(" 黑體 "); // 字體//把字體應用到當前的樣式 style.setFont(font); // 生成并設置另一個樣式,用于設置內容樣式 HSSFCellStyle style2 = workbook.createCellStyle(); style2.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 生成另一個字體 HSSFFont font2 = workbook.createFont(); font2.setFontName(" 黑體 "); // 字體// 把字體應用到當前的樣式 style2.setFont(font2); HSSFRow row = sheet.createRow(0); for(int i = 0; i < cloumName.length; i++){ //單元格HSSFCell cellHead = row.createCell(i); cellHead.setCellStyle(style); HSSFRichTextString text = new HSSFRichTextString(cloumName[i]); cellHead.setCellValue(text); } for (int i = 0; i < list.size(); i++){ row = sheet.createRow(i + 1); List<Object> dataList = list.get(i); for (int j = 0; j < dataList.size(); j++) {// 表格內容樣式設置HSSFCell cellHead = row.createCell(j); cellHead.setCellStyle(style2); HSSFRichTextString text = new HSSFRichTextString(String.valueOf(dataList.get(j))); // 為空if(text == null || text.toString() == ""){cellHead.setCellValue(""); }// 整數,不為電話else if(ValidateUtils.isInteger(String.valueOf(text))&& !(StringUtils.startsWith(String.valueOf(text),"1")&& String.valueOf(text).length() == 11)){cellHead.setCellValue(Integer.parseInt(String.valueOf(text))); }// 有小數、或為電話else if(ValidateUtils.isDouble(dataList.get(j).toString())){cellHead.setCellValue(Double.parseDouble(String.valueOf(text))); }// 字符串else{cellHead.setCellValue(String.valueOf(text)); }}}return workbook;}
}
?
?
?
?
?
?
?
?