Java导出Excel实现多表头导出

doExport = function (my_anctionParams) {

var viewId = pageParts.voucherViewId;

var gridData = $('#' + viewId.substring(1, 37) + '').parent()[0]['u-meta'].grid;

var dataArr = gridData.getAllRows();

var pageParams = getPageParams();

var selectData = pageParts.billGridModel.gridData.getSimpleData({

type: 'select',

fields: ['agency_code']

});

if(dataArr.length === 0) {

ip.warnJumpMsg("请选择数据!", 0, 0, true);

return;

}

if (my_anctionParams == null || my_anctionParams == undefined) {

ip.warnJumpMsg("请在菜单资源中的按钮参数上配置参数!", 0, 0, true)

return;

}

if (my_anctionParams.vtCode == "" || my_anctionParams.vtCode == undefined) {

ip.warnJumpMsg("请在菜单资源中的按钮参数上配置凭证类型vtCode参数!", 0, 0, true)

return;

}

pageParams["dataArr"] = JSON.stringify(dataArr);

pageParams["vt_code"] = my_anctionParams.vtCode;

pageParams["agency_code"] = selectData[0].agency_code;

$.ajax({

url: "/df/ebalance/jxOperation/exportExcel.do",

type: "POST",

dataType: "json",

async: false,

data: pageParams,

success: function (data) {

}

});

};

亨达返佣

@RequestMapping(value = "/exportExcel.do")

@ResponseBody

public void exportExcel(HttpServletRequest request) throws Exception {

String dataArr = request.getParameter("dataArr");

String vt_code = request.getParameter("vt_code");

String agency_code = request.getParameter("agency_code");

List dataArrList = JSONArray.fromObject(dataArr.replaceAll(":null,", ":\"\","));

String fileNamew = "";

switch (vt_code) {

case "5551" :

fileNamew = "5551_dw.xlsx";

break;

case "5552" :

fileNamew = "5552_dw.xlsx";

break;

}

String srcFilePath = getClass().getResource("/template/" + fileNamew).getPath();

SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");//设置日期格式

String date = df.format(new Date());

String fileName = agency_code + "_" + vt_code + "_" + date + ".xlsx";

FileSystemView fsv = FileSystemView.getFileSystemView();

File home = fsv.getHomeDirectory();

String path = home.getPath();

String desFilePath = path + "/" + fileName;

EPayUtil.exportExcel(srcFilePath, desFilePath, dataArrList, vt_code);

}

public static void exportExcel(String srcFilePath, String desFilePath, List dataArrList, String vt_code) throws Exception {

FileInputStream fls = new FileInputStream(srcFilePath);

XSSFWorkbook workBook = new XSSFWorkbook(fls);

FileOutputStream fos = new FileOutputStream(desFilePath);

XSSFSheet sheet = workBook.getSheetAt(0);

int currentLastRowIndex = sheet.getLastRowNum();

int newRowIndex = currentLastRowIndex + 1;

XSSFDataFormat format = workBook.createDataFormat();

CellStyle cellStyleWB = workBook.createCellStyle();

cellStyleWB.setFillPattern(CellStyle.SOLID_FOREGROUND);

cellStyleWB.setDataFormat(format.getFormat("@"));

cellStyleWB = setCellStyle(cellStyleWB);

System.out.println(dataArrList);

//解析数据

HashMap<integer,map> totalData = new HashMap<integer,map>();

for (int i = 0; i < dataArrList.size(); i++) {

HashMap<string, string=""> data = new HashMap<string, string="">();

JSONObject jsonObject = (JSONObject) dataArrList.get(i);

Iterator it = jsonObject.keys();

while (it.hasNext()) {

String key = String.valueOf(it.next());

String value = (String) jsonObject.get(key);

data.put(key, value);

}

totalData.put(i,data);

}

EPayUtil ePayUtil = new EPayUtil();

List list = ePayUtil.addList(vt_code);

for (int j = 0; j < totalData.size(); j++) {

int cellIndex = 0;

XSSFRow newRow = sheet.createRow(newRowIndex++);

Map map = totalData.get(j);

List mapKeyList = new ArrayList(map.keySet());

for(String ss : list){

for (String key : mapKeyList) {

if(ss.equals(key)){

XSSFCell newCell1 = newRow.createCell(cellIndex++, Cell.CELL_TYPE_STRING);

String code = (String) map.get(key);

if ("check_result".equals(key)) {

if ("0".equals(code)) {

code = "对账相符";

} else {

code = "对账不符";

}

}

newCell1.setCellValue(code);

newCell1.setCellStyle(cellStyleWB);

}

}

}

}

workBook.write(fos);

fls.close();

fos.flush();

fos.close();

}

private static CellStyle setCellStyle(CellStyle cellStyle){

cellStyle.setWrapText( true );//自动换行

cellStyle.setBorderRight(CellStyle.BORDER_THIN);

cellStyle.setBorderTop(CellStyle.BORDER_THIN);

cellStyle.setBorderLeft(CellStyle.BORDER_THIN);

cellStyle.setBorderBottom(CellStyle.BORDER_THIN);

cellStyle.setAlignment(CellStyle.ALIGN_LEFT);

cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);

cellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());//非错误信息不标红

cellStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);

return cellStyle;

}

public List addList(String vt_code) {

List list = new ArrayList();

switch (vt_code) {

case "5551" :

list.add("fundtype_code"); list.add("fundtype_name"); list.add("expfunc_code"); list.add("expfunc_name"); list.add("depexpeco_code");

list.add("depexpeco_name"); list.add("biamt1"); list.add("biamt2");list.add("biamt3"); list.add("planamt1"); list.add("planamt2");

list.add("planamt3"); list.add("planamt4"); list.add("planamt5"); list.add("planamt6"); list.add("planamt7");list.add("planamt8");

list.add("planamt9"); list.add("check_result"); list.add("check_reason"); list.add("check_remark");

break;

case "5552" :

list.add("fundtype_code"); list.add("fundtype_name"); list.add("expfunc_code"); list.add("expfunc_name"); list.add("depexpeco_code");

list.add("depexpeco_name"); list.add("sum_pay_amt"); list.add("dir_sum_amt"); list.add("salary_pay_amt"); list.add("gb_pay_amt");

list.add("far_pay_amt"); list.add("other_pay_amt"); list.add("sq_pay_amt"); list.add("check_result"); list.add("check_reason");

list.add("check_remark");

}

return list;

}

原文链接:https://blog.csdn.net/m0_37676819/article/details/106381267

猜你喜欢

转载自www.cnblogs.com/benming/p/12978778.html