`
dtt3401885
  • 浏览: 17884 次
文章分类
社区版块
存档分类
最新评论

grails 批量导入excel文件

 
阅读更多
def serverimport={
render(view: "server_import")
}
def server_import ={def loginUser = UtilsController.getLoginUser(session)//取得登录人

if(loginUser){
def ufile = FileUploadUtil.upload(request, "batchfile")//上传文件。写好的java类直接引用
def out = 0
def j = 0
def failDevice = ''
if(ufile.state){
try{
def wb = Workbook.getWorkbook(ufile.file)
def sheet = wb.getSheet(0)
def rows = sheet.getRows()

for (int i = 1; i < rows; i++){
def serverfaults=new ServerFaults()
def cell = sheet.getRow(i)
if(cell[0].getContents()!=null&&cell[0].getContents()!=""){
def report1=cell[0].getContents()

def report2=U.findByUserRealName(report1)//把传入的姓名字符串转换为自己需要的类型
serverfaults.reporter=report2
serverfaults.type=cell[1].getContents()
serverfaults.describe=cell[2].getContents()
serverfaults.record=cell[3].getContents()
serverfaults.satus=cell[4].getContents()

serverfaults.createtime=new SimpleDateFormat("yyyy/MM/dd").parse(cell[5].getContents())//转换日期格式

serverfaults.save()

}


}

wb.close()
flash.message ="\u4E0A\u4F20\u6210\u529F\uFF01"
render(view: "server_import")
}catch(Exception e){
e.printStackTrace()
}
}else{
flash.message ="\u8BF7\u9009\u62E9\u6587\u4EF6\u4E0A\u4F20\uFF01"
render(view: "server_import")
return
}
}else{
flash.message ="\u4F60\u7684\u767B\u5F55\u5DF2\u7ECF\u8D85\u65F6,\u8BF7\u91CD\u65B0\u767B\u5F55\u540E\u518D\u64CD\u4F5C\uFF01"
render(view: "server_import")
}
}



java类
package com.detao.dtma.utils;

import java.awt.image.BufferedImage;
import java.io.File;
import java.util.ArrayList;
import java.util.List;

import javax.imageio.ImageIO;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;

import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

public class FileUploadUtil {

public static void writeScaledImage(UFile ufile, ServletContext servletContext,
int width, int height) throws Exception {
BufferedImage scaledImage = ImageUtils.scaleImage(ufile.file, width,
height);
File des = new File(servletContext.getRealPath(ufile.path.substring(0,
ufile.path.lastIndexOf("/"))), ufile.file.getName() + "_" + width + "x"
+ height + ".jpg");
ImageIO.write(scaledImage, "jpeg", des);
}

public static void writeScaledImage(UFile ufile, ServletContext servletContext,
int[] width, int[] height) throws Exception {
if (width == null || height == null) {
return;
}
int length = width.length > height.length ? height.length
: width.length;
for (int i = 0; i < length; i++) {
writeScaledImage(ufile, servletContext, width[i], height[i]);
}
}

/**
* @param request
* @param location
* @param name
* @return
* @throws Exception
*/
public static UFile upload(HttpServletRequest request, String location,
String name) throws Exception {
return upload(request, name, location, null, 100 * 1024 * 1024);
}

/**
* ${contextPath}/upload/location
*
* @param request
* @param location
* @param name
* @return
* @throws Exception
*/
public static UFile uploadImages(HttpServletRequest request,
String location, String name) throws Exception {
String limitedExt = "jpg,jpeg,png,gif,bmp,JPG,JPEG,GIF,PNG,BMP,Jpg,Jpeg,Png,Gif,Bmp";
List<String> allowedExtensions = new ArrayList<String>();
if (!"".equals(limitedExt)) {
String[] extensions = limitedExt.split(",");
for (String ext : extensions) {
allowedExtensions.add(ext);
}
}
return upload(request, name, location, allowedExtensions, 4 * 1024);
}

/**
* ${contextPath}/upload
*
* @param request
* @param name
* @return
* @throws Exception
*/
public static UFile upload(HttpServletRequest request, String name)
throws Exception {
return upload(request, name, null, null, 100 * 1024 * 1024);
}

/**
*
* @param request
* @param name
* @return
* @throws Exception
*/
public static UFile uploadHeadPhoto(HttpServletRequest request,
String location, String name) throws Exception {
String limitedExt = Configuration
.getProperty("image.allowed.extension");
List<String> allowedExtensions = new ArrayList<String>();
if (!"".equals(limitedExt)) {
String[] extensions = limitedExt.split(",");
for (String ext : extensions) {
allowedExtensions.add(ext);
}
}
long maxSize = Configuration.getLongProperty("image.maxsize", 2048);
return upload(request, name, location, allowedExtensions, maxSize);
}

public static UFile[] upload(HttpServletRequest request, String[] names,
String[] dirs, List<List<String>> allowedExtensions, long[] maxSizes)
throws Exception {
UFile[] ufiles = new UFile[names.length];
for (int i = 0; i < ufiles.length; i++) {
ufiles[i] = upload(request, names[i], dirs[i],
allowedExtensions.get(i), maxSizes[i]);
}
return ufiles;
}

/**
* @param request
* @param name
*            name
* @param location
*
* @param allowedExtensions
*
* @param maxSize
*            maxSize
* @return
* @throws Exception
*/
public static UFile upload(HttpServletRequest request, String name,
String location, List<String> allowedExtensions, long maxSize)
throws Exception {
UFile ufile = new UFile();
ufile.state = false;
if (request instanceof MultipartHttpServletRequest) {
MultipartHttpServletRequest req = (MultipartHttpServletRequest) request;
MultipartFile file = req.getFile(name);
String fileExtension = null;
if (!file.isEmpty()) {
fileExtension = file
.getOriginalFilename()
.substring(
file.getOriginalFilename().lastIndexOf('.') + 1)
.toLowerCase();
if (allowedExtensions != null && !allowedExtensions.isEmpty()
&& !allowedExtensions.contains("*")) {
if (file.getOriginalFilename().lastIndexOf(".") < 0) {
ufile.msg = "文件格式错误";
return ufile;
}
if (!allowedExtensions.contains(fileExtension)) {
ufile.msg = "文件格式错误 [" + fileExtension + "],请上传 "
+ allowedExtensions + " 格式的文件";
return ufile;
}
}
if (file.getSize() > maxSize * 1024 || file.getSize() == 0) {
ufile.msg = "请上传小于 [" + maxSize + "] KB 的文件";
return ufile;
}

String dirStr = "/upload";

location = location == null ? "" : location.trim();
if (!"".equals(location)) {
dirStr = location.startsWith("/") ? location : "/"
+ location;
}

String dir = request.getSession().getServletContext()
.getRealPath(dirStr);

if (!new File(dir).exists()) {
if (!new File(dir).mkdirs()) {
ufile.msg = "创建目录失败!";
return ufile;
}
}
File des = new File(dir, StringUtils.randomString() + "."
+ fileExtension);

file.transferTo(des);
ufile.state = true;
ufile.name = file.getOriginalFilename();
ufile.path = dirStr + "/" + des.getName();
ufile.msg = "文件上传成功";
ufile.file = des;

return ufile;
} else {
ufile.msg = "文件不能为空,请重新选择文件上传";
return ufile;
}
} else {
ufile.msg = "the form'enctype is not multipart/form-data !!!";
return ufile;
}
}
}
分享到:
评论

相关推荐

    grails 中文文档+grails-fckeditor-0.9.5.zip插件

    《Grails技术详解:中文文档与Fckeditor-0.9.5插件解析》 Grails,作为一款基于Groovy语言的开源Web应用框架,以其高效、简洁的特性深受开发者喜爱。它集成了许多Java EE的功能,同时简化了开发流程,使得开发人员...

    grails_API_文档

    grails_API_文档,CHM格式 ,内容详细.

    Grails1.1中文文档

    8. **国际化(i18n)**:Grails支持多语言环境,文档将介绍如何设置和使用国际化资源文件。 9. **插件系统**:Grails的插件系统极大地扩展了其功能,文档会讲解如何安装、使用及开发插件。 10. **测试**:文档会...

    Grails Grails Grails

    《Grails1.1中文文档》是Grails 1.1版本的官方中文指南,包含了框架的详细介绍、安装指南、基本概念、MVC模式的应用、GORM的使用、服务层、控制器、视图、国际化、测试等方面的内容。通过阅读这份文档,开发者可以...

    grails中文文档

    提供的 "Grails1.1中文文档-----2009.3.25.chm" 和 "Grails.zip" 文件,应该包含了 Grails 1.1 版本的中文文档和可能的示例代码。这些文档可以帮助你深入了解 Grails 的各项特性和使用方法,特别是对于初学者来说,...

    grails 文档

    本文档将带你深入理解Grails的核心概念、主要特性以及实践技巧。 1. **Groovy 语言基础** Groovy 是Java平台上的动态脚本语言,它与Java语法兼容,但更加简洁,支持闭包和元编程。在Grails中,Groovy用于编写控制...

    Grails1.1中文文档(CHM)

    Grails1.1最新 中文 文档 当今的Java Web开发技术显得过于复杂,相对于它本身的需要来说。现在主流的Java Web框架也是异常复杂,而且没有很好的遵循 Don't Repeat Yourself (DRY) 法则。 因此我们要以一种新的思维...

    grails 开发文档 合辑

    Apress.Beginning.Groovy.and.Grails.From.Novice.to.Professional.Jun.2008 grails_programming Grails1.1中文文档-----2009.3.25 Grails入门指南(第二版) Groovy经典入门 Programming Groovy 2 合集,超实惠哦

    Grails1.1中文文档.rar

    通过阅读《Grails1.1中文文档.chm》和解压后的《Grails.rar》文件,你可以获得详细的框架指南、API文档和示例代码,从而加速学习进程。对于初学者来说,这份文档将是你理解Grails 1.1及其开发流程的重要参考资料。

    Grails结合uploadify上传文件的简单代码

    在本文中,我们将深入探讨如何在Grails框架中结合uploadify插件实现文件上传功能。Grails是一款基于Groovy语言的、高效的Web应用开发框架,它简化了Java平台上的开发流程。uploadify则是一个JavaScript库,它允许...

    Eclipse下搭建Grails项目

    - 在Eclipse的classpath variable中设置`GRAILS_HOME`变量,指向Grails的安装目录,避免在创建或导入项目时手动添加库文件。 - 在`Windows -&gt; Preferences -&gt; Groovy`中,勾选"Disable Groovy Compiler Generating...

    Grails中文参考手册

    **Grails 文档** "Grails 中文参考手册" 是一套详细的 Grails 学习资料,涵盖了框架的所有核心组件、最佳实践和使用方法,帮助开发者快速掌握 Grails 开发技能。 总之,Grails 是一个强大而灵活的 Web 开发框架,...

    Grails帮助文档

    本篇文档将深入探讨Grails的核心概念、关键组件以及它们在实际开发中的应用。 ### 1. Grails概述 Grails是一个全栈框架,它整合了Spring、Hibernate、Groovy on Grails(GORM)等成熟的技术,提供了MVC(模型-视图...

    GRails 中文帮助文档(参考手册)和安装开发介绍帮助

    如今的Java Web开发对于需求来说已经变得过于复杂。当今众多Java领域的Web开发框架不仅使用复杂,而且并没有很好的遵循Don’t Repeat Yourself(DRY)原则...这篇文档会向你介绍如何使用Grails框架来搭建Web应用程序。

    Grails+ZK文档

    Grails+ZK文档,Grails+ZK文档,Grails+ZK文档,Grails+ZK文档

Global site tag (gtag.js) - Google Analytics