加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex\java导入组件,通用版

发布时间:2020-12-15 04:44:00 所属栏目:百科 来源:网络整理
导读:?自己做的一个通用的导入组件 引用页面代码 importExcel:ImportExcel?id= "importExcel" ?? ?????????????????????????????????width= "700" ? ?????????????????????????????????height= "400" ? ?????????????????????????????????fullModelName= "platfor

?自己做的一个通用的导入组件

引用页面代码

 
 
  1. <importExcel:ImportExcel?id="importExcel"??
  2. ?????????????????????????????????width="700"?
  3. ?????????????????????????????????height="400"?
  4. ?????????????????????????????????fullModelName="platform.esb.ticket.model.PosTicketAssociation"??
  5. ?????????????????????????????????daoName="posTicketAssociationDao"?
  6. ?????????????????????????????????templateName="posTicketAssociation.xls"?
  7. ?????????????????????????????????saveDatasSucess="{dataGrid.dataProvider=event.data?as?ArrayCollection;?
  8. ???????????????????????????????????????????????????dataProvider=event.data?as?ArrayCollection}"/>?

flex组件代码

?

 
 
  1. <?xml?version="1.0"?encoding="utf-8"?>?
  2. <base:TitleWindow?xmlns:mx="library://ns.adobe.com/flex/mx"?
  3. ???????????????xmlns:s="library://ns.adobe.com/flex/spark"??
  4. ???????????????xmlns:fx="http://ns.adobe.com/mxml/2009"?
  5. ???????????????xmlns:base="library://apps.czw.com/flex/base"?
  6. ???????????????width="100%"?height="100%"?
  7. ???????????????facade="{FACADE}"?mediator="{MEDIATOR}"?moduleID="{NextID}"?
  8. ???????????????creationComplete="init()"?
  9. ???????????????title="导入的EXCEL数据列表"?
  10. ???????????????close="closeHandler(event)">?
  11. ????<fx:Declarations>?
  12. ????????<base:FileUpload?id="uploadFile"?
  13. ?????????????????????????fileType="Excel"?
  14. ?????????????????????????complete="browsComplete()"/>?
  15. ????</fx:Declarations>?
  16. ????<fx:Metadata>?
  17. ????????[Event?(name="saveDatasSucess",?type="com.czw.apps.common.CzwEvent")]?
  18. ????</fx:Metadata>?
  19. ????<fx:Script>?
  20. ????????<![CDATA[?
  21. ????????????import?com.czw.apps.common.CzwEvent;?
  22. ????????????import?com.czw.apps.model.importExcel.ImportExcelEnum;?
  23. ????????????import?com.czw.apps.model.importExcel.vo.ImportExcelVO;?
  24. ????????????import?com.czw.apps.ui.core.datagrid.controls.dataGridClasses.MDataGridColumn;?
  25. ????????????import?com.czw.apps.ui.core.datagrid.controls.dataGridClasses.filterEditors.WildcardFilterEditor;?
  26. ?????????????
  27. ????????????import?mx.collections.ArrayCollection;?
  28. ????????????import?mx.collections.ICollectionView;?
  29. ????????????import?mx.controls.Alert;?
  30. ????????????import?mx.controls.LinkButton;?
  31. ????????????import?mx.events.CloseEvent;?
  32. ????????????import?mx.managers.PopUpManager;?
  33. ?????????????
  34. ????????????import?spark.components.Button;?
  35. ????????????import?spark.components.HGroup;?
  36. ?????????????
  37. ????????????private?static?const?FACADE:Class=ImportExcelFacade;?
  38. ????????????private?static?const?MEDIATOR:Class=ImportExcelMediator;?
  39. ????????????public?static?const?NAME:String=getClassName(ImportExcel);?
  40. ?????????????
  41. ????????????private?static?var?serial:Number=0;?
  42. ????????????[Bindable]?
  43. ????????????public?var?excelDatas:ArrayCollection=new?ArrayCollection();?
  44. ?????????????
  45. ????????????private?var?_fullVoName:String;?
  46. ?????????????
  47. ????????????private?var?_fullModelName:String;?
  48. ?????????????
  49. ????????????private?var?_daoName:String;?
  50. ?????????????
  51. ????????????private?var?_templateName:String;?
  52. ?????????????
  53. ????????????public?function?set?fullModelName(_fullModelName:String):void?
  54. ????????????{?
  55. ????????????????this._fullModelName=_fullModelName;?
  56. ????????????}?
  57. ?????????????
  58. ????????????public?function?set?fullVoName(_fullVoName:String):void?
  59. ????????????{?
  60. ????????????????this._fullVoName=_fullVoName;?
  61. ????????????}?
  62. ?????????????
  63. ????????????public?function?set?daoName(_daoName:String):void?
  64. ????????????{?
  65. ????????????????this._daoName=_daoName;?
  66. ????????????}?
  67. ?????????????
  68. ????????????public?function?set?templateName(_templateName:String):void?
  69. ????????????{?
  70. ????????????????this._templateName=_templateName;?
  71. ????????????}?
  72. ?????????????
  73. ????????????private?static?function?get?NextID():String?
  74. ????????????{?
  75. ????????????????return?NAME?+?'+'?+?serial++;?
  76. ????????????}?
  77. ?????????????
  78. ????????????override?protected?function?init():void?
  79. ????????????{?
  80. ????????????????createChildren();?
  81. ????????????}?
  82. ?????????????
  83. ????????????public?function?addColumnName(headerText:Array,dataField:Array):void?
  84. ????????????{?
  85. ????????????????if(null==headerText||null==dataField||headerText.length!=dataField.length)?
  86. ????????????????{?
  87. ????????????????????Alert.show("导入失败","温馨提示");?
  88. ????????????????????return?;?
  89. ????????????????}????
  90. ????????????????var?columns:Array=new?Array();?
  91. ????????????????var?col:MDataGridColumn=null;?
  92. ????????????????for?(var?i:int=0;i<headerText.length;i++)?
  93. ????????????????{?
  94. ????????????????????col=new?MDataGridColumn();?
  95. ????????????????????col.filterEditor=new?ClassFactory(com.czw.apps.ui.core.datagrid.controls.dataGridClasses.filterEditors.WildcardFilterEditor);?
  96. ????????????????????col.dataField=dataField[i];?
  97. ????????????????????col.headerText=headerText[i];?
  98. ????????????????????columns.push(col);?
  99. ????????????????}?
  100. ????????????????ImpExcelGridData.columns=columns;?
  101. ????????????}?
  102. ?????????????
  103. ????????????protected?function?closeHandler(event:CloseEvent):void?
  104. ????????????{?
  105. ????????????????PopUpManager.removePopUp(this);?
  106. ????????????}?
  107. ?????????????
  108. ????????????override?protected?function?createChildren():void{?
  109. ??????????????super.createChildren();?
  110. ??????????????var?importBtn:LinkButton=new?LinkButton();?
  111. ??????????????var?downloadTemplatBtn:LinkButton=new?LinkButton();?
  112. ??????????????var?hgroup:HGroup=new?HGroup();?
  113. ??????????????importBtn.addEventListener(MouseEvent.CLICK,importBtnClickHandler);?
  114. ??????????????importBtn.setStyle("fontWeight","bold");?
  115. ??????????????importBtn.label="[导入模板]";?
  116. ??????????????downloadTemplatBtn.setStyle("fontWeight","bold");?
  117. ??????????????downloadTemplatBtn.label="[模板下载]";?
  118. ??????????????downloadTemplatBtn.addEventListener(MouseEvent.CLICK,downloadTemplatBtnClickHandler);?
  119. ??????????????hgroup.top=-25;?
  120. ??????????????hgroup.right=40;?
  121. ??????????????hgroup.addElement(importBtn);?
  122. ??????????????hgroup.addElement(downloadTemplatBtn);?
  123. ??????????????contentGroup.addElement(hgroup);?
  124. ????????????}?
  125. ?????????????
  126. ?????????????
  127. ????????????private?function?importBtnClickHandler(event:Event):void?
  128. ????????????{?
  129. ????????????????uploadFile.browse();?
  130. ????????????}?
  131. ?????????????
  132. ????????????private?function?browsComplete():void?
  133. ????????????{?
  134. ????????????????var?excelData:ImportExcelVO=new?ImportExcelVO;?
  135. ????????????????excelData.content=uploadFile.data;?
  136. ????????????????excelData.fullModelName=_fullModelName;?
  137. ????????????????this.sendEvent(ImportExcelEnum.IMPORT_EXCEL_DATA,excelData);?
  138. ????????????}?
  139. ?????????????
  140. ????????????private?function?downloadTemplatBtnClickHandler(event:Event):void?
  141. ????????????{?
  142. ????????????????navigateToURL(new?URLRequest('/api-management/templateDownload.do?fileName='+_templateName),?'_blank');?
  143. ????????????}?
  144. ?????????????
  145. ????????????protected?function?del_clickHandler(event:MouseEvent):void?
  146. ????????????{?
  147. ????????????????excelDatas.removeItemAt(excelDatas.getItemIndex(ImpExcelGridData.selectedItem));?
  148. ????????????????ImpExcelGridData.dataProvider=excelDatas;?
  149. ????????????}?
  150. ?????????????
  151. ????????????protected?function?saveDatas_clickHandler(event:MouseEvent):void?
  152. ????????????{?
  153. ????????????????var?arr:Array=new?Array();?
  154. ????????????????arr[0]=_daoName;?
  155. ????????????????arr[1]=ImpExcelGridData.dataProvider;?
  156. ????????????????this.sendEvent(ImportExcelEnum.SAVE_EXCEL_DATA,arr);?
  157. ????????????}?
  158. ?????????????
  159. ????????????public?function?saveDatasSucess(arr:ArrayCollection):void?
  160. ????????????{?
  161. ????????????????this.closeHandler(null);?
  162. ????????????????this.dispatchEvent(new?CzwEvent("saveDatasSucess",arr));?
  163. ????????????}?
  164. ?????????????
  165. ????????]]>?
  166. ????</fx:Script>?
  167. ????<base:MDataGrid?id="ImpExcelGridData"?
  168. ????????????????????dataProvider="{excelDatas}"?
  169. ????????????????????width="100%"?
  170. ????????????????????height="100%"?
  171. ????????????????????editable="true"?
  172. ????????????????????horizontalScrollPolicy="off"?
  173. ????????????????????verticalScrollPolicy="on"?
  174. ????????????????????>?
  175. ????</base:MDataGrid>?
  176. ?????
  177. ????<base:controlBarContent>?
  178. ????????<s:Button?label="保存"?click="saveDatas_clickHandler(event)"?/>?
  179. ????????<s:Button?label="删除"?enabled="{ImpExcelGridData.selectedIndex!=-1}"?click="del_clickHandler(event)"?/>?
  180. ????????<base:SearchBox?target="{ImpExcelGridData}"/>?
  181. ????????<s:Label?text="{ICollectionView(ImpExcelGridData.dataProvider).length}?/?{ImpExcelGridData.originalCollection.length}"?
  182. ?????????????????verticalAlign="middle"/>?
  183. ????</base:controlBarContent>?
  184. </base:TitleWindow>?

java:

?

 
 
  1. package?com.zjht.sys.service.impl;?
  2. ?
  3. import?java.io.ByteArrayInputStream;?
  4. import?java.lang.reflect.Method;?
  5. import?java.math.BigDecimal;?
  6. import?java.math.BigInteger;?
  7. import?java.net.MalformedURLException;?
  8. import?java.net.URISyntaxException;?
  9. import?java.text.ParseException;?
  10. import?java.text.SimpleDateFormat;?
  11. import?java.util.ArrayList;?
  12. import?java.util.HashMap;?
  13. import?java.util.List;?
  14. import?java.util.Map;?
  15. ?
  16. import?org.apache.poi.hssf.usermodel.HSSFCell;?
  17. import?org.apache.poi.hssf.usermodel.HSSFRow;?
  18. import?org.apache.poi.hssf.usermodel.HSSFSheet;?
  19. import?org.apache.poi.hssf.usermodel.HSSFWorkbook;?
  20. import?org.apache.poi.poifs.filesystem.POIFSFileSystem;?
  21. import?org.springframework.beans.BeansException;?
  22. import?org.springframework.context.ApplicationContext;?
  23. import?org.springframework.context.ApplicationContextAware;?
  24. import?org.springframework.stereotype.Service;?
  25. ?
  26. import?com.zjht.sys.model.ImportExcel;?
  27. import?com.zjht.sys.service.ImportExcelService;?
  28. ?
  29. import?framework.generic.dao.GenericDao;?
  30. import?framework.generic.dao.Model;?
  31. ?
  32. @Service("importExcelService")?
  33. public?class?ImportExcelServiceImpl?implements?ImportExcelService,?ApplicationContextAware?{?
  34. ?
  35. ????private?ApplicationContext?context;?
  36. ?
  37. ????@Override?
  38. ????public?void?setApplicationContext(ApplicationContext?context)?throws?BeansException?{?
  39. ????????this.context?=?context;?
  40. ????}?
  41. ?
  42. ????@SuppressWarnings("deprecation")?
  43. ????@Override?
  44. ????public?Map<String,??>?analyticExcel(ImportExcel?importExcel)?{?
  45. ????????List<Object>?list?=?new?ArrayList<Object>();?
  46. ????????String?dataField[]?=?null;?
  47. ????????String?headerText[]?=?null;?
  48. ????????try?{?
  49. ????????????Class<?>?ins?=?Class.forName(importExcel.getFullModelName());?
  50. ????????????POIFSFileSystem?fs?=?new?POIFSFileSystem(new?ByteArrayInputStream(importExcel.getContent()));?
  51. ????????????HSSFWorkbook?workBook?=?new?HSSFWorkbook(fs);?
  52. ????????????HSSFSheet?sheet?=?workBook.getSheetAt(0);?
  53. ????????????int?rows?=?sheet.getPhysicalNumberOfRows();?//?获得行数?
  54. ????????????if?(rows?>?0)?{?
  55. ????????????????sheet.getMargin(HSSFSheet.TopMargin);?
  56. ????????????????for?(int?j?=?0;?j?<?rows;?j++)?{?//?行循环?
  57. ????????????????????HSSFRow?row?=?sheet.getRow(j);?
  58. ????????????????????Object?obj?=?ins.newInstance();?
  59. ????????????????????if?(row?!=?null)?{?
  60. ????????????????????????int?cells?=?row.getLastCellNum();//?获得列数?
  61. ????????????????????????if?(j?==?0)?{?
  62. ????????????????????????????dataField?=?new?String[cells];?
  63. ????????????????????????????headerText?=?new?String[cells];?
  64. ????????????????????????}?
  65. ????????????????????????for?(short?k?=?0;?k?<?cells;?k++)?{?//?列循环?
  66. ????????????????????????????HSSFCell?cell?=?row.getCell(k);?
  67. ????????????????????????????String?value?=?"";?
  68. ????????????????????????????if?(cell?!=?null)?{?
  69. ????????????????????????????????switch?(cell.getCellType())?{?
  70. ????????????????????????????????case?HSSFCell.CELL_TYPE_NUMERIC:?//?数值型?
  71. ????????????????????????????????????value?=?String.valueOf((int)?cell.getNumericCellValue());?
  72. ????????????????????????????????????break;?
  73. ????????????????????????????????/*?此行表示单元格的内容为string类型?*/?
  74. ????????????????????????????????case?HSSFCell.CELL_TYPE_STRING:?//?字符串型?
  75. ????????????????????????????????????value?=?cell.getRichStringCellValue().toString();?
  76. ????????????????????????????????????break;?
  77. ????????????????????????????????case?HSSFCell.CELL_TYPE_FORMULA://?公式型?
  78. ????????????????????????????????????//?读公式计算值?
  79. ????????????????????????????????????value?=?String.valueOf(cell.getNumericCellValue());?
  80. ????????????????????????????????????if?(value.equals("NaN"))?{//?如果获取的数据值为非法值,则转换为获取字符串?
  81. ????????????????????????????????????????value?=?cell.getRichStringCellValue().toString();?
  82. ????????????????????????????????????}?
  83. ????????????????????????????????????break;?
  84. ????????????????????????????????case?HSSFCell.CELL_TYPE_BOOLEAN://?布尔?
  85. ????????????????????????????????????value?=?"?"?+?cell.getBooleanCellValue();?
  86. ????????????????????????????????????break;?
  87. ????????????????????????????????case?HSSFCell.CELL_TYPE_BLANK:?//?空值?
  88. ????????????????????????????????????value?=?"";?
  89. ????????????????????????????????????break;?
  90. ????????????????????????????????case?HSSFCell.CELL_TYPE_ERROR:?//?故障?
  91. ????????????????????????????????????value?=?"";?
  92. ????????????????????????????????????break;?
  93. ????????????????????????????????default:?
  94. ????????????????????????????????????value?=?cell.getRichStringCellValue().toString();?
  95. ????????????????????????????????}?
  96. ????????????????????????????}?
  97. ????????????????????????????if?(j?==?0)?{?
  98. ????????????????????????????????dataField[k]?=?value;?
  99. ????????????????????????????}?else?if?(j?==?1)?{?
  100. ????????????????????????????????headerText[k]?=?value;?
  101. ????????????????????????????}?else?{?
  102. ????????????????????????????????String?methodName?=?"set"?+?dataField[k].replaceFirst(dataField[k].substring(0,?1),?dataField[k].substring(0,?1).toUpperCase());?
  103. ????????????????????????????????Class<?>?type?=?getParamType(ins,?methodName);?
  104. ????????????????????????????????if?(type?==?null?||?resolveValue(value,?type)?==?null)?{?
  105. ????????????????????????????????????throw?new?RuntimeException("EXCEL解析失败(请确保您的EXCEL模板格式正确,如还有问题请联系研发部)");?
  106. ????????????????????????????????}?
  107. ????????????????????????????????Method?method?=?obj.getClass().getMethod(methodName,?type);?
  108. ????????????????????????????????method.invoke(obj,?resolveValue(value,?type));?
  109. ????????????????????????????}?
  110. ????????????????????????}?
  111. ????????????????????????if?(j?>?1)?{?
  112. ????????????????????????????list.add(obj);?
  113. ????????????????????????}?
  114. ????????????????????}?
  115. ????????????????}?
  116. ????????????}?
  117. ????????}?catch?(Exception?e)?{?
  118. ????????????throw?new?RuntimeException("EXCEL解析失败(请确保您的EXCEL模板格式正确,如还有问题请联系研发部)"?+?e.getMessage());?
  119. ????????}?
  120. ????????Map<String,?Object>?map?=?new?HashMap<String,?Object>();?
  121. ????????map.put("headerText",?headerText);?
  122. ????????map.put("dataField",?dataField);?
  123. ????????map.put("list",?list);?
  124. ????????return?map;?
  125. ????}?
  126. ?
  127. ????public?static?<T>?T?resolveValue(Object?value,?Class<T>?valueClazz)?{?
  128. ????????if?(value?==?null)?
  129. ????????????return?null;?
  130. ????????Class<T>?actualClazz?=?valueClazz;?
  131. ????????SimpleDateFormat?sdf?=?new?SimpleDateFormat("yyyy-MM-dd?HH:mm:ss.SSS?Z");?
  132. ????????if?(actualClazz?==?Boolean.class)?{?
  133. ????????????return?actualClazz.cast(Boolean.valueOf(value.toString()));?
  134. ????????}?else?if?(actualClazz?==?Character.class)?{?
  135. ????????????return?actualClazz.cast(value.toString().charAt(0));?
  136. ????????}?else?if?(actualClazz?==?Integer.class)?{?
  137. ????????????return?actualClazz.cast(new?Integer(value.toString()));?
  138. ????????}?else?if?(actualClazz?==?Double.class)?{?
  139. ????????????return?actualClazz.cast(new?Double(value.toString()));?
  140. ????????}?else?if?(actualClazz?==?Float.class)?{?
  141. ????????????return?actualClazz.cast(new?Float(value.toString()));?
  142. ????????}?else?if?(actualClazz?==?Short.class)?{?
  143. ????????????return?actualClazz.cast(new?Short(value.toString()));?
  144. ????????}?else?if?(actualClazz?==?Byte.class)?{?
  145. ????????????return?actualClazz.cast(new?Byte(value.toString()));?
  146. ????????}?else?if?(actualClazz?==?Long.class)?{?
  147. ????????????return?actualClazz.cast(new?Long(value.toString()));?
  148. ????????}?else?if?(actualClazz?==?BigInteger.class)?{?
  149. ????????????return?actualClazz.cast(new?BigInteger(value.toString()));?
  150. ????????}?else?if?(actualClazz?==?BigDecimal.class)?{?
  151. ????????????return?actualClazz.cast(new?BigDecimal(value.toString()));?
  152. ????????}?else?if?(actualClazz?==?java.sql.Time.class)?{?
  153. ????????????return?actualClazz.cast(java.sql.Time.valueOf(value.toString()));?
  154. ????????}?else?if?(actualClazz?==?java.util.Date.class)?{?
  155. ????????????try?{?
  156. ????????????????return?actualClazz.cast(sdf.parse(value.toString()));?
  157. ????????????}?catch?(ParseException?e)?{?
  158. ????????????????throw?new?RuntimeException("日期解析失败"?+?e.getMessage());?
  159. ????????????}?
  160. ????????}?else?if?(actualClazz?==?java.sql.Date.class)?{?
  161. ????????????return?actualClazz.cast(java.sql.Date.valueOf(value.toString()));?
  162. ????????}?else?if?(actualClazz?==?java.sql.Timestamp.class)?{?
  163. ????????????return?actualClazz.cast(java.sql.Timestamp.valueOf(value.toString()));?
  164. ????????}?else?if?(actualClazz?==?java.net.URL.class)?{?
  165. ????????????try?{?
  166. ????????????????return?actualClazz.cast(new?java.net.URL(value.toString()));?
  167. ????????????}?catch?(MalformedURLException?e)?{?
  168. ????????????????e.printStackTrace();?
  169. ????????????????throw?new?RuntimeException("url解析失败"?+?e.getMessage());?
  170. ????????????}?
  171. ????????}?else?if?(actualClazz?==?java.net.URI.class)?{?
  172. ????????????try?{?
  173. ????????????????return?actualClazz.cast(new?java.net.URI(value.toString()));?
  174. ????????????}?catch?(URISyntaxException?e)?{?
  175. ????????????????throw?new?RuntimeException("url解析失败"?+?e.getMessage());?
  176. ????????????}?
  177. ????????}?
  178. ????????if?(actualClazz?==?value.getClass()?||?actualClazz.isAssignableFrom(value.getClass()))?{?
  179. ????????????return?actualClazz.cast(value);?
  180. ????????}?
  181. ????????return?null;?
  182. ????}?
  183. ?
  184. ????private?static?Class<?>?getParamType(Class<?>?cl,?String?methodName)?{?
  185. ????????try?{?
  186. ????????????Method[]?methods?=?cl.getDeclaredMethods();?
  187. ????????????for?(Method?m?:?methods)?{?
  188. ????????????????String?name?=?m.getName();?
  189. ????????????????if?(methodName.equals(name))?{?
  190. ????????????????????Class<?>[]?paramTypes?=?m.getParameterTypes();?
  191. ????????????????????return?paramTypes[0];?
  192. ????????????????}?
  193. ????????????}?
  194. ????????}?catch?(Exception?e)?{?
  195. ????????????e.printStackTrace();?
  196. ????????}?
  197. ????????return?null;?
  198. ????}?
  199. ?
  200. ????@SuppressWarnings({?"unchecked",?"rawtypes"?})?
  201. ????@Override?
  202. ????public?List<?>?saveExcelDatas(String?daoName,?List<?>?excelDatas)?{?
  203. ????????GenericDao?dao?=?(GenericDao)?context.getBean(daoName);?
  204. ????????for?(Object?object?:?excelDatas)?{?
  205. ????????????dao.create((Model)object);?
  206. ????????}?
  207. ????????return?dao.read();?
  208. ????}?
  209. ?
  210. }?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读