public class PRDMAN01000005 extends Action {
//给操作类型记录相应的操作日志 shaotao.zeng 2011-05-09
public static final String TXNCODE4LOG = TxncodeConst.TXN_DOC_0021;
@Override
public ActionForward safeExecute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response) throws DomainException, IOException {
try {
String folderPath = "D:/temp";
newFolder(folderPath);
String filePath = "D:/temp/temp.xls";
//必须保证tempz目录层次存在,否则会抛出文件不存在的异常
//而当只是temp.xls文件不存在时就会新建文件。
FileOutputStream os = new FileOutputStream(filePath);
PRDMAN01000005FORM form = (PRDMAN01000005FORM)actionForm;
FormFile excelfile = form.getExcel();
String name = excelfile.getFileName();
String exp = "";
if(name!=null &&!"".equals(name)){
exp = name.substring(name.indexOf("."));
if((".xls".equals(exp))){
}else{
throw new Exception("请选择【.xls】结尾的文件");
}
}else{
throw new Exception("还没选择上传的文件");
}
os.write(excelfile.getFileData());
os.flush();
os.close();
FileInputStream is =new FileInputStream(filePath);
jxl.Workbook rwb = Workbook.getWorkbook(is);
//获得所有的sheet
// Sheet[] sheets = rwb.getSheets();
//得到第一个sheet
Sheet rs = rwb.getSheet(0);
//获得所有的行,包括最开始的第一行
int rsRows = rs.getRows();
//获得所有的列
// int rsCols = rs.getColumns();
// rsCols = rsCols-4;//最后四个字段系统自动赋值
String currentOprId = UserSessionInfoUtils.getUserSessionInfo(request.getSession()).getOprId();
//默认得到的是单实例对象
TPayformDAO tPayformDAO =(TPayformDAO)ContextUtil.getBean("TPayformDAO");
for(int i=1;i<rsRows;i++){
TPayform tPayform = new TPayform();
//获得i+1行所有的单元格记录
Cell[] cells = rs.getRow(i);
int len = cells.length;
//根据excel模版里实际输入的列数来给对象赋值
//否则容易出现空指针异常
//如果只是简单的异常提示信息,可不用作这样的处理
if(len>=1){
String classcode = cells[0].getContents();
tPayform.setClasscode(classcode);
}else{
throw new Exception();
}
if(len>=2){
String computeWay = cells[1].getContents();
tPayform.setComputeway(computeWay);
}else{
throw new Exception();
}
long age = Long.parseLong(cells[2].getContents());
tPayform.setAge(BigDecimal.valueOf(age));
String sex = cells[3].getContents();
tPayform.setSex(sex);
double sing = Double.parseDouble(cells[4].getContents());
tPayform.setSing(BigDecimal.valueOf(sing));
String constype = cells[11].getContents();
tPayform.setConstype(constype);
String levels = cells[12].getContents();
tPayform.setLevels(levels);
double rate = Double.parseDouble(cells[13].getContents());
tPayform.setRate((BigDecimal.valueOf(rate)));
double begPre = Double.parseDouble(cells[14].getContents());
tPayform.setBegPre((BigDecimal.valueOf(begPre)));
double endPre = Double.parseDouble(cells[15].getContents());
tPayform.setEndPre((BigDecimal.valueOf(endPre)));
long mandeg = Long.parseLong(cells[16].getContents());
tPayform.setMandeg((BigDecimal.valueOf(mandeg)));
long days = Long.parseLong(cells[17].getContents());
tPayform.setDays((BigDecimal.valueOf(days)));
String payformfun4 = cells[21].getContents();
tPayform.setPayformfun4(payformfun4);
tPayformDAO.insert(tPayform);
}
rwb.close();
is.close();
delFile(filePath);
delFolder(folderPath);
request.setAttribute("txnSta", Rescode.SUCCESS);
request.setAttribute("message", RescodeMapping.getRescodeDesc(TXNCODE4LOG, Rescode.SUCCESS));
request.setAttribute(Constants.PAGE_BACK_URL, request.getContextPath()+actionMapping.getInputForward().getPath());
log(RescodeMapping.getRescodeDesc(TXNCODE4LOG, Rescode.SUCCESS));
return actionMapping.findForward("success");
}catch (Exception e) {
CommonFunction.passRequestParams(request);
log(RescodeMapping.getRescodeDesc(TXNCODE4LOG, Rescode.FAILURE),e);
request.setAttribute("txnSta", Rescode.FAILURE);
request.setAttribute("errMsg", RescodeMapping.getRescodeDesc(TXNCODE4LOG, Rescode.FAILURE));
request.setAttribute("error","上传出现未知异常,请联系系统管理员!");
return actionMapping.getInputForward();
}
}
private void log(String arg0) {
LOG.ADMININFO("########## PRDMAN01000005(险种费用标准):" + arg0 + " ##########");
}
public void log(String arg0 , Throwable arg1){
LOG.ADMININFO("########## PRDMAN01000005(险种费用标准):"+ arg0 +" ##########" , arg1 );
}
/*
* 生成临时目录 shaotao.zeng
* date 2011-05-30
*/
public void newFolder(String folderPath) throws Exception {
try {
String filePath = folderPath;
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File(filePath);
if (!myFilePath.exists()) {
myFilePath.mkdir();
}
}
catch (Exception e) {
e.printStackTrace();
throw new Exception("新建目录操作出错");
}
}
/*
* 删除文件 shaotao.zeng
* date 2011-05-30
*/
public void delFile(String filePathAndName) throws Exception {
try {
String filePath = filePathAndName;
filePath = filePath.toString();
java.io.File myDelFile = new java.io.File(filePath);
myDelFile.delete();
}
catch (Exception e) {
e.printStackTrace();
throw new Exception("删除文件操作出错");
}
}
/*
* 删除临时目录 shaotao.zeng
* date 2011-05-30
*/
public void delFolder(String folderPath) throws Exception {
try {
//删除目录时需要删除该目录下的所有内容
delFile(folderPath); //删除文件
String filePath = folderPath;
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File(filePath);
myFilePath.delete(); //删除空文件夹
}
catch (Exception e) {
e.printStackTrace();
throw new Exception("删除文件夹操作出错");
}
}
}
- 浏览: 788039 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (981)
- javascript (102)
- java (212)
- JQuery (81)
- 幽默笑话 (2)
- 只言片语 (6)
- 开发小记 (283)
- Hibernate (17)
- DWR (4)
- SQL (10)
- spring-ibatis (8)
- linux (24)
- Struts1 (8)
- Struts2 (16)
- spring (42)
- Mybatis (16)
- css (18)
- servlet (8)
- jdbc (4)
- jsp (1)
- spring-jdbc (2)
- FreeMarker (2)
- MySQL (24)
- JQuery-Grid (7)
- jstl (5)
- 正则表达式 (1)
- 面试集锦 (86)
- unix (18)
- 开发工具 (23)
- ajax (5)
- webservice (4)
- log4j (3)
- oracle (15)
- extjs (14)
- 其他 (9)
- 优秀技术参考地址 (1)
- 性能 (3)
- 数据库 (25)
- 算法 (15)
- 设计模式 (10)
- Python (3)
- AIX (5)
- weblogic (1)
- shell (14)
- quartz (5)
- 图形文件FusionCharts (1)
- Websphere (4)
- 转载 (5)
- hadoop (1)
- highchart (24)
- perl (22)
- DB2 (7)
- JBoss (1)
- JQuery Easy UI (9)
- SpringMVC (5)
- ant (5)
- echart (9)
- log4J配置 (3)
- 多线程 (10)
- 系统架构 (7)
- nginx (3)
- loadrunner1 (1)
- 分布式 (1)
- Dubbo (1)
- Redis (2)
- JMS (4)
- 自动化测试 (3)
- Spring循环依赖的三种方式 (1)
- spring-boot (2)
- 高级测试 (9)
- github (2)
- sonar (1)
- docker (6)
- web前端性能优化 (1)
- spring-aop (6)
- rabbit (1)
- ELK (1)
- maven (1)
- minio (1)
最新评论
-
zengshaotao:
jstl1point0 写道很好啊,如果有带Session会话 ...
Nginx+Tomcat搭建高性能负载均衡集群 -
jstl1point0:
很好啊,如果有带Session会话的怎么搞呢
Nginx+Tomcat搭建高性能负载均衡集群
发表评论
-
选股神器
2022-08-20 15:07 205最近闲来无事,突发奇想,将自己的选股思路自动化,计算机化。。 ... -
rpm安装jdk,设置环境变量
2019-05-12 22:49 6331、将jdk的rpm包拷贝到 ... -
java安全编码
2019-01-18 22:31 481软件安全问题,一般 ... -
生产者消费者
2018-07-01 21:33 429package function.thread; i ... -
打印mybatis的执行语句到控制台和文件
2017-12-13 15:11 814log4j.rootLogger=INFO,CONSOLE, ... -
java中类的加载顺序介绍(ClassLoader)
2017-11-14 11:41 8171、ClassNotFoundExcetpion 我们在 ... -
守护线程
2017-11-13 16:40 434对于线程,有个守护的线程的概念。如何理解呢?比如A线程里,n ... -
类加载机制及反射
2017-09-24 08:45 586一、Java类加载机制 ... -
java+selenium2 自动化测试框架
2017-09-15 09:36 1018package web.selenium2; ... -
JMS实例
2017-08-21 15:40 4781. JMS架构 Java 消息服务(Java M ... -
linux设置java环境
2017-08-07 16:47 454linux配置java环境变量(详细) 一. 解压安装jdk ... -
分布式
2017-07-19 12:12 450转载请注明出处:http://blog.csdn.net/l ... -
tomcat+nginx+redis
2017-07-18 16:46 477应用系统的基本架构: -
java调用远程机器的shell脚本
2017-07-14 12:19 1591此程序的目的是执行远程机器上的Shell脚本。 【环境参数 ... -
生产者消费者进阶(带有condition)
2017-05-09 17:56 585package function.thread; ... -
多线程之 CountDownLatch
2017-05-01 13:01 521package function.thread; ... -
判断服务器类型
2017-04-12 10:52 488开发时一般用tomcat,然后在测试环境发布时使用的是web ... -
IE的不同文本浏览模式页面显示
2017-04-11 14:34 541现象描述:最近在遇到的问题就是在在Chrome,火狐页面都正 ... -
java中Filter、Servlet、Listener的学习
2017-03-29 21:52 4551、Filter的功能filter功能,它使用户可以改变一个 ... -
高并发,线程池
2017-03-29 21:52 10971.高并发的内容 Zookee ...
相关推荐
在ASP(Active Server Pages)开发中,上传Excel文件并读取其内容然后存入数据库是一项常见的任务,尤其在处理大量结构化数据时。这个过程通常包括以下步骤: 1. **文件上传**:ASP中可以使用`<input type="file">`...
在本案例中,我们关注的是一个自定义的上传Excel文件的弹框组件。这个组件允许用户选择并上传Excel文件,以便进行数据导入或其他需要处理Excel数据的操作。 在 Vue.js 中,组件是构建应用程序的基本单元,它们可以...
总结起来,Java实现“上传Excel并解析入库”涉及的关键技术包括文件上传(如Spring MVC的MultipartFile)、Excel解析(如Apache POI)以及数据库操作(JDBC或ORM)。通过熟练掌握这些技术,你可以构建出高效、稳定的...
JSP上传excel及excel插入至数据库的方法 本文主要介绍了JSP上传excel及excel插入至数据库的方法,涉及JSP文件上传及针对excel的读取、写入数据库等操作技巧。下面是详细的知识点解析: JSP文件上传 在HTML页面中...
标题提到的“ASP程序可以实现上传EXCEL”,意味着我们要讨论的是如何利用ASP来处理用户通过Web界面上传Excel文件的功能。在ASP中,这通常涉及到文件上传控件、服务器端代码以及对上传文件的处理。 首先,让我们了解...
用户上传Excel文件后,需要确保文件是安全的(例如,检查文件类型和大小),然后将其保存到服务器的一个特定目录。 3. **读取Excel文件**:使用PHPExcel或PHPSpreadsheet库读取上传的Excel文件。创建一个类实例,...
本文将深入探讨如何在C#中解决上传Excel文本数字混合不能识别的情况。 ### 解决方案概述 当C#应用程序尝试读取或导入Excel文件中的数据时,若数据单元格内包含文本和数字混合格式(例如,"123abc"),标准的数据...
asp.net mvc 上传excel文件并读取excle内容转成DataTable(Spire.Office.3.6.0) 一个需求:将一个Excel文件中的数据导入到数据库中去。 思路:上传一个excel文件,读取该excel文件中数据,转成DataTable(或List),...
### 向HDFS上传Excel文件 #### 背景 在大数据处理场景中,经常需要将Excel文件上传到Hadoop分布式文件系统(HDFS)中进行进一步的数据处理或分析。然而,由于HDFS本身并不直接支持Excel文件格式,通常的做法是先将...
上传excel到SAP内表 在SAP系统中,上传Excel文件内容到内表是一个常见的需求。这种需求可以通过多种方式实现,而本文将介绍其中的一种简单直接的方法。本方法使用ABAP语言编写,通过调用TEXT_CONVERT_XLS_TO_SAP...
本示例提供了一个批量上传Excel文件并将其数据动态显示在Gridview中的解决方案。以下是对这个过程的详细说明: 首先,我们需要一个ASP.NET页面,其中包含一个FileUpload控件用于选择Excel文件,一个Button控件触发...
标题中的“利用apache的poi上传excel”指的是使用Apache POI库来处理Microsoft Excel文件的Java编程实践。Apache POI是一个开源项目,它提供了API来读取、写入和修改MS Office格式的文件,包括Excel(XLS和XLSX)。 ...
本项目“extjs3.2+struts2实现多文件上传excel并插入到数据库”是针对这一需求的具体解决方案,利用了ExtJS 3.2前端框架和Struts2后端框架进行开发。 **ExtJS 3.2** 是一个基于JavaScript的富客户端应用框架,提供...
基于streamlit库写的excel可视化样例, 可以上传excel文件, 然后对excel的各个标签数据读取, 可以基于样例,很轻松的拓展出excel的可视化图表
这个例子展示了如何在ASP(Active Server Pages)环境中实现一个功能,让用户能够上传Excel文件,并将其中的数据导入到SQL Server数据库中。ASP是一种经典的服务器端脚本语言,用于创建动态网页。 首先,我们来看`...
在这个“java文件上传和上传excel后并解析出来的小工具”中,我们可以探讨以下几个核心知识点: 1. **MultipartFile接口**:在Spring框架中,`MultipartFile`接口用于处理HTTP请求中的多部分文件数据。它提供了读取...
php上传excel php上传xls代码
本教程将详细介绍如何使用PHP来上传Excel文件,并将其中的数据批量读取并添加到SQL Server数据库中。 1. **文件上传** - PHP中的`$_FILES`全局变量用于接收上传的文件信息,包括文件名、类型、大小等。 - 使用`...
下面将详细介绍如何实现“ajax上传excel”以及PHP端接收的流程。 1. **前端准备**: - **HTML**:首先,我们需要一个HTML表单让用户选择要上传的Excel文件。通常,我们会用`<input type="file">`元素来实现这个...
在本文中,我们将深入探讨如何在ASP.NET MVC框架下,利用EasyUI的FileBox组件实现Excel文件的上传功能。EasyUI是一个基于jQuery的用户界面库,提供了丰富的组件,如FileBox,用于处理文件选择和上传操作。而MVC...