在导入excel前action(importExcelBeforeAction)的执行后事件中,可以获得导入的excel文件,但默认是Workbook 类型的需要自己转换为File
具体实现如下:
1、在BIZ层构建路径中添加/SA/excel/logic/code下的jar包
2、在导入功能的process中引用/SA/excel/logic/action和/SA/excel/logic/code目录
3、在动作设置中添加importExcelBeforeAction的执行后事件,代码如下
4、在w文件的excel导入组件的action属性中选择/SA/excel/logic/action/importExcel
public static void totalProcessAfterImportExcelBeforeAction() { ImportConfig config = (ImportConfig) ModelUtils.getRequestContext().getActionContext().getParameter("config"); String fileName = config.getFileName();//获取导入的excel的文件名 //获取excel文件 Workbook workBook = (Workbook)ModelUtils.getRequestContext().getActionContext().getParameter("excel"); File file = new File(System.getProperty("java.io.tmpdir") + "/" + fileName); if (file.exists()) file.delete(); FileOutputStream output; try { output = new FileOutputStream(file); try { workBook.write(output); output.flush(); } finally { output.close(); } } catch (Exception e) { throw ExcelException.create(e, SAMessages.EXPORT_EXCEL_ERROR); } }
本例是获取了导入的excel文件名创建的File的fileName,也可以自己定义一个名字,最终的File文件是在tomcat的temp目录下
获取了导入的excel文件名参考:http://docs.wex5.com/bex5-ui-question-list-10253/
评一波