zoukankan      html  css  js  c++  java
  • 上传模板

    uploadify+java 可参考:https://blog.csdn.net/zz_cl/article/details/52742721

    ------------------------------------------------------------------------------------------------------

    controller

    //文件上传方法
    @RequestMapping("/uploadfile")
    public String upload(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request,ModelMap model) throws Exception {
    long a=System.currentTimeMillis();
    String path = request.getSession().getServletContext().getRealPath("upload");//文件路径
    System.out.println("文件路径:"+path);
    String originalFilename = file.getOriginalFilename();
    String type = file.getContentType();
    File targetFile = new File(path,originalFilename );
    if (!targetFile.getParentFile().exists()) {
    targetFile.getParentFile().mkdirs();
    }else if (!targetFile.exists()) {
    targetFile.mkdirs();
    }
    // 获得上传文件的文件扩展名
    String subname = originalFilename.substring(originalFilename.lastIndexOf(".")+1);
    System.out.println("文件的扩展名:"+subname);

    try {
    file.transferTo(targetFile);
    String rootpath = path + File.separator + originalFilename;
    List<List<String[]>> excellist = UploadFileUtil.readExcel(rootpath);

    }

     

    工具类

    public class UploadFileUtil{

    public static List<List<String[]>> readExcel(String path){

    SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");

    List<List<String[]>> list = null;

    try {

    //同时支持Excel 2003、2007

    File excelFile = new File(path); //创建文件对象

    FileInputStream is = new FileInputStream(excelFile); //文件流

    Workbook workbook = WorkbookFactory.create(is); //这种方式 Excel 2003/2007/2010 都是可以处理的

    int sheetCount = workbook.getNumberOfSheets(); //Sheet的数量

    //存储数据容器

    list = new ArrayList<List<String[]>>();

    //默认从第二个sheet开始遍历

    for (int s=1;s<sheetCount;s++) {

    Sheet sheet = workbook.getSheetAt(s);

    List<String[]> stringList=new ArrayList<String[]>() ;//用来存储每个sheet数据的容器

    if (sheet.getLastRowNum() <= 0) continue;//判断如果sheet为空则进行下一个循环

    //遍历行

    for(int r=1;r<22;r+=2){

    //用来存储每行数据的容器

    Row row = sheet.getRow(r);

    int cellCount = row.getPhysicalNumberOfCells(); //获取总列数

    String[] model = new String[cellCount];//用来存储每行数据的容器

    int cellType=0;//用来判断数据类型

    String cellValue = ""; //用来存储数据

    Cell cell=null;

    //遍历列

    for(int c=0;c<cellCount;c++){

    cell = row.getCell(c);

    if (cell!=null) {

    cellType = cell.getCellType();

    switch(cellType) {

    case Cell.CELL_TYPE_STRING: //文本

    cellValue = cell.getStringCellValue();

    //model[c-1] = cellValue;

    break;

    case Cell.CELL_TYPE_NUMERIC: //数字、日期

    if(DateUtil.isCellDateFormatted(cell)) {

    cellValue = fmt.format(cell.getDateCellValue()); //日期型

    //model[c-1] = cellValue;

    }

    else {

    cellValue = String.valueOf(cell.getNumericCellValue()); //数字

    //model[c-1] = cellValue;

    }

    break;

    case Cell.CELL_TYPE_BOOLEAN: //布尔型

    cellValue = String.valueOf(cell.getBooleanCellValue());

    break;

    case Cell.CELL_TYPE_BLANK: //空白

    cellValue = cell.getStringCellValue();

    break;

    case Cell.CELL_TYPE_ERROR: //错误

    cellValue = "错误";

    break;

    case Cell.CELL_TYPE_FORMULA: //公式

    cellValue = "错误";

    break;

    default:

    cellValue = "错误";

    }

    }

    model[c] = cellValue;

    }

    //model放入list容器中

    stringList.add(model);

    }

    list.add(stringList);

    }

    is.close();

    }catch (Exception e) {

    e.printStackTrace();

    }

    return list;

    }

    }

     

    可能用到

    1、单元格如果是number类型,得到的数据会是小数点一位的double数据,如果想改变,可用DecimalFormat

      DecimalFormat df = new DecimalFormat("0.00");

      df.format(cell.getNumericCellValue())

  • 相关阅读:
    linux重新编译内核
    无废话ubuntu 13.4w文件共享配置
    VB6关于判断模态窗体的问题
    在.NET中快速创建一个5GB、10GB或更大的空文件
    利用虚拟光驱实现 将WINDOWS文件供虚拟机中的UBUNTU共享
    论这场云盘大战,以及各网盘的优劣
    struts2 全局格式化,格式化时间,金钱,数字
    SQL SERVER 2000/2005/2008数据库数据迁移到Oracle 10G细述
    女攻城师走在移动互联网道路的这两年
    用正则匹配多行文本
  • 原文地址:https://www.cnblogs.com/sanhao/p/9279625.html
Copyright © 2011-2022 走看看