• java数据库数据导入excel


    data导出入excel中

    controller:

    package com.longfor.hrssc.api.controller;
    
    import com.longfor.hrssc.api.model.BasicInformation;
    import com.longfor.hrssc.api.service.IBasicInformationService;
    import org.apache.poi.ss.usermodel.*;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.servlet.http.HttpServletResponse;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.OutputStream;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    /**
     * Created by fmgao on 2019/5/5.
     */
    @RestController
    @RequestMapping("/export")
    public class ExportExcel {
        @Autowired
        private IBasicInformationService basicInformationService;
    
    
        @RequestMapping(value = "/excel", method = RequestMethod.GET)
        public Object excel2(HttpServletResponse response) throws Exception {
    //        list = getUsers();
            String columnName = "t_basic_information";
            BasicInformation basicInformation = new BasicInformation();
            basicInformation.setTableName(columnName);
            List<String> titles = new ArrayList();
            titles = basicInformationService.getColumnNames(basicInformation);
            System.out.println(titles);
            List<BasicInformation> list = new ArrayList();
            list = basicInformationService.getAllDatas(basicInformation);
    
            stuList2Excel(list,titles);
            return null;
        }
    
        /**
         * @param stuList 从数据库中查询需要导入excel文件的信息列表
         * @return 返回生成的excel文件的路径
         * @throws Exception
         */
        public static String stuList2Excel(List<BasicInformation> stuList,List<String> titles) throws Exception {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd hhmmss");
            Workbook wb = new XSSFWorkbook();
            //标题行抽出字段
    //        String[] title = titles;
            //设置sheet名称,并创建新的sheet对象
            String sheetName = "学生信息一览";
            Sheet stuSheet = wb.createSheet(sheetName);
            //获取表头行
            Row titleRow = stuSheet.createRow(0);
            //创建单元格,设置style居中,字体,单元格大小等
            CellStyle style = wb.createCellStyle();
            Cell cell = null;
            //把已经写好的标题行写入excel文件中
            for (int i = 0; i < titles.size(); i++) {
                cell = titleRow.createCell(i);
                cell.setCellValue(titles.get(i));
                cell.setCellStyle(style);
            }
            //把从数据库中取得的数据一一写入excel文件中
            Row row = null;
            for (int i = 0; i < stuList.size(); i++) {
                //创建list.size()行数据
                row = stuSheet.createRow(i + 1);
                //把值一一写进单元格里
                //设置第一列为自动递增的序号
    //            row.createCell(0).setCellValue(i + 1);
                row.createCell(0).setCellValue(stuList.get(i).getId());
                row.createCell(1).setCellValue(stuList.get(i).getBasicCode());
                row.createCell(2).setCellValue(stuList.get(i).getBasicName());
                row.createCell(3).setCellValue(stuList.get(i).getBasicType());
                row.createCell(4).setCellValue(stuList.get(i).getBasicPid());
                row.createCell(5).setCellValue(stuList.get(i).getIsDelete());
                row.createCell(6).setCellValue(stuList.get(i).getCreateUserId());
                //把时间转换为指定格式的字符串再写入excel文件中
                if (stuList.get(i).getCreateTime() != null) {
                    row.createCell(7).setCellValue(sdf.format(stuList.get(i).getCreateTime()));
                }
                if (stuList.get(i).getUpdateTime() != null) {
                    row.createCell(8).setCellValue(sdf.format(stuList.get(i).getUpdateTime()));
                }
    
    
            }
            //设置单元格宽度自适应,在此基础上把宽度调至1.5倍
            for (int i = 0; i < titles.size(); i++) {
                stuSheet.autoSizeColumn(i, true);
                stuSheet.setColumnWidth(i, stuSheet.getColumnWidth(i) * 15 / 10);
            }
            //获取配置文件中保存对应excel文件的路径,本地也可以直接写成F:excel/stuInfoExcel路径
    //        String folderPath = ResourceBundle.getBundle("systemconfig").getString("downloadFolder") + File.separator + "stuInfoExcel";
            String folderPath = "F:\file_soft\me\excel\";
            //创建上传文件目录
            File folder = new File(folderPath);
            //如果文件夹不存在创建对应的文件夹
            if (!folder.exists()) {
                folder.mkdirs();
            }
            //设置文件名
            String fileName = sdf1.format(new Date()) + sheetName + ".xlsx";
            String savePath = folderPath + File.separator + fileName;
            // System.out.println(savePath);
    
            OutputStream fileOut = new FileOutputStream(savePath);
            wb.write(fileOut);
            fileOut.close();
            //返回文件保存全路径
            System.out.println(savePath);
            return savePath;
        }
    }
    

     sevice:

    /**
         * 获取所有的列
         * @param basicInformation
         * @return
         */
        public List<String> getColumnNames(BasicInformation basicInformation){
            List<String> names = basicInformationMapper.getColumnNames(basicInformation);
            return names;
        }
    
        /**
         * 获取所有的数据
         * @param basicInformation
         * @return
         */
        public List<BasicInformation> getAllDatas(BasicInformation basicInformation){
            List<BasicInformation> list = basicInformationMapper.getAllDatas(basicInformation);
            return list;
        }

    dao:

        List<String> getColumnNames(BasicInformation basicInformation);
    
        List<BasicInformation> getAllDatas(BasicInformation basicInformation);

    xml:

    <!--getColumnNames-->
    <select id="getColumnNames" resultType="java.lang.String"
            parameterType="com.longfor.hrssc.api.model.BasicInformation">
        select DISTINCT COLUMN_NAME from information_schema.COLUMNS where table_name=#{tableName}
    </select>
    
    <!--get all-->
    <select id="getAllDatas" resultMap="BaseResultMap"
            parameterType="com.longfor.hrssc.api.model.BasicInformation">
        select * from t_basic_information;
    </select>

    pom:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
    </dependency>
    
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.16</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.16</version>
    </dependency>
  • 相关阅读:
    快速熟悉项目代码
    Hello World
    【java】随机生成6位的数字
    解决字段名与实体类属性名不相同的冲突
    通过eclipse mybatis generater代码生成插件自动生成代码
    自有账户体系对接百度云推送必须要弄懂的问题
    使用jquery获取url及url参数的方法
    Delphi 不使用自带模板创建服务
    Delphi在Listview中加入Edit控件
    动态加载和动态注册类技术的深入探索
  • 原文地址:https://www.cnblogs.com/fmgao-technology/p/10821245.html
Copyright © 2020-2023  润新知