⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csreportimportaction.java

📁 上传并读取上传excel中的数据
💻 JAVA
字号:
package com.baosight.bsfc.cs.action;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.text.SimpleDateFormat;import java.util.Collection;import java.util.Date;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.log4j.Logger;import org.apache.struts.action.Action;import org.apache.struts.action.ActionErrors;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.DynaActionForm;import org.apache.struts.upload.FormFile;import org.apache.struts.util.MessageResources;import com.baosight.bsfc.ct.po.TCtTemplateBO;import com.baosight.common.global.CommonUtil;import com.baosight.framework.config.FrameworkContext;import com.baosight.framework.dao.DAO;import com.baosight.framework.exception.ApplicationException;public class CsReportImportAction extends Action {	TCtTemplateBO bo = (TCtTemplateBO)FrameworkContext.getInstance().getBean("bo-get-excel");	//DAO dao1 = (DAO)FrameworkContext.getInstance().getBean("dao-TCsReport");	DAO dao = (DAO)FrameworkContext.getInstance().getBean("dao-TCsRptitemplate");	private Logger logger = Logger.getLogger(CsReportImportAction.class);	private static final SimpleDateFormat ORA_DATE_TIME_FORMAT = new SimpleDateFormat("yyyyMMddHHmm");	private static java.io.File file = null;	/*public Collection doQuery1()//从t_cs_report查数据	{		Map map=new HashMap();		Collection record =dao1.query("query", map);		return record;	}*/	public Collection doNotNullQuery(String para[])//从t_cs_rptitemplate查数据	{		Map map=new HashMap();		logger.info("----------------------------------------------------------->"+para[0]+"<---------------------------------------------");		map.put("reportId", para[0]);		logger.info("----------------------------------------------------------->"+para[3]+"<---------------------------------------------");		map.put("reportType", para[3]);		Collection record =dao.query("queryNotNullExcel", map);		return record;	}	public Collection doNullQuery(String para[])//从t_cs_rptitemplate查数据	{		Map map=new HashMap();		logger.info("----------------------------------------------------------->"+para[0]+"<---------------------------------------------");		map.put("reportId", para[0]);		logger.info("----------------------------------------------------------->"+para[3]+"<---------------------------------------------");		map.put("reportType", para[3]);		Collection record =dao.query("queryNullExcel", map);		return record;	}	public void getnullData(String para[]){		Collection recordnull=null;		recordnull=this.doNullQuery(para);		Map maptemp=new HashMap();		Map maptexcel=new HashMap();		Iterator it=recordnull.iterator();		while(it.hasNext()){			try{				maptemp=(Map)it.next();				String serialNo=(String)maptemp.get("serial");				String itemName=(String)maptemp.get("itemName");				maptexcel.put("serialNo", serialNo);				maptexcel.put("itemName", itemName);				maptexcel.put("reportId", para[0]);				maptexcel.put("custId", para[1]);				maptexcel.put("periodId", para[2]);				//record.add(maptexcel);				bo.insert("insert",maptexcel);//增加单条记录			}catch(Exception e)			{				e.printStackTrace();				throw new ApplicationException(e);			}		}	}	public void getData(String para[])//得到excel中读金额数据和从前台过来的数据	{		//this.doQuery1();		Collection recordtemp=null;	//	Map map=new HashMap();		Map maptemp=new HashMap();		Map maptexcel=new HashMap();		recordtemp=this.doNotNullQuery(para);		Iterator it=recordtemp.iterator();						while(it.hasNext()){			try{				maptemp=(Map)it.next();				String rowNo=(String)maptemp.get("rowNo");				String colNo=(String)maptemp.get("colNo");				String position1=(String)maptemp.get("position");				String position2=(String)maptemp.get("position2");				String serialNo=(String)maptemp.get("serial");				String itemName=(String)maptemp.get("itemName");				String codeNo=(String)maptemp.get("code");				if( (codeNo==null) ||codeNo.equals("")) {					codeNo="0";				}				maptexcel=ReadExcelMetaData.readExcel(position1, position2);				maptexcel.put("serialNo", serialNo);				maptexcel.put("itemName", itemName);				maptexcel.put("codeNo", codeNo);				maptexcel.put("rowNo", rowNo);				maptexcel.put("colNo", colNo);				maptexcel.put("reportId", para[0]);				maptexcel.put("custId", para[1]);				maptexcel.put("periodId", para[2]);								//record.add(maptexcel);				bo.insert("insert",maptexcel);//增加单条记录			}catch(Exception e)			{				e.printStackTrace();				throw new ApplicationException(e);			}		}	}	public ActionForward execute(ActionMapping mapping, ActionForm form,			HttpServletRequest request, HttpServletResponse response)			throws Exception {		MessageResources messages = getResources(request);		ActionErrors errors = new ActionErrors();		HttpSession session = request.getSession();		// 执行		try {			Date date = new Date();			SimpleDateFormat theDateTimeFormat = (SimpleDateFormat) ORA_DATE_TIME_FORMAT					.clone();			theDateTimeFormat.setLenient(false);			String fileNo = theDateTimeFormat.format(date);			System.out.println("++++++++++++++++++++++++++++++++++++++");			DynaActionForm uploadForm = (DynaActionForm) form;			String encoding = request.getCharacterEncoding();			if ((encoding != null) && (encoding.equalsIgnoreCase("utf-8"))) {				response.setContentType("text/html; charset=utf-8");			}			FormFile filestream = (FormFile) uploadForm.get("uploadFile"); // 从Form类中获得上传的文件流			String fileName = filestream.getFileName(); // 获得文件名			// DAO dao = (DAO)			// FrameworkContext.getInstance().getBean("dao-TNbUseaccount");			// Collection results = dao.query("getFileNo", new HashMap());			// Iterator itr_results = results.iterator();			// if (itr_results.hasNext())			// {			// Map resultMap = (Map)itr_results.next();			// fileNo = (String)resultMap.get("fileNo");			// }			// 文件名为新生成文件号加上传文件后缀名			fileName = fileNo + fileName.substring(fileName.lastIndexOf("."));			// 判断文件的大小是否大于4M			if (filestream.getFileSize() < (4 * 1024000)) {				ByteArrayOutputStream filedata = new ByteArrayOutputStream();				byte[] buffer = new byte[8192];				int bytesRead = 0;				InputStream stream = filestream.getInputStream();				while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {					filedata.write(buffer, 0, bytesRead);				}				stream.close();				file = new java.io.File(servlet.getServletContext()						.getRealPath("/")						+ "/temp" + "/" + fileName);				FileOutputStream fileOut = new FileOutputStream(file);				fileOut.write(filedata.toByteArray());				fileOut.close();				if (stream != null) {					stream.close();				}				if (fileOut != null) {					fileOut.close();				}				if (filedata != null) {					filedata.close();				}			} else {				// 提示用户上传文件不能大于4M				throw new ApplicationException("上传文件不能大于4M!");			}			logger.info("===============action结t束===================");			logger					.info("=================="							+ request.getParameter("reportId"));			logger.info("==================" + request.getParameter("custId"));			logger					.info("=================="     							+ request.getParameter("reportType"));			logger			.info("=================="					+ request.getParameter("periodId"));			// ActionForward forward = new			// ActionForward("/cs/TCsReport.jsp?fileName="+fileName+"&reportId="+reportId+"&custId="+custId+"&periodId="+periodId);			String reportId = (String) request.getParameter("reportId");			//reportId = CommonUtil.fillString(reportId, '0', 2);			String custId = (String) request.getParameter("custId");			custId = CommonUtil.fillString(custId, '0', 4);			String periodId = (String) request.getParameter("periodId");			String reportType=(String) request.getParameter("reportType");			logger.info("reportType"+reportType);			//reportType = CommonUtil.fillString(reportType, '0', 1);			logger.info("reportId=====================" + reportId);			ActionForward forward = new ActionForward(					"/pages/cs/TCsReport.jsp?fileName=" + fileName + "&reportId="							+ reportId + "&custId=" + custId + "&periodId="							+ periodId+"&reportType="+reportType);			logger.info("===============path==================="					+ forward.getPath());			String para[]={reportId,custId,periodId,reportType};			getData(para);			this.getnullData(para);			return mapping.findForward("successExcel");		} catch (Exception e) {			e.printStackTrace();			throw new ApplicationException(e.getMessage());		}	}	public static File getFile() {		return file;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -