package com.practice.util;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.text.DecimalFormat;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.List;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFDataFormat;import org.apache.poi.hssf.usermodel.HSSFDateUtil;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.CellStyle;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class excelUtil { public static void main(String[] args) { String filePath="D:\\eclipse\\www.xlsx"; List
> data=importExecl(filePath); System.out.println(data); } /** * excel表的导入功能 * @作者:我 * @param filePath excel表的储存路径 * @return List
> 行(列(,,,,,)) */ public static List
> importExecl(String filePath){ List
> data=new ArrayList
>(); File file=new File(filePath); System.out.println(file); //判断文件是否存在或者后缀名是否正确,否则返回为null if(!file.exists()||!(isExcel2003(filePath) || isExcel2007(filePath))){ return null; } //判断文件的版本2003或者2007版 InputStream is = null; //得到Excel工作簿对象 Workbook wb = null; boolean isExcel2003 = true; if(isExcel2007(filePath)){ isExcel2003 = false; } try { is =new FileInputStream(filePath); if(isExcel2003){ System.out.println("本表是2003版的excel表"); wb = new HSSFWorkbook(is); }else{ System.out.println("本表是2007版的excel表"); wb=new XSSFWorkbook(is); } //得到Excel工作表对象 //得到第一个shell Sheet sheet = wb.getSheetAt(0); //得到所有行数 int totalRows=sheet.getPhysicalNumberOfRows(); // 得到Excel的列数 int totalCells=0; if (totalRows >= 1 && sheet.getRow(0) != null){ totalCells = sheet.getRow(0).getPhysicalNumberOfCells(); } //循环行 for(int rowNum=0;rowNum rowLst = new ArrayList (); //循环列 for(int column=0;column
package com.practice.util;import java.security.MessageDigest;import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.UUID;import java.util.Map.Entry;public class StringUtils { public static String replaceInfo(String info, Mapmap) { for (Entry entity : map.entrySet()) { info = info.replace(entity.getKey(), entity.getValue()); } return info; } /** * * @return 获取一个唯一的uuid字符串 */ public static String getUUID() { return UUID.randomUUID().toString(); } public static String getFristUpper(String str){ return str.substring(0,1).toUpperCase()+str.substring(1); } public static String format(String str, Object... args) { if (str == null || args == null || args.length <= 0) return null; for (int i = 0; i < args.length; i++) { str=str.replace(String.format("{%s}", i), args[i].toString()); } return str; } /** * @param str * @return */ public static String getMarkString(String str) { return String.format("'%s'", str); } public static String getMarkString(String str,String mark){ return mark+str+mark; } /** * 替换 ' 为 '' * @param str * @return */ public static String replaceMark(String str) { return str.replaceAll("'", "''"); } /** * 是否为 int * @param str * @return */ public static boolean isInt(String str) { if (isNullOrEmpty(str)) return false; String regex = "^\\d+$"; return str.matches(regex); } /** * 是否为 * @param Double * @return */ public static boolean isDouble(String str) { if (isNullOrEmpty(str)) return false; String regex = "\\d{1,}\\.\\d{1,}"; return str.matches(regex); } /** * 是否为 null 获取 "" * @param str * @return */ public static boolean isNullOrEmpty(String str) { return str == null || "".equals(str.trim()); } /** * 字符串转int 字符不是int 返回 0 * @param */ public static Integer getInt(String str) { if (isInt(str)) return Integer.valueOf(str); else return 0; } /** * 字符串转Double 字符不是Double 返回 null * @param */ public static Double getDouble(String str) { if (isDouble(str)) return Double.valueOf(str); else return null; } /** * * @param MD5 * @return * */ public static String getMD5(String s) { char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; try { byte[] strTemp = s.getBytes(); MessageDigest mdTemp = MessageDigest.getInstance("MD5"); mdTemp.update(strTemp); byte[] md = mdTemp.digest(); int j = md.length; char str[] = new char[j * 2]; int k = 0; for (int i = 0; i < j; i++) { byte byte0 = md[i]; str[k++] = hexDigits[byte0 >>> 4 & 0xf]; str[k++] = hexDigits[byte0 & 0xf]; } return new String(str); } catch (Exception e) { return null; } } //将id字符串拆分成List public static List string2List(String str,String splitType){ if(str==null&&"".equals(str)){ return null; } List list=new ArrayList (); String [] ids=str.split(splitType); for(String temp:ids){ list.add(Integer.parseInt(temp)); } return list; }}
package com.practice.util;import java.awt.Graphics;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.BufferedReader;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.Map;import java.util.Properties;import javax.imageio.ImageIO;import org.springframework.web.multipart.MultipartFile;public class IoUtils { /** * * @param 绝对路径 * @return 是否是文件 */ public static boolean isFile(String path) { return path != null ? new File(path).isFile() : false; } /** * * @param 绝对路径 * @return 是否是一个文件夹 */ public static boolean isDirectory(String path) { return path != null ? new File(path).isDirectory() : false; } /** * 获取文件名 * * @param path * @return */ public static String getFileName(String path) { if (isFile(path)) return new File(path).getName(); else return null; } /** * 获取文件名 * * @param file * @return */ public static String getFileName(File file) { if (file != null && file.isFile()) return file.getName(); else return null; } /** * 获取前缀 * * @param path * @return */ public static String getSuffix(String path) { if (isFile(path)) return getSuffix(new File(path)); else return null; } /** * 创建文件夹 * * @param path * @return */ public static boolean createDirectories(String path) { if (isDirectory(path)){ return true; } else{ //如果是文件 创建其文件夹 if(isFilePath(path)){ int num = path.lastIndexOf("\\"); if(num<0){ num = path.lastIndexOf("/"); } path = path.substring(0,num); } return new File(path).mkdirs(); } } /** * 是否是一个 文件路径 * @param filePath * @return */ public static boolean isFilePath(String filePath){ if(StringUtils.isNullOrEmpty(filePath)){ return false; } return filePath.indexOf(".")>=0; } /** * 创建文件 * @param bytes * @param filePath 文件全路径 */ public static void writeAllBytes(byte[] bytes,String filePath){ if(bytes == null || bytes.length<=0 || filePath == null || "".equals(filePath.trim())){ return; } OutputStream outputStream = null; String[] split = filePath.split("/"); String fileName = split[split.length-1]; String directoryPath =filePath.substring(0, filePath.lastIndexOf("/")) ; if(!isDirectory(directoryPath)){ createDirectories(directoryPath); } filePath = combine(directoryPath,fileName); try { outputStream = new FileOutputStream(filePath); outputStream.write(bytes); } catch (Exception e) { e.printStackTrace(); }finally { if(outputStream != null){ try { outputStream.flush(); outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } /** * * @param file 读取文件的全部字节 * @return */ public static byte[] readAllBytes(File file){ byte[] result = null; if(file.isFile()){ try { result = readAllBytes(new FileInputStream(file)); } catch (FileNotFoundException e) { e.printStackTrace(); } } return result; } /** * * @param inStream 读取文件的全部字节 * @return */ public static byte[] readAllBytes(InputStream inStream) { ByteArrayOutputStream swapStream = new ByteArrayOutputStream(); byte[] buff = new byte[100]; byte[] result = null; int rc = 0; try { while ((rc = inStream.read(buff, 0, 100)) > 0) { swapStream.write(buff, 0, rc); } result = swapStream.toByteArray(); } catch (IOException e) { e.printStackTrace(); }finally { try { swapStream.close(); } catch (IOException e) { e.printStackTrace(); } } return result; } /** * * @param file * @return */ public static String getSuffix(File file) { if (file != null && file.isFile()) return file.getName().substring(file.getName().lastIndexOf(".") + 1); else return null; } /** * 读取一个文本文件的全部字符 * * @param path * @return */ public static String readAllTxt(String path) { StringBuilder stringBuilder = new StringBuilder(); File file = new File(path); if (file.isFile() && file.exists()) { InputStreamReader read = null; try { read = new InputStreamReader(new FileInputStream(file), "utf8"); BufferedReader bufferedReader = new BufferedReader(read); String lineTxt = null; while ((lineTxt = bufferedReader.readLine()) != null) { stringBuilder.append(lineTxt + "\r\n"); } } catch (Exception e) { e.printStackTrace(); } finally { if (read != null) try { read.close(); } catch (IOException e) { read = null; } } } return stringBuilder.toString(); } public static ListreadTxtByLine(String path) throws Exception { List list = new ArrayList (); File file = new File(path); if (file.isFile() && file.exists()) { InputStreamReader read = new InputStreamReader(new FileInputStream(file), "utf-8"); BufferedReader bufferedReader = new BufferedReader(read); String lineTxt = null; while ((lineTxt = bufferedReader.readLine()) != null) { list.add(lineTxt); } read.close(); } return list; } public static void writeTxt(List info, String fileName) { writeTxt(info.toArray(new String[info.size()]), fileName); } /** * * @param info * @param fileName */ public static void writeTxt(String[] info, String fileName) { FileWriter writer = null; try { writer = new FileWriter(fileName, true); for (String str : info) { writer.write(str); } } catch (Exception e) { e.printStackTrace(); } finally { try { writer.flush(); writer.close(); } catch (IOException e) { writer = null; e.printStackTrace(); } } } /** * * @param info * 把字符串写入文件 * @param fileName * 文件全路径名 */ public static void writeAllTxt(String info, String fileName) { FileWriter writer = null; try { writer = new FileWriter(fileName); writer.write(info); } catch (Exception e) { e.printStackTrace(); } finally { try { writer.flush(); writer.close(); } catch (IOException e) { writer = null; e.printStackTrace(); } } } /** * * @param info * 把字符串写入文件 * @param fileName * 文件全路径名 */ public static boolean writeAllTxt2(String info, String fileName) { FileWriter writer = null; boolean isTrue = true; try { writer = new FileWriter(fileName); writer.write(info); } catch (Exception e) { e.printStackTrace(); isTrue = false; } finally { try { writer.flush(); writer.close(); } catch (IOException e) { writer = null; e.printStackTrace(); } } return isTrue; } /** * 复制文件 * @param oldFilePath * 文件路径 * @param newFilePath * 新文件的path * @return */ public static boolean copyer(String oldFilePath, String newFilePath) { return copyer(oldFilePath, newFilePath, 10); } /** * 复制文件 * @param oldFilePath * 文件路径 * @param newFilePath * 新文件的path * @param bufferSize 缓冲大小默认10MB * @return */ public static boolean copyer(String oldFilePath, String newFilePath, int bufferSize) { if (oldFilePath == null || "".equals(oldFilePath.trim())) return false; boolean flag = true; try { InputStream inputStream = new FileInputStream(oldFilePath); flag = copyer(inputStream, newFilePath, bufferSize); } catch (FileNotFoundException e) { flag = false; e.printStackTrace(); } return flag; } /** * 复制文件 * * @param inputStream * 输入流 * @param newFilePath * 新文件的path * @return */ public static boolean copyer(InputStream inputStream, String newFilePath) { return copyer(inputStream, newFilePath, 10); } /** * 复制文件 * * @param inputStream * 输入流 * @param newFilePath * 新文件的path * @return */ public static boolean copyer(InputStream inputStream, String newFilePath, int bufferSize) { if (inputStream == null || newFilePath == null || "".equals(newFilePath.trim()) || bufferSize <= 0) return false; boolean flag = true; OutputStream outputStream = null; try { outputStream = new FileOutputStream(newFilePath); byte[] buffer = new byte[1024 * 1024 * bufferSize]; int byteread = 0; while ((byteread = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, byteread); } } catch (Exception e) { flag = false; e.printStackTrace(); } finally { try { outputStream.flush(); if (inputStream != null) inputStream.close(); if (outputStream != null) outputStream.close(); } catch (IOException e) { inputStream = null; outputStream = null; e.printStackTrace(); } } return flag; } /** * 保存图片的方法 */ public static boolean savaImage(BufferedImage image,String suffxi,String path){ if(image==null&&"".equals(suffxi)&&suffxi==null&&path==null&&"".equals(path)){ return false; } String dirPath=path.substring(0, path.lastIndexOf("/")); boolean flag = true; File f = new File(dirPath); if(!f.exists()){ f.mkdirs(); } try { flag = ImageIO.write(image, suffxi, new File(path)); } catch (IOException e) { flag=false; e.printStackTrace(); } return flag; } /** * 保存excle的方法 */ public static boolean savaExcel(MultipartFile item,String path){ InputStream is=null; FileOutputStream fos=null; if(item==null&&"".equals(path)&&path==null){ return false; } String dirPath=path.substring(0, path.lastIndexOf("/")); boolean flag = true; File f = new File(dirPath); if(!f.exists()){ f.mkdirs(); } try { is=item.getInputStream(); fos = new FileOutputStream(path); byte[] b = new byte[1024]; while((is.read(b)) != -1){ fos.write(b); } } catch (IOException e) { flag=false; e.printStackTrace(); }finally { try { if(is!=null){ is.close(); } if(fos!=null){ fos.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return flag; } /** * * @param folderPath * 文件夹目录(输入目录) * @param newFolderPath * 文件夹目录(输出目录) * @param deep * 是否查找子文件夹 * @param fileNames * 文件名 * @return 成功复制的文件的文件名集合 */ public static List copyerFromFolder(String folderPath, String newFolderPath, boolean deep, String... fileNames) { if (folderPath == null || fileNames == null || "".equals(folderPath.trim()) || fileNames.length <= 0) return null; List successFileName = new ArrayList (); File folder = new File(folderPath); if (folder.isDirectory()) { File[] listFiles = folder.listFiles(); for (File file : listFiles) { if (file.isFile()) { for (String fileName : fileNames) { if (fileName.toLowerCase().equals(file.getName().toLowerCase())) { if (copyer(combine(folderPath, fileName), combine(newFolderPath, fileName))) successFileName.add(fileName); } } } else if (file.isDirectory() && deep) { copyerFromFolder(file.getPath(), newFolderPath, deep, fileNames); } } } return successFileName; } /** * * @param folderPath * 文件夹目录(输入目录) * @param newFolderPath * 文件夹目录(输出目录) * @param deep * 是否查找子文件夹 * @param fileNames * 文件名 * @return 成功复制的文件的文件名集合 */ public static List copyerFromFolder(String folderPath, String newFolderPath, boolean deep, List fileNames) { return copyerFromFolder(folderPath, newFolderPath, deep, fileNames.toArray(new String[fileNames.size()])); } /** * * @param folderPath * 文件夹目录(输入目录) * @param newFolderPath * 文件夹目录(输出目录) * @param fileNames * 文件名 * @return 成功复制的文件的文件名集合 */ public static List copyerFromFolder(String folderPath, String newFolderPath, List fileNames) { return copyerFromFolder(folderPath, newFolderPath, false, fileNames.toArray(new String[fileNames.size()])); } /** * 拼接一个文件路径 * * @param * @return 文件全路径 */ public static String combine(String... strings) { if (strings == null || strings.length <= 0) return null; for (int i = 0; i < strings.length; i++) { strings[i] = repalceLine(strings[i]); } return null; } /** * 去掉字符串前后"\" 或者 "/" * @param str * * @return */ public static String repalceLine(String str) { String suffix = str.substring(str.length() - 1, str.length()); String prefix = str.substring(0, 1); if (suffix.equals("\\") || suffix.equals("/")) { str = str.substring(0, str.length() - 1); } if (prefix.equals("\\") || prefix.equals("/")) { str = str.substring(1, str.length()); } return str; } /** * 读取properties文件 * * @param path * properties路径 * @return map */ public static Map
// 批量导入 @RequestMapping("/all") public @ResponseBody List
> importExecl(HttpServletRequest request){ MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; List fileList = multipartRequest.getFiles("file"); List allStudent = new ArrayList (); MultipartFile myfile = null; myfile = fileList.get(0); String FileName = myfile.getOriginalFilename(); String fileFolder = "G:/temp/"; String pathName=fileFolder+FileName; try { //先把传过来的文件放在临时文件夹下,然后从文件夹中取出 InputStream inputStream = myfile.getInputStream(); IoUtils.copyer(inputStream, pathName); System.out.println(pathName); System.out.println("=============================1"); List
> studentList = excelUtil.importExecl(pathName); System.out.println(studentList); if(studentList != null){ for(int i = 0;i students = studentList.get(i); student.setName(students.get(0)); student.setAge(students.get(1)); allStudent.add(student); } } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } studentServiceImpl.insertBatchStudent(allStudent); return null; }
要用到的jar包