excel 데이터 가져오기 ssm

5736 단어 SSM
java 웹 프로젝트는 excel 데이터를 가져오는 실용적인 빈도가 매우 높은 기능입니다. 몇 가지 이런 기능을 한 후에 이 기능을 요약했습니다. Excel표의 구조에 대해 간단하게 이해하면 대체적으로 세 부분(Sheet, Cell, Row)으로 나눌 수 있다고 생각합니다. 이 세 부분을 페이지, 열, 줄로 이해할 수 있습니다. 앞으로 자신이 편리하게 사용할 수 있도록 이 기능을 참고할 수 있습니다.
   1.대응하는jar 패키지 가져오기
   2.Excel 읽기 도구 클래스
package org.springmvc.util;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
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;


import java.io.InputStream;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;


/**
 * Excel 
 */
public class ExcelUtil {
    private final static String excel2003L = ".xls";
    private final static String excel2007U = ".xlsx";


    // 
    public static List> getExcelList(InputStream is, String fileName) throws Exception{
        List> list = new ArrayList>();
        Workbook workbook = null;


        // 
        String suffix = fileName.substring(fileName.lastIndexOf("."));
        if(suffix.equals(excel2003L)){
            workbook = new HSSFWorkbook(is);
        }else if(suffix.equals(excel2007U)){
            workbook = new XSSFWorkbook(is);
        }


        Sheet sheet = null;
        Row row = null;
        Cell cell = null;


        for(int i = 0 ; i < workbook.getNumberOfSheets();i++){
            sheet = workbook.getSheetAt(i);
            if(sheet == null) continue;
            // sheet 
            for(int j = sheet.getFirstRowNum();j < sheet.getLastRowNum();j++){
                row = sheet.getRow(j);
                if(row == null) continue;
                // row 
                List li = new ArrayList();
                for (int k = row.getFirstCellNum();k < row.getLastCellNum();k++){
                    cell = row.getCell(k);
                    if(cell!=null){
                        li.add(getCellValue(cell));
                    }
                }
                list.add(li);
            }
        }


        return list;
    }


    // 
    public static Object getCellValue(Cell cell){
        Object value = null;
        DecimalFormat decimalFormat1 = new DecimalFormat("0");
        DecimalFormat decimalFormat2 = new DecimalFormat("0.00");
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");


        switch (cell.getCellType()){
            case Cell.CELL_TYPE_NUMERIC:
                if("General".equals(cell.getCellStyle().getDataFormatString())){
                    value = decimalFormat1.format(cell.getNumericCellValue());
                }else if("m/d/yy".equals(cell.getCellStyle().getDataFormatString())){
                    value = dateFormat.format(cell.getDateCellValue());
                }else{
                    value = decimalFormat2.format(cell.getNumericCellValue());
                }
                break;
            case Cell.CELL_TYPE_BOOLEAN:
                value = cell.getBooleanCellValue();
                break;
            case Cell.CELL_TYPE_BLANK:
                value = "";
                break;
            case Cell.CELL_TYPE_STRING:
                value = cell.getStringCellValue();
                break;
        }
        return value;
    }
}

 
3. Controller 페이지
// 
@RequestMapping(value="/batchAdd",method=RequestMethod.GET)
public String batchAdd(){
return "blog/batchAdd";
}
// Excel 
@RequestMapping(value="/batchAdd",method=RequestMethod.POST)
@ResponseBody
public String batchAdd(MultipartHttpServletRequest multipartHttpServletRequest) throws IOException, Exception{
int count = 0;// 
MultipartFile file = multipartHttpServletRequest.getFile("uploadXls");
List> list = ExcelUtil.getExcelList(file.getInputStream(), file.getOriginalFilename());
count = list.size();
//title,content,author,createtime,category_id,pic
for (int i = 0; i < list.size(); i++) {
List lo = list.get(i);
Blog b = new Blog();
b.setTitle(lo.get(0).toString());
b.setContent(lo.get(1).toString());
b.setAuthor(lo.get(2).toString());
b.setIssueDate(new SimpleDateFormat("yyyy/MM/dd").parse(lo.get(3).toString()));
Category c = new Category();
c.setId(Integer.parseInt(lo.get(4).toString()));
b.setCategory(c);
b.setMypic(lo.get(5).toString());
blogDao.insert(b);

for(int j = 0;j

4.jsp 페이지
1.

2.
function submitForm(){ var $form = $modal.find('form'); var action = $form.attr('action'); // //FormData html5 , //FormData ie8 , jquery.form.js //new FormData(dom) //jquery-->dom $form.get(0); $form[0] //dom-->jquery $(dom) var form = new FormData($form.get(0)); $.ajax({ url:action, type:'post', data:form, async: false, cache: false, contentType: false, processData: false, success:function(data){ $modal.modal('hide'); bootstrapTable.bootstrapTable('refresh'); } }); } // function batchAdd(modal,url){ }

좋은 웹페이지 즐겨찾기