精华内容
下载资源
问答
  • 实现了2个功能:1是将数据库坐标点表导出成矢量shape,2是将数据库中有geometry的表导出成矢量shape,都带有进度条功能
  • 例如:我们将这个环境的数据库中用户信息导出为一份json格式文件,再直接将json文件复制到另一个环境导入到数据库,这样可以达到我们的目的。 下面我将使用springboot搭建用户数据信息的导入导出案例,实现了单用户...

    前言

    我们在工作中,会遇到项目在不同的环境运行,当我们需要将这个环境中的某些数据快速的移动到另一个环境,我们就可以通过导入导出json文件的方式实现。例如:我们将这个环境的数据库中用户信息导出为一份json格式文件,再直接将json文件复制到另一个环境导入到数据库,这样可以达到我们的目的。

    下面我将使用springboot搭建用户数据信息的导入导出案例,实现了单用户和多用户数据库信息的导入导出功能。认真看完这篇文章,你一定能掌握导入导出json文件的核心

    准备工作

    需要maven依赖坐标

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-thymeleaf</artifactId>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.1.0</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.18</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.29</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
                <version>1.9.13</version>
            </dependency>
    

    数据库中的用户信息:
    这些字段信息与Java中的UserEntity实体类一一对应
    user表

    功能实现

    准备好依赖和数据库信息之后,开始搭建用户导入导出具体框架:
    框架

    导入导出单用户、多用户功能实现 UserUtil

    package com.leige.test.util;
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    import com.alibaba.fastjson.serializer.SerializerFeature;
    import com.leige.test.entity.UserEntity;
    import com.leige.test.entity.UserEntityList;
    import com.leige.test.model.ResultModel;
    import com.leige.test.service.UserService;
    import org.apache.commons.io.FileUtils;
    import org.codehaus.jackson.map.ObjectMapper;
    import org.springframework.util.ObjectUtils;
    import org.springframework.web.multipart.MultipartFile;
    
    import javax.servlet.http.HttpServletResponse;
    import java.io.*;
    import java.net.URLEncoder;
    import java.util.List;
    import java.util.UUID;
    
    public class UserUtil {
        //导入用户
        public static ResultModel importUser(MultipartFile multipartFile, UserService userService) {
            ResultModel resultModel = new ResultModel();
            try {
                // 获取原始名字
                String fileName = multipartFile.getOriginalFilename();
                // 获取后缀名
                String suffixName = fileName.substring(fileName.lastIndexOf("."));
                //先将.json文件转为字符串类型
                File file = new File("/"+ fileName);
                //将MultipartFile类型转换为File类型
                FileUtils.copyInputStreamToFile(multipartFile.getInputStream(),file);
                String jsonString = FileUtils.readFileToString(file, "UTF-8");
    
                //如果是json或者txt文件
                if (".json".equals(suffixName) || ".txt".equals(suffixName)) {
    
                    //再将json字符串转为实体类
                    JSONObject jsonObject = JSONObject.parseObject(jsonString);
    
                    UserEntity userEntity = JSONObject.toJavaObject(jsonObject, UserEntity.class);
    
                    userEntity.setId(null);
                    userEntity.setToken(UUID.randomUUID().toString());
                    //调用创建用户的接口
                    userService.addUser(userEntity);
    
                } else {
                    resultModel.setStatusCode(0);
                    resultModel.setStatusMes("请上传正确格式的.json或.txt文件!");
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return resultModel;
        }
        //批量导入用户
        public static ResultModel importUsers(MultipartFile multipartFile, UserService userService) {
            ResultModel resultModel = new ResultModel();
            try {
                // 获取原始名字
                String fileName = multipartFile.getOriginalFilename();
                // 获取后缀名
                String suffixName = fileName.substring(fileName.lastIndexOf("."));
                //先将.json文件转为字符串类型
                File file = new File("/"+ fileName);
                //将MultipartFile类型转换为File类型
                FileUtils.copyInputStreamToFile(multipartFile.getInputStream(),file);
                String jsonString = FileUtils.readFileToString(file, "UTF-8");
    
                //如果是json或者txt文件
                if (".json".equals(suffixName) || ".txt".equals(suffixName)) {
    
                    //再将json字符串转为实体类
                    JSONObject jsonObject = JSONObject.parseObject(jsonString);
    
                    UserEntityList userEntityList = JSONObject.toJavaObject(jsonObject, UserEntityList.class);
    
                    List<UserEntity> userEntities = userEntityList.getUserEntities();
                    for (UserEntity userEntity : userEntities) {
                        userEntity.setId(null);
                        userEntity.setToken(UUID.randomUUID().toString());
                        //调用创建用户的接口
                        userService.addUser(userEntity);
                    }
                } else {
                    resultModel.setStatusCode(0);
                    resultModel.setStatusMes("请上传正确格式的.json或.txt文件!");
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return resultModel;
        }
        //导出某个用户
        public static ResultModel exportUser(HttpServletResponse response, UserEntity userEntity, String fileName){
            ResultModel resultModel = new ResultModel();
            ObjectMapper objectMapper = new ObjectMapper();
            if (ObjectUtils.isEmpty(userEntity)){
                resultModel.setStatusCode(0);
                resultModel.setStatusMes("此用户id没有对应的用户");
                return resultModel;
            }else {
                try {
                    String jsonString = objectMapper.writeValueAsString(userEntity);
    
                    // 拼接文件完整路径// 生成json格式文件
                    String fullPath = "/" + fileName;
    
                    // 保证创建一个新文件
                    File file = new File(fullPath);
                    if (!file.getParentFile().exists()) { // 如果父目录不存在,创建父目录
                        file.getParentFile().mkdirs();
                    }
                    if (file.exists()) { // 如果已存在,删除旧文件
                        file.delete();
                    }
                    file.createNewFile();//创建新文件
    
                    //将字符串格式化为json格式
                    jsonString = jsonFormat(jsonString);
                    // 将格式化后的字符串写入文件
                    Writer write = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
                    write.write(jsonString);
                    write.flush();
                    write.close();
    
                    FileInputStream fis = new FileInputStream(file);
                    // 设置相关格式
                    response.setContentType("application/force-download");
                    // 设置下载后的文件名以及header
                    response.setHeader("Content-Disposition", "attachment;filename="
                            .concat(String.valueOf(URLEncoder.encode(fileName, "UTF-8"))));
                    response.setCharacterEncoding("utf-8");
                    // 创建输出对象
                    OutputStream os = response.getOutputStream();
                    // 常规操作
                    byte[] buf = new byte[1024];
                    int len = 0;
                    while((len = fis.read(buf)) != -1) {
                        os.write(buf, 0, len);
                    }
                    fis.close();
                    os.close();  //一定要记得关闭输出流,不然会继续写入返回实体模型
                    return resultModel;
                } catch (Exception e) {
                    resultModel.setStatusCode(0);
                    resultModel.setStatusMes(e.getMessage());
                    e.printStackTrace();
                    return resultModel;
                }
            }
        }
        //导出所有用户
        public static ResultModel exportAllUser(HttpServletResponse response, UserEntityList userEntityList, String fileName){
            ResultModel resultModel = new ResultModel();
            ObjectMapper objectMapper = new ObjectMapper();
            if (ObjectUtils.isEmpty(userEntityList)){
                resultModel.setStatusCode(0);
                resultModel.setStatusMes("此用户id没有对应的用户");
                return resultModel;
            }else {
                try {
                    String jsonString = objectMapper.writeValueAsString(userEntityList);
    
                    // 拼接文件完整路径// 生成json格式文件
                    String fullPath = "/" + fileName;
    
                    // 保证创建一个新文件
                    File file = new File(fullPath);
                    if (!file.getParentFile().exists()) { // 如果父目录不存在,创建父目录
                        file.getParentFile().mkdirs();
                    }
                    if (file.exists()) { // 如果已存在,删除旧文件
                        file.delete();
                    }
                    file.createNewFile();//创建新文件
    
                    //将字符串格式化为json格式
                    jsonString = jsonFormat(jsonString);
                    // 将格式化后的字符串写入文件
                    Writer write = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
                    write.write(jsonString);
                    write.flush();
                    write.close();
    
                    FileInputStream fis = new FileInputStream(file);
                    // 设置相关格式
                    response.setContentType("application/force-download");
                    // 设置下载后的文件名以及header
                    response.setHeader("Content-Disposition", "attachment;filename="
                            .concat(String.valueOf(URLEncoder.encode(fileName, "UTF-8"))));
                    response.setCharacterEncoding("utf-8");
                    // 创建输出对象
                    OutputStream os = response.getOutputStream();
                    // 常规操作
                    byte[] buf = new byte[1024];
                    int len = 0;
                    while((len = fis.read(buf)) != -1) {
                        os.write(buf, 0, len);
                    }
                    fis.close();
                    os.close();     //一定要记得关闭输出流,不然会继续写入返回实体模型
                    return resultModel;
                } catch (Exception e) {
                    resultModel.setStatusCode(0);
                    resultModel.setStatusMes(e.getMessage());
                    e.printStackTrace();
                    return resultModel;
                }
            }
        }
        //将字符串格式化为json格式的字符串
        public static String jsonFormat(String jsonString) {
            JSONObject object= JSONObject.parseObject(jsonString);
            jsonString = JSON.toJSONString(object, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteDateUseDateFormat);
            return jsonString;
        }
    }
    

    1. 启动项目,浏览器输入访问 http://localhost:8888/export/users 导出所有已有用户json文件
    输入
    json文件

    打开json文件查看格式是否正确
    json格式
    2. 浏览器输入访问 http://localhost:8888/ 批量导入用户
    导入 users.json 文件
    导入json文件
    输入地址,点击提交
    导入地址

    查看数据库,发现增加的两条测试用户1,2成功!
    数据结果

    导入导出单个用户这里就不测试了,更加简单,其他的关于springboot配置文件和实体类对应数据库信息也不详细说明了

    如果这篇文章对你有用的话能否点个♥(ˆ◡ˆԅ),谢谢宝贝❤

    展开全文
  • 引入的jar maven坐标(pom.xml ) <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.15</version> </dependency>...

    引入的jar maven坐标(pom.xml )

    	<dependency>
    		<groupId>org.apache.poi</groupId>
    		<artifactId>poi</artifactId>
    		<version>3.15</version>
    	</dependency>
    	<dependency>
    		<groupId>org.apache.poi</groupId>
    		<artifactId>poi-ooxml-schemas</artifactId>
    		<version>3.15</version>
    	</dependency>
    	<dependency>
    		<groupId>org.apache.poi</groupId>
    		<artifactId>poi-ooxml</artifactId>
    		<version>3.15</version>
    	</dependency>
    

    实现

    import com.synda.smp.log.entity.SyndaLog;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    
    import java.util.List;
    
    
    public interface LogService {
        XSSFWorkbook creatExcel(String fileName, List<SyndaLog> ids);
    }
    
    import com.synda.smp.log.entity.SyndaLog;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    import org.springframework.stereotype.Service;
    
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    import java.util.ArrayList;
    import java.util.List;
    
    @Service
    public class LogServiceImpl implements LogService{
    
    
        @Override
        public XSSFWorkbook creatExcel(String fileName, List<SyndaLog> list) {
            XSSFWorkbook sheets = new XSSFWorkbook();
            //创建一张表
            Sheet sheet = sheets.createSheet(fileName);
            //创建表头,创建第一行,起始为0
            Row titleRow =sheet.createRow(0);
            Class<SyndaLog> logClass=SyndaLog.class;
            Field[] declaredFields = logClass.getDeclaredFields();
            List<String> methodNames=new ArrayList<>();
            int cells=0;
            for (int i=0;i<declaredFields.length;i++){
                cells++;
                titleRow.createCell(i).setCellValue(declaredFields[i].getName());
                methodNames.add("get"+declaredFields[i].getName().substring(0,1).toUpperCase()+declaredFields[i].getName().substring(1));
            }
            int cell = 1;
            for (SyndaLog syndaLog : list) {
                //从第二行开始保存数据
                Row row = sheet.createRow(cell);
                for (int i=0;i<methodNames.size();i++){
                    Method method = null;
                    Object invokeValue =null;
                    try {
                        method = syndaLog.getClass().getMethod(methodNames.get(i));
                        invokeValue=method.invoke(syndaLog, new Object[0]);
                        String value=invokeValue.toString();
                        System.out.println(methodNames.get(i)+":"+value);
                        //将数据库的数据遍历出来
                        row.createCell(i).setCellValue(value);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                cell++;
            }
            return sheets;
        }
    }
    
    
    import com.synda.smp.log.repository.SyndaLogInterface;
    import com.synda.smp.log.service.LogService;
    import io.swagger.annotations.ApiParam;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.util.Assert;
    import org.springframework.web.bind.annotation.*;
    
    import javax.annotation.Resource;
    import javax.servlet.http.HttpServletResponse;
    import java.io.BufferedOutputStream;
    import java.io.OutputStream;
    import java.util.List;
    
    import com.synda.smp.log.entity.SyndaLog;
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * <p>
     *  控制器
     * </p>
     *
     * @author gdc
     * @since 2020-07-14
     */
    
    @RestController
    @RequestMapping("/log")
    public class SyndaLogController {
        @Autowired
        private LogService logService;
        @Resource
        private SyndaLogInterface repository;
    
        public void export(HttpServletResponse response,
                           @ApiParam(name = "ids", value = "需要导出的id集合", required = true)
                           @RequestParam(name = "ids")
                           String[] ids,
                           @ApiParam(name = "fileName", value = "导出文件名(无后缀)", required = true)
                           @RequestParam(name = "fileName")
                           String fileName){
            List<SyndaLog> syndaLogs = repository.findAllByIdInAndExportTagEquals(ids,0);
            String result=syndaLogs.size()>0?"result":null;
            Assert.notNull(result,"无数据导出");
            XSSFWorkbook sheets = logService.creatExcel(fileName,syndaLogs);
            this.setBrowser(response,sheets,fileName);
        }
        private  void setBrowser(HttpServletResponse response, XSSFWorkbook workbook, String fileName) {
            try {
                //清空response
                response.reset();
                //设置response的Header
                response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
                OutputStream os = new BufferedOutputStream(response.getOutputStream());
                response.setContentType("application/vnd.ms-excel;charset=gb2312");
                //将excel写入到输出流中
                workbook.write(os);
                os.flush();
                os.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
    
        }
    }
    
    展开全文
  • 基于SSM的excel表格数据导入导出数据库 SSM的坏境搭建暂不介绍 一、导入到数据库 1、首先在pom.xml文件中加入poi的maven坐标依赖 <!--poi--> <dependency> <groupId>org.apache.poi</...

    基于SSM的excel表格数据导入导出到数据库

    SSM的坏境搭建暂不介绍

    一、导入到数据库

    1、首先在pom.xml文件中加入poi的maven坐标依赖

    		<!--poi-->
    		<dependency>
    		  <groupId>org.apache.poi</groupId>
    		  <artifactId>poi</artifactId>
    		  <version>3.14</version>
    		</dependency>
    		<dependency>
    		  <groupId>org.apache.poi</groupId>
    		  <artifactId>poi-ooxml</artifactId>
    		  <version>3.14</version>
    		</dependency>
    

    2、加入读文件和读出文件的工具类

    package com.fg.utils;
    
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.List;
    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 org.springframework.web.multipart.MultipartFile;
    
    public class POIUtils {
        private final static String xls = "xls";
        private final static String xlsx = "xlsx";
        private final static String DATE_FORMAT = "yyyy/MM/dd";
        
        /**
         * 读入excel文件,解析后返回
         * @param file
         * @throws IOException
         */
        public static List<String[]> readExcel(MultipartFile file) throws IOException {
            //检查文件
            checkFile(file);
            //获得Workbook工作薄对象
            Workbook workbook = getWorkBook(file);
            //创建返回对象,把每行中的值作为一个数组,所有行作为一个集合返回
            List<String[]> list = new ArrayList<String[]>();
            if(workbook != null){
                for(int sheetNum = 0;sheetNum < workbook.getNumberOfSheets();sheetNum++){
                    //获得当前sheet工作表
                    Sheet sheet = workbook.getSheetAt(sheetNum);
                    if(sheet == null){
                        continue;
                    }
                    //获得当前sheet的开始行
                    int firstRowNum  = sheet.getFirstRowNum();
                    //获得当前sheet的结束行
                    int lastRowNum = sheet.getLastRowNum();
                    //循环除了第一行的所有行
                    for(int rowNum = firstRowNum+1;rowNum <= lastRowNum;rowNum++){
                        //获得当前行
                        Row row = sheet.getRow(rowNum);
                        if(row == null){
                            continue;
                        }
                        //获得当前行的开始列
                        int firstCellNum = row.getFirstCellNum();
                        //获得当前行的列数
                        int lastCellNum = row.getPhysicalNumberOfCells();
                        String[] cells = new String[row.getPhysicalNumberOfCells()];
                        //循环当前行
                        for(int cellNum = firstCellNum; cellNum < lastCellNum;cellNum++){
                            Cell cell = row.getCell(cellNum);
                            cells[cellNum] = getCellValue(cell);
                        }
                        list.add(cells);
                    }
                }
                workbook.close();
            }
            return list;
        }
    
        //校验文件是否合法
        public static void checkFile(MultipartFile file) throws IOException{
            //判断文件是否存在
            if(null == file){
                throw new FileNotFoundException("文件不存在!");
            }
            //获得文件名
            String fileName = file.getOriginalFilename();
            //判断文件是否是excel文件
            if(!fileName.endsWith(xls) && !fileName.endsWith(xlsx)){
                throw new IOException(fileName + "不是excel文件");
            }
        }
        
        public static Workbook getWorkBook(MultipartFile file) {
            //获得文件名
            String fileName = file.getOriginalFilename();
    //        //System.out.println(fileName);
            //创建Workbook工作薄对象,表示整个excel
            Workbook workbook = null;
            try {
                //获取excel文件的io流
                InputStream is = file.getInputStream();
    //            //System.out.println(is);
                //根据文件后缀名不同(xls和xlsx)获得不同的Workbook实现类对象
                if(fileName.endsWith(xls)){
                    //2003
                    workbook = new HSSFWorkbook(is);
                }else if(fileName.endsWith(xlsx)){
                    //2007
                    workbook = new XSSFWorkbook(is);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return workbook;
        }
        
        public static String getCellValue(Cell cell){
            String cellValue = "";
            if(cell == null){
                return cellValue;
            }
            //如果当前单元格内容为日期类型,需要特殊处理
            String dataFormatString = cell.getCellStyle().getDataFormatString();
            if(dataFormatString.equals("m/d/yy")){
                cellValue = new SimpleDateFormat(DATE_FORMAT).format(cell.getDateCellValue());
                return cellValue;
            }
            //把数字当成String来读,避免出现1读成1.0的情况
            if(cell.getCellType() == Cell.CELL_TYPE_NUMERIC){
                cell.setCellType(Cell.CELL_TYPE_STRING);
            }
            //判断数据的类型
            switch (cell.getCellType()){
                case Cell.CELL_TYPE_NUMERIC: //数字
                    cellValue = String.valueOf(cell.getNumericCellValue());
                    break;
                case Cell.CELL_TYPE_STRING: //字符串
                    cellValue = String.valueOf(cell.getStringCellValue());
                    break;
                case Cell.CELL_TYPE_BOOLEAN: //Boolean
                    cellValue = String.valueOf(cell.getBooleanCellValue());
                    break;
                case Cell.CELL_TYPE_FORMULA: //公式
                    cellValue = String.valueOf(cell.getCellFormula());
                    break;
                case Cell.CELL_TYPE_BLANK: //空值
                    cellValue = "";
                    break;
                case Cell.CELL_TYPE_ERROR: //故障
                    cellValue = "非法字符";
                    break;
                default:
                    cellValue = "未知类型";
                    break;
            }
            return cellValue;
        }
    }
    
    

    3、控制器类实现

        /**
    	 * 读取excel文件
    	 * @param excelFile
    	 * @return
    	 */
    	@RequestMapping(value ="/read" , method = RequestMethod.POST) 
    	public String  upload(@RequestParam(value ="excelFile",required= false) MultipartFile excelFile){			
    		List<String[]> lists;
    		try {
    			lists = POIUtils.readExcel(excelFile);
    //			//System.out.println(lists);
    			// 把List<String[]> 数据转换成 List<OrderSetting>数据
    	        List<User> user = new ArrayList<>();
    	        for (String[] str : lists) {
    	          //根据具体实体类添加字段
    				User user1 = new User();
    				user1.setId(str[0]);
    				user1.setName(str[1]);
    				user1.setAge(str[2]);
    				user.add(user1);
    			}
    	        userInfoService.add(user);
    	        return "success"; //返回成功视图
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    			 return "shibai";//返回失败视图
    		}	
    	}
    

    4、service层调用dao层循环进行数据的插入
    5、dao层基于注解或者其他方式连接数据库,插入数据

    二、从数据库里面导出数据

    1、控制器类书写

    /**
    	 * 导出
    	 * @param response
    	 * @return
    	 */
    	@RequestMapping(value="/download_excel")    
    	//获取url链接上的参数
    	public @ResponseBody String dowm(HttpServletResponse response){
    	     response.setContentType("application/binary;charset=UTF-8");
    	              try{
    	                  ServletOutputStream out=response.getOutputStream();
    	                  try {
    	                      //设置文件头:最后一个参数是设置下载文件名
    	                      response.setHeader("Content-Disposition", "attachment;fileName=" + 
    	                      URLEncoder.encode("学生信息表.xls", "UTF-8"));//生成表名
    	                  } catch (UnsupportedEncodingException e1) {
    	                      e1.printStackTrace();
    	                  }
    	                  String[] titles = { "用户id", "用户姓名", "用户年龄" }; 
    	                  userInfoService.export(titles, out);      
    	                  return "success";
    	              } catch(Exception e){
    	                  e.printStackTrace();
    	                  return "导出信息失败";
    	              }
    	    }
    

    2、service实现类的编写

    /**
    	 * 导出信息
    	 * @param titles
    	 * @param out
    	 * @throws Exception
    	 */
    	@SuppressWarnings("resource")
    	public void export(String[] titles, ServletOutputStream out) throws Exception{
    		try{
    	         // 第一步,创建一个workbook,对应一个Excel文件	      
    			 HSSFWorkbook workbook = new HSSFWorkbook();
    	         // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
    	         HSSFSheet hssfSheet = workbook.createSheet("sheet1");
    	         // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short     
    	         HSSFRow row = hssfSheet.createRow(0);
    	         // 第四步,创建单元格,并设置值表头 设置表头居中
    	         HSSFCellStyle hssfCellStyle = workbook.createCellStyle();
    	         //居中样式
    	         hssfCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
    	         HSSFCell hssfCell = null;
    	          for (int i = 0; i < titles.length; i++) {
    	             hssfCell = row.createCell(i);//列索引从0开始
    	             hssfCell.setCellValue(titles[i]);//列名1
    	             hssfCell.setCellStyle(hssfCellStyle);//列居中显示                
    	            }
    	             ArrayList<User> list = userInfoDao.findAll();
    	             for (int i = 0; i < list.size(); i++) {
    	                  row = hssfSheet.createRow(i+1);                
    	                  User user = list.get(i);
    	                  // 第六步,创建单元格,并设置值
    	                  String  id = null;
    	                 if(user.getId() != null){
    	                     id = user.getId();
    	                 }
    	                 row.createCell(0).setCellValue(id);
    	                 String name = "";
    	                 if(user.getName() != null){
    	                     name = user.getName();
    	                 }
    	                 row.createCell(1).setCellValue(name);
    	                 String age = "";            
    	                 if(user.getAge()!= null){
    	                     age = user.getAge();
    	                 }
    	                 row.createCell(2).setCellValue(age);  
    	                }
    	                 // 第七步,将文件输出到客户端浏览器
    	              try {
    	                 workbook.write(out);
    	                 out.flush();
    	                 out.close();   
    	               }catch (Exception e) {
    	                 e.printStackTrace();
    	             }
    	           }catch(Exception e){
    	             e.printStackTrace();
    	            throw new Exception("导出信息失败!");	        
    	         }
    	     }
    

    以上代码是实现excel表格数据导入导出到数据库的主要代码,欢迎大家学习

    展开全文
  • 全世界78707个主要城市信息MYSQL数据库,包含经纬度坐标值,已经导出成了SQL文件,因为比较大,有10M,所以这里单独导出来,供升级失败的同学手工导入,如图:   这个数据主要是用于天气预报插件的,天气...

    全世界78707个主要城市信息MYSQL数据库,包含经纬度坐标值,已经导出成了SQL文件,因为比较大,有10M,所以这里单独导出来,供升级失败的同学手工导入,如图:

    全球78707个主要城市数据

     

    这个数据主要是用于天气预报插件的,天气预报插件,需要首先从这个库里面,查询城市的ID,在把ID传给接口,返回天气预报数据。

     

    下载请到 :http://blog.erdaicms.com

    展开全文
  • 1 按照插件2 数据库导出插件CREATEEXTENSIONpostgis;CREATEEXTENSIONpostgis_topology;3 更具经度纬度创建 坐标字段update compass_hospital set coords = st_point( new.longitude , new.latitude) WHERE id = new....
  • 1. 数据库说明本产品以数据库的形式记录中国大陆地区的移动通信基站编码和与之对应的经纬度坐标以及中文描述的地址信息,用户可以使用本数据库通过基站编码查询该基站所处的位置。2. 数据库安装2.1 导入MySQL数据库...
  • 读取移动端存入数据库的...程序为mysql数据库,location.sql为数据库导出文件 数据库连接信息见BaiduMap\src\com\pandora\db\SqlConnection.java 运行环境:tomcat6.0/mysql5.6 编译工具:Eclipse 编码类型:utf8
  • 程序为mysql数据库,location.sql为数据库导出文件数据库连接信息见BaiduMap\src\com\pandora\db\SqlConnection.java运行环境:tomcat6.0/mysql5.6编译工具:Eclipse编码类型:utf8【实例截图】【核心代码】8d5917aa...
  • 点击查看arcgis连接到数据库失败,常规功能故障具体信息答:解决方法: 1.新建空白地图文档,给整个数据框定义上目标...导出点数据,选择与...答:数据量太大了吧,试试导入少量数据试试 http://forums.esri.com/T...
  • **注:**表格请保存成xls格式,如果保存成xlsx格式,会因为表格格式太新导致Arcgis显示未能注册数据库连接。 2.Arcgis处理数据 选择投影坐标系,此处根据坐标大致推算出处于3度带的第40度带,带号中心的经度是120...
  • PostGIS导入导出ESRI Shapefile数据

    千次阅读 2017-02-13 11:29:27
    PostGIS作为PostgreSQL数据库的空间扩展,提供了对空间数据管理的支持。对于空间矢量数据,PostGIS提供了Geometry和Geography俩种类型用于空间对象的存储,Geometry使用笛卡尔坐标系,而Geography使用球面坐标系...
  • 这里介绍如何导入我们常用的ESRIShapefile数据到PostgreSQL数据库中,我们可以使用PostGIS提供的shp2pgsql和pgsql2shp工具进行导入和导出操作,还可以使用GDAL库提供的ogr2ogr工具,ogr2ogr工具支持更加多样的数据...
  • 我认为坐标系转换不过就是把不同的坐标系对上,不需要什么精度,什么七参数、五参数WGS84转2000,先添加一个2000的数据,比如100万基础地理数据再添加一个84的,把84的数据导出。选择第二个,数据框的坐标系或者在...
  • SpringBoot中POI 导入 导出

    千次阅读 2019-03-26 14:58:18
    1 、导出数据----将数据库中的数据进行备份 2 、导入数据----将excel中的数据批量导入数据库 基于maven坐标导入POI支持 <!-- excel2003使用的包 --> <dependency> <groupId>...
  • 公司碰到了一个数据迁移业务,就是把客户平台的GPS坐标迁移到自己平台,自己平台使用的是百度坐标,这就需要转换了,我是将客户公司的gps经纬度字段以及主键id导出为csv文件,这个csv文件每行三个字段,写一个脚本...
  • 坐标计算VBA4.9

    2013-07-30 21:41:52
    适用于公路、铁路等线形计算,程序主要包括(交点法、线元法坐标正反算,竖曲线计算,平面控制网“导线、高程”平差,曲线超高加宽、计算工具箱等,还可以生成5800、9750数据库,其中包括:隧道超欠挖、交点法、线元...
  • 全世界78707个主要城市信息数据库,包含经纬度坐标值 全世界78707个主要城市信息MYSQL数据库,包含经纬度坐标值,已经导出成了SQL文件,因为比较大,有10M,所以这里单独导出来,供升级失败的同学手工导入,如图: ...
  • 1.首先将需要附坐标的JPG图片在arcgis内进行地理配准;...3.将空间参考设置为-数据框(当前),格式设置为-TIFF(注意输出位置需要是文件夹,选到数据库是无法改变格式的); 4.保存,即可得到带坐标的图片 ...
  • 线,面对象的节点坐标通常精确到小数点后面12-16位当把线,面数据集导出成CSV文件,数据格式为WKT串的时候,存空间节点信息的那一个列数据量会很大,如果想把数据存在数据库里面非常影响数据库的读写效率。...
  • EXCEL 导入导出

    2008-10-25 13:14:00
    EXCEL的导入导出的方法有很多种,常见的有CSV(不需要COM组件,直接把EXCEL当作一个数据库,特点是执行效率较高,缺点是:不能灵活的修改,如果客户需要改动输出以后的EXCEL文件,他需要修改大量的代码),DTS 填充CELL的办法...
  • 用于大批量读取3DS 文件中的偏移坐标,可以用于地图文件的加载使用,并导出为TXT文本数据列表格式,或者是支持ACCESS 数据库的 MDB 数据格式
  • 功能主要是通过导入excel生成坐标,在把生成好的坐标导出excel 写这个功能之前应为公司要做离线地图,要把所有的企业标记在地图上,库里有好几万家企业,没有坐标,最笨的方法就是一个一个查,在一个一个更新,那...
  • 适用于公路、铁路等线形计算,程序主要包括(交点法、线元法坐标正反算,竖曲线计算,平面控制网“导线、高程”平差,曲线超高加宽、计算工具箱等,还可以生成5800、9750数据库,其中包括:隧道超欠挖、交点法、线元...
  • POI+Maven实现数据导出到Excel

    千次阅读 2017-03-23 15:43:48
    关于poi的使用将数据库中的数据导出到Excel中详解1.首先要导入poi的maven坐标 <groupId>org.apache.poi <artifactId>poi <version>3.14 2.使用工具类进行下载封装,并且完成
  • 一般地,将其导出Shp文件再导入地理数据库可解决此问题,但这是为什么呢?阅读完本文,你将得到答案。 官方帮助 官方帮助通常才是最好的老师! ESRI的官方文档更是强大到"令人发指",不是国产软件能比拟的。关于...
  • 搜索 139第7章 链接、导入和导出表 1417.1 从其他应用或者向其他应用移动数据 1417.2 理解Access如何处理其他数据库文件 格式的表 1427.2.1 识别PC数据库文件格式 1437.2.2 链接和导入外部 ISAM表 1437.2.3 用ODBC...
  • 搜索 139第7章 链接、导入和导出表 1417.1 从其他应用或者向其他应用移动数据 1417.2 理解Access如何处理其他数据库文件 格式的表 1427.2.1 识别PC数据库文件格式 1437.2.2 链接和导入外部 ISAM表 1437.2.3 用ODBC...
  • Access 2000数据库系统设计(PDF)---031目 录译者序前言第一部分 Access基础第1章 Access 2000的新增功能 11.1 Access 2000透视 11.2 用Office Web组件部署数据访问页 21.2.1 Office Web 组件 21.2.2 DAP演示测试....

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 205
精华内容 82
关键字:

数据库导出坐标