//js代码
jQuery.noConflict(); //jquery版本兼容function ajaxFileUpload() {var fileVal = jQuery("#file").attr("value");var fileValArr = fileVal.split(".");if (fileValArr[fileValArr.length - 1] != 'xls') {alert("请上传excel文件!");return false;}jQuery("#loading").ajaxStart(function() {jQuery(this).show();$("#note").html("正在上传...");})// 开始上传文件时显示一个图片.ajaxComplete(function() {jQuery(this).hide();});// 文件上传完成将图片隐藏起来jQuery.ajaxFileUpload({url : '../../examTarget/uploadFile.action',// 用于文件上传的服务器端请求地址secureuri : false,// 一般设置为false 这个为空ajaxfileupload中的iframe不显示fileElementId : 'file',// 文件上传空间的id属性 data:{'examActivityRowid':examActivityRowid},dataType : 'json',// 返回值类型 一般设置为jsonsuccess : function(data) // 服务器成功响应处理函数{// 这里放入返回成功后需要处理的响应data是返回的数据if(data && data.fileName!=""){$("#note").html("上传成功,正在解析...");}},error : function(data)// 服务器响应失败处理函数{// 服务器响应失败的处理信息。$("#note").html("上传成功失败!");}})return false;
}
java struts2后台处理
public void uploadFile() throws Exception {HttpServletResponse response = ServletActionContext.getResponse();response.setContentType("text/html;charset=UTF-8");response.setCharacterEncoding("utf-8");InputStream is = null;OutputStream os = null;try {checkUserId();String path = Util.getBootProps().getProperty(PropertiesValue.MARKT_EXCEL_TEMPLATE_PATH);is = new FileInputStream(file);// 输入流fileName = System.currentTimeMillis() + ".xls";File toFile = new File(path, fileName);os = new FileOutputStream(toFile);// 设置缓存byte[] buffer = new byte[1024];int length = 0;// 读取myFile文件输出到toFile文件中while ((length = is.read(buffer)) > 0) {os.write(buffer, 0, length);}} catch (Exception e) {fileName = "";} finally {try {// 关闭输入流if (null != is) {is.close();}// 关闭输出流if (null != os) {os.close();}} catch (IOException e) {fileName = "";}}ServletActionContext.getResponse().getWriter().write("{fileName:\"" + fileName + "\"}");ServletActionContext.getResponse().getWriter().flush();ServletActionContext.getResponse().getWriter().close();}
xml配置
=============================================上传功能==================
jxl的 excel生成 直接下载
import jxl.Workbook;
import jxl.format.UnderlineStyle;
import jxl.write.DateFormat;
import jxl.write.DateTime;
import jxl.write.Label;
import jxl.write.NumberFormat;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public void download() throws Exception {HttpServletResponse response = ServletActionContext.getResponse();response.reset();//设置响应头为二进制流response.setContentType( "application/x-msdownload;charset=utf-8");response.setCharacterEncoding("utf-8");downloadFileName = "目标值导入模板.xls";ServletActionContext.getResponse().setHeader( "Content-Disposition", "attachment; filename=" + new String(downloadFileName.getBytes(),"ISO-8859-1"));WritableWorkbook wb = Workbook.createWorkbook(ServletActionContext.getResponse().getOutputStream());// 创建Excel工作表WritableSheet ws = wb.createSheet("sheet1", 0);// 添加Label对象Label label1 = new Label(0, 0, "测试创建Excel");ws.addCell(label1);// 添加带有字型Formatting的对象WritableFont wf = new WritableFont(WritableFont.TIMES, 18,WritableFont.BOLD, true);WritableCellFormat wcfF = new WritableCellFormat(wf);Label labelCF = new Label(1, 0, "This is a Label Cell", wcfF);ws.addCell(labelCF);// 添加带有字体颜色Formatting的对象WritableFont wfc = new WritableFont(WritableFont.ARIAL, 10,WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED);WritableCellFormat wcfFC = new WritableCellFormat(wfc);Label labelCFC = new Label(1, 0, "This is a Label Cell", wcfFC);ws.addCell(labelCFC);// 添加Number对象jxl.write.Number labelN = new jxl.write.Number(0, 1, 3.1415926);ws.addCell(labelN);// 添加带有formatting的 Number对象NumberFormat nf = new NumberFormat("#.##");WritableCellFormat wcfN = new WritableCellFormat(nf);jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN);ws.addCell(labelNF);// 添加Boolean对象jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false);ws.addCell(labelB);// 添加DateTime对象DateTime labelDT = new DateTime(0, 3, new java.util.Date());ws.addCell(labelDT);// 添加带有formatting的DateFormat对象DateFormat df = new DateFormat("dd MM yyyy hh:mm:ss");WritableCellFormat wcfDF = new WritableCellFormat(df);DateTime labelDTF = new DateTime(1, 3, new java.util.Date(), wcfDF);ws.addCell(labelDTF);Label label31 = new Label(3, 1, "0011x");Label label32 = new Label(3, 2, "0012x");Label label33 = new Label(3, 3, "0013x");ws.addCell(label31);ws.addCell(label32);ws.addCell(label33);ws.setColumnView(3, 0);wb.write(); // 写入Exel工作表wb.close(); // 关闭Excel工作薄对象}