传excel文件并在服务器端读取存入数据库

博客分类:

struts2 Excel JSP XML 工作

Java代码

页面jsp文件

action处理:publicclassManyContactsActionextendsActionSupport {privateFile upload;privateString uploadContentType;// 要上传的文件的类型privateString uploadFileName;// 要上传的文件privateContactsManager manager;privateContacts cbean;privatePersons pbean;privateLong gid;privateString result;publicString execute()throwsException {// 检查后缀名是否符合条件,同时更改上传文件的文件名intfilesize =this.getUploadFileName().length();String fileEx = this.getUploadFileName().substring(this.getUploadFileName().indexOf("."), filesize);//获取文件名String fileName=uploadFileName.substring(0,uploadFileName.indexOf("."));// 获得上传路径String realPath = ServletActionContext.getServletContext().getRealPath("/UploadFile/");File saveFile=null;if(upload !=null) {// 修改文件名,使上传后不至于重复替代// this.uploadFileName = new Date().getTime() + fileEx;saveFile = newFile(newFile(realPath), uploadFileName);if(!saveFile.getParentFile().exists()) {saveFile.getParentFile().mkdirs();}FileUtils.copyFile(upload, saveFile);// 到这里,文件已上传成功// 下面进行判断文件是否是rar文件,是就需要解压if(fileEx.equals(".rar")) {System.out.println("saveFile:"+ saveFile);//rar文件所在保存路径System.out.println("realPath:"+ realPath);//解压后保存路径// 定义解压字符串,用于解压上传的rar文件,注意此处需要一个unrar.exe文件String rarpath = ServletActionContext.getServletContext().getRealPath("/rarFile/UNRAR.exe x -t -o+ -p- \"");String jieya = rarpath + saveFile + "\" \""+ realPath +"\"";Process p1 = Runtime.getRuntime().exec(jieya);// 将传输的rar文件解压p1.waitFor();p1.destroy();FileUtils.deleteQuietly(saveFile);// 删除rar文件saveFile=newFile(newFile(realPath),fileName+".xls");System.out.println("解压后:"+saveFile);ServletActionContext.getResponse().getWriter().println("success!!");}if(fileEx.equals(".xls") || fileEx.equals(".xlsx")) {// 开始读取文件了,获得第一列手机号码Workbook persons = Workbook.getWorkbook(saveFile);// 获得xls文件Sheet sheet = persons.getSheet(0);// 获得第一个工作簿System.out.println("列数:"+ sheet.getColumns());intcount = sheet.getRows();// 取得记录数,count行String cphone;// 遍历行,获得列数据for(inti =0; i < count; i++) {cphone = sheet.getCell(0, i).getContents();// 第一列的所有行pbean = manager.getPerson(cphone);// 获得该用户,查询别的信息cbean = newContacts();Long contactsid = pbean.getId();Long pid = 10002L;cbean.setContactsid(contactsid);// 联系人idcbean.setPid(pid);// 用户本身的PIDcbean.setCid("cid");// 关系的学校IDcbean.setGid(gid);// 分组idmanager.addPerson(cbean);this.contactsLog.writeLog("10002","批量添加联系人","批量添加联系人操作","");System.out.println("添加成功!");}}returnSUCCESS;} else{returnINPUT;}}}xml配置:personInfo.actionshowmangpersons.action注意:在文件解压时,需要一个unrar.exe文件,这个文件应保存在工程相应的目录下,我就放在webapps里面了,按照上面的路径即可获得解压文件并进行解压。这里配置文件没写任何限制,拦截器之类,都在action里面进行判断了,这里只做了类型判断,没有别的。

原链接地址:http://tudou721.iteye.com/blog/586029



java 打开服务器excel文件_Java中上传excel文件并在服务器端读取存入数据库相关推荐

  1. c#如何上传大文件到服务器,asp.net(C#)中上传大文件的几中常见应用方法

    asp.net(C#)中上传大文件的几中常见应用方法 更新时间:2008年11月25日 10:05:46   作者: 最近博客需要做一个文件上下载功能,我从网上找了点资料,整理了下希望对大家有帮助! ...

  2. java文件上传后如何删除_java中上传完文件删除不了的问题

    我上传文件,把流都关闭了,然后还是删除不了,我贴下代码,高手看看是什么问题:if(ServletFileUpload.isMultipartContent(request)){DiskFileItem ...

  3. asp activex 读取服务器上的文件,webshell中上传asp文件调用服务器ActiveX控件溢出获取shell...

    Team: http://www.ph4nt0m.org Author: 云舒(http://www.icylife.net) Date: 2008-02-19 做windows系统渗透测试的时候有w ...

  4. xshell下载mysql到本地文件_在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹)-Go语言中文社区...

    在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹) 1 列出所有需要copy的sh文件 -bash-4.1$ ll /mysqllog/osw/*.sh ...

  5. ASP.NET中上传下载文件

    ASP.NET中上传下载文件 //检查上传文件不为空 if(File1.PostedFile!=null) { stringnam=File1.PostedFile.FileName; //取得文件名 ...

  6. java文件客户端下载_使用Java写一个minio的客户端上传下载文件

    标签:color   ati   tty   java   system   wired   format   media   param 前言: 确保已经安装了minio的服务端 代码: pom.x ...

  7. VB中上传下载文件到SQL数据库

    VB中上传下载文件到SQL数据库 编写人:左丘文 2015-4-11 近期在修改一个VB编写的系统时,想给画面增加一个上传文件到数据库,并可以下载查看的功能,今天在这里,我想与大家一起分享代码,在此做 ...

  8. php上传音频文件,如何在php中上传mp3文件?

    我想上传mp3音乐文件,但是当我提出我的文件时,它给我的错误"通知:未定义指数:音频/ MPEG在E:\ XAMPP \ htdocs中\ page_login \ mp3.php线路7如何 ...

  9. Git入门之命令行删除文件及上传大文件至Github(二)

    自2013年开始,作者的代码基本是分享到CSDN下载区,最早设置均是免费的,但随着下载量增加,分数自动增长.为了更好地分享开源代码及相关工具,赶上时代潮流,作者后续会将代码分享至Github和CSDN ...

最新文章

  1. VMware Mac版本漏洞可任意执行恶意代码
  2. OpenStack Nova Release(Rocky to Train)
  3. hdu 5385 The path
  4. python—多线程之共享数据
  5. python抓取数据库数据封装成json_用Python将mysql数据导出成json的方法
  6. Asp.Net MVC 身份验证-Forms
  7. android support v4 viewstub,Android 控件ViewStub
  8. android程序安全编码向导,Android安全编码规范
  9. Mysql为什么多个大版本并行发布的个人理解
  10. pci串行端口找不到驱动程序_科普:PCI-E插槽都有哪些样子?
  11. bzoj 1603 打谷机
  12. MVPArms MVP快速集成框架
  13. multisim 9013、8050免费下载
  14. 大连理工大学电路计算机,大连理工大学电路计算机辅助分析实验报告精要.pdf...
  15. 考取PMP认证有用吗?
  16. 全国(大学)高等教育各学科视频教学全集
  17. Matlab GUI animatedline 串口实时
  18. 新的任务发布平台源码
  19. 解决苹果手机点击输入框页面自动放大问题
  20. C语言snprintf函数

热门文章

  1. linux下压缩和解压的命令汇总
  2. 多位博士毕业去了985/211/三四流高校,后来怎么样了?
  3. MPB:扬大林淼组-瘤胃内容物样本中有机酸的定量分析 (高效液相色谱)
  4. 上传数据,直接分析,这才是真正的生物云
  5. Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...) : ‘x‘ must be atomic
  6. R语言plotly可视化:plotly可视化互相重叠的归一化直方图并在直方图中添加密度曲线kde、设置不同的直方图使用不同的分箱大小(bin size)、在直方图的边缘添加边缘轴须图
  7. R语言使用ggplot2包使用geom_density()函数绘制分组密度图(自定义调色板填充色、brewer调色板填充、灰度比例填充)实战(density plot)
  8. python使用imbalanced-learn的SMOTENC方法进行上采样处理数据不平衡问题
  9. python使用正则表达式判别字符串是否以一个大写字符起始而跟随了一些小写字符
  10. 特征工程之时间特征、自然语言特征、图像图像特征、数据分布不平衡