起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: dh_n

[结贴] 导入Excel报错

[复制链接]

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2017-12-22 13:40:12 | 显示全部楼层
没动也把Excel.java文件发一下啊
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

213

主题

790

帖子

2056

积分

金牌会员

Rank: 6Rank: 6

积分
2056
QQ
 楼主| 发表于 2017-12-22 13:51:28 | 显示全部楼层
好的,已上传

Excel.rar

1.69 KB, 下载次数: 176

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2017-12-22 14:09:58 | 显示全部楼层
这个是自己修改的,平台默认的不是这样的,把try catch去掉,输出平台默认的错误信息
excel.png
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

95

主题

312

帖子

1437

积分

金牌会员

Rank: 6Rank: 6

积分
1437
QQ
发表于 2017-12-30 09:44:14 | 显示全部楼层
  1. java.lang.IllegalArgumentException: wrong number of arguments
  2.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  3.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  4.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  5.         at java.lang.reflect.Method.invoke(Method.java:497)
  6.         at com.justep.system.action.Engine.invokeAction(Native Method)
  7.         at com.justep.system.action.Engine.invokeAction(Unknown Source)
  8.         at com.justep.model.impl.UtilImplementInstance.invokeAction(Unknown Source)
  9.         at com.justep.system.action.ActionUtils.invokeAction(Unknown Source)
  10.         at com.justep.excel.ImportGenerator.generate(ImportGenerator.java:124)
  11.         at Excel.importExcel(Excel.java:90)
  12.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  13.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  14.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  15.         at java.lang.reflect.Method.invoke(Method.java:497)
  16.         at com.justep.system.action.Engine.invokeActions(Native Method)
  17.         at com.justep.system.action.Engine.invokeActions(Unknown Source)
  18.         at com.justep.business.server.BusinessServer.doAction(Unknown Source)
  19.         at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
  20.         at com.justep.business.server.BusinessServer.excute(Unknown Source)
  21.         at com.justep.business.server.BusinessServer.excute(Unknown Source)
  22.         at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
  23.         at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
  24.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
  25.         at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
  26.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
  27.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  28.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  29.         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  30.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  31.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  32.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
  33.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  34.         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
  35.         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
  36.         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
  37.         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  38.         at java.lang.Thread.run(Thread.java:745)

复制代码

回复 支持 反对

使用道具 举报

95

主题

312

帖子

1437

积分

金牌会员

Rank: 6Rank: 6

积分
1437
QQ
发表于 2017-12-30 09:45:43 | 显示全部楼层
  1. 2017-12-30 09:42:23 excute stream action, params:{"accept":"application/json","action":"importExcel","actionFlag":"__action_0__","activity":"TaskBookManagement","contentType":"json","executeContext":"","executor":"","parameters":{"config":{"@type":"xml","xml":"<config use-default="true" to="DB" excel-file="D:\\Bex5V3.6_1\\apache-tomcat\\temp\\9fa20cda-817d-4475-885e-4713b38f6942.excel.tmp" mapping-file="D:\\Bex5V3.6_1\\apache-tomcat\\temp\\9c218be3-0d77-4c12-aeb5-508961b417b6.excel.tmp"><data><concept name="ERP_TaskBookSon"><relation name="ERP_TaskBookSon" type="String"/><relation name="fActivityFName" type="String"/><relation name="fActivityLabel" type="String"/><relation name="fBOMState" type="String"/><relation name="fBackupQuantity" type="String"/><relation name="fBeginDate" type="Date"/><relation name="fBillStatus" type="String"/><relation name="fBizState" type="String"/><relation name="fBizStateName" type="String"/><relation name="fBomConfirmDate" type="Date"/><relation name="fBomConfirmPersonID" type="String"/><relation name="fBomStatus" type="String"/><relation name="fContractID" type="String"/><relation name="fCurrentActivities" type="String"/><relation name="fCurrentExecutors" type="String"/><relation name="fCustomerBatch" type="String"/><relation name="fCustomerSalesman" type="String"/><relation name="fCustomerSalesmanID" type="String"/><relation name="fCustomerToken" type="String"/><relation name="fDeliveryDate" type="Date"/><relation name="fDispatch" type="String"/><relation name="fEditionCode" type="String"/><relation name="fFinalDeliveryNum" type="Float"/><relation name="fFullName" type="String"/><relation name="fISOffer" type="String"/><relation name="fImportDate" type="Date"/><relation name="fJTechnicalAgreement" type="String"/><relation name="fMainID" type="String"/><relation name="fMaterialName" type="String"/><relation name="fMaterielCode" type="String"/><relation name="fMeaUniName" type="String"/><relation name="fMeteringUnitID" type="String"/><relation name="fNo" type="Integer"/><relation name="fNormsType" type="String"/><relation name="fOutsourcingOddNumber" type="String"/><relation name="fProduceOrderID" type="String"/><relation name="fProjectName" type="String"/><relation name="fPurpose" type="String"/><relation name="fRawMaterial" type="String"/><relation name="fRemark" type="String"/><relation name="fStandard" type="String"/><relation name="fState" type="String"/><relation name="fStateName" type="String"/><relation name="fStockName" type="String"/><relation name="fSumNum" type="Float"/><relation name="fTaskBookSonName" type="String"/><relation name="fWhetherDraw" type="String"/><relation name="fWhetherMaterial" type="String"/><relation name="fWhetherTechnology" type="String"/><relation name="version" type="Integer"/></concept></data></config>"},"createActionParam":{"action":"createERP_TaskBookSonAction","activity":"TaskBookManagement","parameters":{"defaultValues":{"fMainID":"'731D2FAE85C344F38C06140CDA5AF003'"},"table":{"@type":"table","rows":[],"userdata":{"idColumnDefine":"ERP_TaskBookSon","idColumnName":"ERP_TaskBookSon","idColumnType":"String","model":"/erp/marketSys/data","relationAlias":"fActivityFName,fActivityLabel,fBOMState,fBackupQuantity,fBeginDate,fBillStatus,fBizState,fBizStateName,fBomConfirmDate,fBomConfirmPersonID,fBomStatus,fContractID,fCurrentActivities,fCurrentExecutors,fCustomerBatch,fCustomerSalesman,fCustomerSalesmanID,fCustomerToken,fDeliveryDate,fDispatch,fEditionCode,fFinalDeliveryNum,fFullName,fISOffer,fImportDate,fJTechnicalAgreement,fMainID,fMaterialName,fMaterielCode,fMeaUniName,fMeteringUnitID,fNo,fNormsType,fOutsourcingOddNumber,fProduceOrderID,fProjectName,fPurpose,fRawMaterial,fRemark,fStandard,fState,fStateName,fStockName,fSumNum,fTaskBookSonName,fWhetherDraw,fWhetherMaterial,fWhetherTechnology,version","relationTypes":"String,String,String,String,Date,String,String,String,Date,String,String,String,String,String,String,String,String,String,Date,String,String,Float,String,String,Date,String,String,String,String,String,String,Integer,String,String,String,String,String,String,String,String,String,String,String,Float,String,String,String,String,Integer","relations":"ERP_TaskBookSon.fActivityFName,ERP_TaskBookSon.fActivityLabel,ERP_MM_BOMMaster.fBOMState,ERP_TaskBookSon.fBackupQuantity,ERP_TaskBookSon.fBeginDate,ERP_TaskBookSon.fBillStatus,ERP_TaskBookSon.fBizState,ERP_TaskBookSon.fBizStateName,ERP_TaskBookSon.fBomConfirmDate,ERP_TaskBookSon.fBomConfirmPersonID,ERP_TaskBookSon.fBomStatus,ERP_TaskBookSon.fContractID,ERP_TaskBookSon.fCurrentActivities,ERP_TaskBookSon.fCurrentExecutors,ERP_TaskBookSon.fCustomerBatch,ERP_CustomerContacts.fName,ERP_TaskBookSon.fCustomerSalesmanID,ERP_TaskBookSon.fCustomerToken,ERP_TaskBookSon.fDeliveryDate,ERP_TaskBookSon.fDispatch,ERP_TaskBookSon.fEditionCode,ERP_TaskBookSon.fFinalDeliveryNum,ERP_StockArchives.fFullName,ERP_TaskBookSon.fISOffer,ERP_TaskBookSon.fImportDate,ERP_TaskBookSon.fJTechnicalAgreement,ERP_TaskBookSon.fMainID,ERP_TaskBookSon.fMaterialName,ERP_TaskBookSon.fMaterielCode,ERP_MeasurementUnit.fName,ERP_TaskBookSon.fMeteringUnitID,ERP_TaskBookSon.fNo,ERP_StockArchives.fNormsType,ERP_TaskBookSon.fOutsourcingOddNumber,ERP_TaskBookSon.fProduceOrderID,ERP_ProjectArchives.fProjectName,ERP_TaskBookSon.fPurpose,ERP_TaskBookSon.fRawMaterial,ERP_TaskBookSon.fRemark,ERP_TaskBookSon.fStandard,ERP_TaskBookSon.fState,ERP_TaskBookSon.fStateName,ERP_StockArchives.fStockName,ERP_TaskBookSon.fSumNum,ERP_TaskBookSon.fTaskBookSonName,ERP_TaskBookSon.fWhetherDraw,ERP_TaskBookSon.fWhetherMaterial,ERP_TaskBookSon.fWhetherTechnology,ERP_TaskBookSon.version","updateMode":"whereVersion"}}},"process":"/erp/marketSys/process/ProArchives/proArchivesProcess"},"saveActionParam":{"action":"saveERP_TaskBookSonAction","activity":"TaskBookManagement","parameters":{"table":{"@type":"table","rows":[],"userdata":{"idColumnDefine":"ERP_TaskBookSon","idColumnName":"ERP_TaskBookSon","idColumnType":"String","model":"/erp/marketSys/data","relationAlias":"fActivityFName,fActivityLabel,fBOMState,fBackupQuantity,fBeginDate,fBillStatus,fBizState,fBizStateName,fBomConfirmDate,fBomConfirmPersonID,fBomStatus,fContractID,fCurrentActivities,fCurrentExecutors,fCustomerBatch,fCustomerSalesman,fCustomerSalesmanID,fCustomerToken,fDeliveryDate,fDispatch,fEditionCode,fFinalDeliveryNum,fFullName,fISOffer,fImportDate,fJTechnicalAgreement,fMainID,fMaterialName,fMaterielCode,fMeaUniName,fMeteringUnitID,fNo,fNormsType,fOutsourcingOddNumber,fProduceOrderID,fProjectName,fPurpose,fRawMaterial,fRemark,fStandard,fState,fStateName,fStockName,fSumNum,fTaskBookSonName,fWhetherDraw,fWhetherMaterial,fWhetherTechnology,version","relationTypes":"String,String,String,String,Date,String,String,String,Date,String,String,String,String,String,String,String,String,String,Date,String,String,Float,String,String,Date,String,String,String,String,String,String,Integer,String,String,String,String,String,String,String,String,String,String,String,Float,String,String,String,String,Integer","relations":"ERP_TaskBookSon.fActivityFName,ERP_TaskBookSon.fActivityLabel,ERP_MM_BOMMaster.fBOMState,ERP_TaskBookSon.fBackupQuantity,ERP_TaskBookSon.fBeginDate,ERP_TaskBookSon.fBillStatus,ERP_TaskBookSon.fBizState,ERP_TaskBookSon.fBizStateName,ERP_TaskBookSon.fBomConfirmDate,ERP_TaskBookSon.fBomConfirmPersonID,ERP_TaskBookSon.fBomStatus,ERP_TaskBookSon.fContractID,ERP_TaskBookSon.fCurrentActivities,ERP_TaskBookSon.fCurrentExecutors,ERP_TaskBookSon.fCustomerBatch,ERP_CustomerContacts.fName,ERP_TaskBookSon.fCustomerSalesmanID,ERP_TaskBookSon.fCustomerToken,ERP_TaskBookSon.fDeliveryDate,ERP_TaskBookSon.fDispatch,ERP_TaskBookSon.fEditionCode,ERP_TaskBookSon.fFinalDeliveryNum,ERP_StockArchives.fFullName,ERP_TaskBookSon.fISOffer,ERP_TaskBookSon.fImportDate,ERP_TaskBookSon.fJTechnicalAgreement,ERP_TaskBookSon.fMainID,ERP_TaskBookSon.fMaterialName,ERP_TaskBookSon.fMaterielCode,ERP_MeasurementUnit.fName,ERP_TaskBookSon.fMeteringUnitID,ERP_TaskBookSon.fNo,ERP_StockArchives.fNormsType,ERP_TaskBookSon.fOutsourcingOddNumber,ERP_TaskBookSon.fProduceOrderID,ERP_ProjectArchives.fProjectName,ERP_TaskBookSon.fPurpose,ERP_TaskBookSon.fRawMaterial,ERP_TaskBookSon.fRemark,ERP_TaskBookSon.fStandard,ERP_TaskBookSon.fState,ERP_TaskBookSon.fStateName,ERP_StockArchives.fStockName,ERP_TaskBookSon.fSumNum,ERP_TaskBookSon.fTaskBookSonName,ERP_TaskBookSon.fWhetherDraw,ERP_TaskBookSon.fWhetherMaterial,ERP_TaskBookSon.fWhetherTechnology,ERP_TaskBookSon.version","sys.rowid":"ERP_TaskBookSon","updateMode":"whereVersion"}}},"process":"/erp/marketSys/process/ProArchives/proArchivesProcess"}},"process":"/erp/marketSys/process/ProArchives/proArchivesProcess"}
复制代码

回复 支持 反对

使用道具 举报

95

主题

312

帖子

1437

积分

金牌会员

Rank: 6Rank: 6

积分
1437
QQ
发表于 2017-12-30 09:46:45 | 显示全部楼层
  1. java.lang.reflect.InvocationTargetException
  2. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  3. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  4. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  5. at java.lang.reflect.Method.invoke(Method.java:497)
  6. at com.justep.system.action.Engine.invokeActions(Native Method)
  7. at com.justep.system.action.Engine.invokeActions(Unknown Source)
  8. at com.justep.business.server.BusinessServer.doAction(Unknown Source)
  9. at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
  10. at com.justep.business.server.BusinessServer.excute(Unknown Source)
  11. at com.justep.business.server.BusinessServer.excute(Unknown Source)
  12. at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
  13. at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
  14. at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
  15. at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
  16. at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
  17. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  18. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  19. at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  20. at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  21. at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  22. at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
  23. at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  24. at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
  25. at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
  26. at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
  27. at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  28. at java.lang.Thread.run(Thread.java:745)
  29. Caused by: java.lang.RuntimeException: 导入excel失败!
  30. at Excel.importExcel(Excel.java:93)
  31. ... 27 more
复制代码
加上上2个楼层,去掉try catch后的完整错误信息
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-1-2 09:23:55 | 显示全部楼层
把去掉try catch的java文件再发一下,定位看看报错的行具体执行的什么
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

213

主题

790

帖子

2056

积分

金牌会员

Rank: 6Rank: 6

积分
2056
QQ
 楼主| 发表于 2018-1-3 17:03:59 | 显示全部楼层
  1. java.lang.reflect.InvocationTargetException
  2.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  3.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  4.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  5.         at java.lang.reflect.Method.invoke(Method.java:497)
  6.         at com.justep.system.action.Engine.invokeActions(Native Method)
  7.         at com.justep.system.action.Engine.invokeActions(Unknown Source)
  8.         at com.justep.business.server.BusinessServer.doAction(Unknown Source)
  9.         at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
  10.         at com.justep.business.server.BusinessServer.excute(Unknown Source)
  11.         at com.justep.business.server.BusinessServer.excute(Unknown Source)
  12.         at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
  13.         at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
  14.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
  15.         at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
  16.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
  17.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  18.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  19.         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  20.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  21.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  22.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
  23.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  24.         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
  25.         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
  26.         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
  27.         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  28.         at java.lang.Thread.run(Thread.java:745)
  29. Caused by: java.lang.IllegalArgumentException: wrong number of arguments
  30.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  31.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  32.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  33.         at java.lang.reflect.Method.invoke(Method.java:497)
  34.         at com.justep.system.action.Engine.invokeAction(Native Method)
  35.         at com.justep.system.action.Engine.invokeAction(Unknown Source)
  36.         at com.justep.model.impl.UtilImplementInstance.invokeAction(Unknown Source)
  37.         at com.justep.system.action.ActionUtils.invokeAction(Unknown Source)
  38.         at com.justep.excel.ImportGenerator.generate(ImportGenerator.java:124)
  39.         at Excel.importExcel(Excel.java:90)
  40.         ... 27 more
复制代码

提示参数不对,我重启Tomcat就好了,看不出来其他问题。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-1-3 17:15:29 | 显示全部楼层
把Excel.java发一下
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

213

主题

790

帖子

2056

积分

金牌会员

Rank: 6Rank: 6

积分
2056
QQ
 楼主| 发表于 2018-1-4 08:51:20 | 显示全部楼层
  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileOutputStream;
  5. import java.io.InputStream;
  6. import java.util.Date;
  7. import java.util.HashMap;
  8. import java.util.Map;

  9. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  10. import org.dom4j.*;

  11. import com.justep.excel.Const;
  12. import com.justep.excel.ExcelException;
  13. import com.justep.excel.ExportGenerator;
  14. import com.justep.excel.ImportGenerator;
  15. import com.justep.message.SAMessages;
  16. import com.justep.system.data.*;

  17. public class Excel {
  18.         private static long DeleteExcelTempFileTime = -1;
  19.         private static long Interval = 7;
  20.         private static String getTempDir() {
  21.                 return System.getProperty("java.io.tmpdir");
  22.         }

  23.         //删除几天前的excel文件
  24.         private static void DeleteExcelTempFile(){
  25.                 long t = Interval*24*60*60*1000;
  26.                 long ct = System.currentTimeMillis();
  27.                 Date d = new Date();
  28.                 if(ct-DeleteExcelTempFileTime>=t){
  29.                         DeleteExcelTempFileTime = ct;
  30.                         File tempDir = new File(getTempDir());
  31.                         for(File f:tempDir.listFiles()){
  32.                                 if(f.isFile() && f.getAbsolutePath().endsWith(".excel.tmp") && d.getTime()-t>=f.lastModified())
  33.                                         try {
  34.                                                 f.delete();//删除失败,忽略异常
  35.                                         } catch (Exception e) {}
  36.                         }
  37.                 }
  38.         }
  39.        
  40.         public static Object downloadExportExcel(String fileName) {
  41.                 //删除目录下的临时文件
  42.                 DeleteExcelTempFile();
  43.                 FileInputStream fis = null;
  44.                 File tempDir = new File(getTempDir());
  45.                 File file = new File(tempDir.getAbsolutePath()+File.separator+fileName);
  46.                 if (file.getAbsolutePath().startsWith(tempDir.getAbsolutePath())) {
  47.                         try {
  48.                                 fis = new FileInputStream(file);
  49.                         } catch (FileNotFoundException e) {
  50.                                 throw ExcelException.create(e, SAMessages.EXPORT_EXCEL_FILE_NOT_FOUND);
  51.                                 //new RuntimeException("获取文件失败!", e);
  52.                         }
  53.                 } else
  54.                         throw ExcelException.create(SAMessages.EXPORT_EXCEL_FILE_READ_ERROR);
  55.                         //new RuntimeException("获取文件失败,超出获取文件权限范围!");
  56.                 return fis;
  57.         }

  58.         @SuppressWarnings("unchecked")
  59.         private static Table getDBData(Map<String, Object> queryActionParam) {
  60.                 if (com.justep.util.Utils.isNull(queryActionParam))
  61.                         return null;
  62.                 return (Table) com.justep.system.action.ActionUtils.invokeAction(
  63.                                 (String)queryActionParam.get("process"), (String)queryActionParam.get("activity"),
  64.                                 (String)queryActionParam.get("action"), (String)queryActionParam.get("executor"),
  65.                                 (Map<String, Object>)queryActionParam.get("parameters"));
  66.         }

  67.         public static String exportExcel(String from, Document config, Table data,
  68.                         Map<String, Object> queryActionParam) {
  69.                 if (Const.KIND_DB.equalsIgnoreCase(from)) {
  70.                         data = getDBData(queryActionParam);
  71.                 }

  72.                 ExportGenerator excel = new ExportGenerator(
  73.                                 config.getRootElement(), data);
  74.                 HSSFWorkbook book;
  75.                 book = excel.generate();
  76.                 String path = createFile(book);
  77.                 return path;
  78.         }  

  79.         public static Object importExcel(Document config, Map<String, Object> createActionParam, Map<String, Object> saveActionParam){
  80. //                try {
  81. //                        System.out.print("测试"+createActionParam);
  82.                         return new ImportGenerator().generate(config, createActionParam, saveActionParam);
  83. //                }catch(Exception e){
  84. //                        e.printStackTrace();
  85. //                        throw new RuntimeException("导入excel失败!");
  86. //                }
  87.         }

  88.         public static Map<String, String> uploadImportExcel(InputStream excel,InputStream mapping,String test){
  89.                 //删除目录下的临时文件
  90.                 System.out.println("cs"+test);
  91.                 DeleteExcelTempFile();
  92.                 HashMap<String, String> result = new HashMap<String, String>();
  93.                 result.put("excel", createFile(excel));
  94.                 result.put("mapping", createFile(mapping));
  95.                 return result;
  96.         }
  97.        
  98.         private static String createFile(HSSFWorkbook book) {
  99.                 String name = java.util.UUID.randomUUID().toString();
  100.                 File file = new File(getTempDir() + "/" + name + ".excel.tmp");
  101.                 if (file.exists())
  102.                         file.delete();
  103.                 FileOutputStream output;
  104.                 try {
  105.                         output = new FileOutputStream(file);
  106.                         try {
  107.                                 book.write(output);
  108.                                 output.flush();
  109.                         } finally {
  110.                                 output.close();
  111.                         }
  112.                 } catch (Exception e) {
  113.                         throw ExcelException.create(e, SAMessages.EXPORT_EXCEL_ERROR);
  114.                         //new RuntimeException("导出excel失败!", e);
  115.                 }
  116.                 return file.getName();
  117.         }

  118.         private static String createFile(InputStream in) {
  119.                 String name = java.util.UUID.randomUUID().toString();
  120.                 File file = new File(getTempDir() + "/" + name + ".excel.tmp");
  121.                 if (file.exists())
  122.                         file.delete();
  123.                 FileOutputStream output;
  124.                 try {
  125.                         output = new FileOutputStream(file);
  126.                         try {
  127.                                 byte[] bs = new byte[1024*4];
  128.                                 int i = -1;
  129.                                 while ((i = in.read(bs)) != -1) {
  130.                                         output.write(bs, 0, i);
  131.                                 }
  132.                                 output.flush();
  133.                         } finally {
  134.                                 output.close();
  135.                         }
  136.                 } catch (Exception e) {
  137.                         throw ExcelException.create(e, SAMessages.EXPORT_EXCEL_ERROR);
  138.                         //throw new RuntimeException("导出excel失败!", e);
  139.                 }
  140.                 return file.getAbsolutePath();
  141.         }
  142. }
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-4 12:23 , Processed in 0.070354 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表