精华内容
下载资源
问答
  • Excel信息导入

    2009-01-07 11:20:00
    string XLS_Path="";... JScript.Alert("人员信息导入成功");  }  }  else  {  Response.Write("<script language=javascript>alert('请选择文件后再上传!!!');</script>");  return;  }

    string XLS_Path="";
            string fileExtName = "";
            string XLS_Name = "";
            if (File1.PostedFile.ContentLength > 0)
            {

                XLS_Path = File1.PostedFile.FileName;
                XLS_Name = XLS_Path.Substring(File1.PostedFile.FileName.LastIndexOf("//")).Replace("//", "").Replace(XLS_Path.Substring(File1.PostedFile.FileName.LastIndexOf(".")), "");
                fileExtName = File1.PostedFile.FileName.Substring(File1.PostedFile.FileName.LastIndexOf("."));

                string fullName = Server.MapPath("../Employee/FJ/") + XLS_Name + fileExtName;
                string originalCategory = fullName.Substring(0, fullName.LastIndexOf(@"/"));
                if (!Directory.Exists(originalCategory))
                {
                    Directory.CreateDirectory(originalCategory);
                }

                File1.PostedFile.SaveAs(Server.MapPath("../Employee/FJ/") + XLS_Name + fileExtName);
                XLS_Path = Server.MapPath("../Employee/FJ/") + XLS_Name + fileExtName;

                string ConStr = System.Configuration.ConfigurationManager.AppSettings["ConnString"];
                SqlConnection Conn = new SqlConnection(ConStr);
                string mystring = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + XLS_Path + ";Extended Properties=Excel 8.0";
                OleDbConnection cnnxls = new OleDbConnection(mystring);
                OleDbDataAdapter myDa = new OleDbDataAdapter("select * from [" + XLS_Name + "$]", cnnxls);//Sheet1
                DataSet myDs = new DataSet();
                try
                {
                    myDa.Fill(myDs);
                }
                catch
                {
                    Response.Write("<script language=javascript>alert('数据导入失败,请检查Excel文档!');</script>");
                    return;
                }

                HttpContext.Current.Session["Ds"] = myDs;

                File.Delete(XLS_Path);

                if (myDs.Tables[0].Rows.Count <= 0)
                {
                    Response.Write("<script language=javascript>alert('文件中可能没有数据,请检查后重新导入!');</script>");
                    return;
                }
                else
                {
                    for (int i = 0; i < myDs.Tables[0].Rows.Count; i++)
                    {
                        //数据操作
                        model.XM = myDs.Tables[0].Rows[i]["姓名"].ToString().Trim();
                        //... ...
                    }
                    JScript.Alert("人员信息导入成功");
                }
            }
            else
            {
                Response.Write("<script language=javascript>alert('请选择文件后再上传!!!');</script>");
                return;
            }

    展开全文
  • excel信息导入到MySql

    2009-05-20 13:45:53
    J2EE常用技术,将excel信息导入到MySql
  • 带有图片的Excel信息导入

    千次阅读 2019-05-10 14:10:16
    /** * 获取图片保存后的路径 * @param sheet * @param request * @return */ public static Map, String> getPictures(XSSFSheet sheet,HttpServletRequest request){ Map, String> map = new HashMap();...
     
    ```/**
         * 获取图片保存后的路径
         * @param sheet
         * @param request
         * @return
         */
        public static Map<String, String> getPictures(XSSFSheet sheet,HttpServletRequest request){
            Map<String, String> map = new HashMap<>();
            List<POIXMLDocumentPart> list = sheet.getRelations();
            for(POIXMLDocumentPart part:list){
                if(part instanceof XSSFDrawing){
                    XSSFDrawing drawing = (XSSFDrawing) part;
                    List<XSSFShape> shapes = drawing.getShapes();
                    for(XSSFShape shape:shapes){
                        XSSFPicture picture = (XSSFPicture) shape;
                        XSSFClientAnchor anchor = picture.getPreferredSize();
                        CTMarker marker = anchor.getFrom();
                        //获取图片所在行列
                        String key = marker.getRow() + "-" + marker.getCol();
                        //上图图片至服务器,返回路径
                       String path = uploadPicture(key,picture.getPictureData(),request);
                       map.put(key,path);
                    }
                }
            }
            return map;
        }
    
        /**
         * 保存图片至服务器
         * @param str
         * @param pictureData
         * @param request
         * @return
         */
        public static String uploadPicture(String str,PictureData pictureData,HttpServletRequest request){
            //获取服务器路径
            String savePath = request.getSession().getServletContext().getRealPath("");
            String dateDir = new SimpleDateFormat("yyMMdd").format(new Date());
            // 获取图片格式
            String ext = pictureData.suggestFileExtension();
            //设置保存目录
            String uuid = UUID.randomUUID().toString().replace("-", "");
            String fileName = uuid + str.replace("-","");
            File fileDir = new File(savePath + PIC_PATH + dateDir);
            if (!fileDir.exists()) {
                fileDir.mkdirs();
            }
            //设置保存路径
            String filePath = savePath + PIC_PATH + dateDir + File.separator +fileName + "." + ext;
            //设置生成缩略图路径
            String smallFilePath = savePath + PIC_PATH + dateDir + File.separator +fileName + "_80_80" + "." + ext;
            //将图片转为字节数组
            byte[] data = pictureData.getData();
            try {
                BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(new File(filePath)));
                stream.write(data);
                stream.close();
                //生成缩略图方法
                createThumbnails(filePath, 80, 80, smallFilePath);
            } catch (Exception e) {
                e.printStackTrace();
            }
            String relativePath = PIC_PATH + dateDir + File.separator +fileName + "." + ext;
            return relativePath;
        }
    
    }
    
    
    展开全文
  • Excel数据导入功能

    2015-08-07 19:45:09
    在项目中有个导入功能:导入学生信息;导入班级信息:导入教学楼信息等,实现Excel信息导入,能达到事半功倍的效果哦
  • Excel数据导入SQL工具

    2012-07-05 17:44:29
    Excel信息导入像对应的数据库表中,在工具上可以更详细的了解传入sql数据库的基本信息
  • Excel导入

    2021-05-27 08:05:21
    *Excel导入 跟 导出Excel相反,导出Excel需要用代码创建表头样式,Excel导入不需要用代码创建样式,在Excel文件里面有需要的信息,格式相对应就可以导入Excel导入的步骤 1、下载模板,模板有开发者决定 2、用户...

    *数据是表格的形式,进常用到Excel
    *在程序中经常可以看到有导出Excel文档,Excel导入数据的情况,现在我就说一下我学到的Excel导入
    *Excel导入 跟 导出Excel相反,导出Excel需要用代码创建表头样式,Excel导入不需要用代码创建样式,在Excel文件里面有需要的信息,格式相对应就可以导入了
    Excel导入的步骤
    1、下载模板,模板有开发者决定 2、用户根据模板填写数据 3、用户上传数据 导入数据
    导入部分的思路1、获取上传的文件 2、把文件转换为二进制数组 3、把二进制数组转换成内存流 4、利用NPOI把内存流中的数据读取成Excel 5、使用NPOI读取数据

    在 Visual studio 2015 里面写Excel导入首先要在页面写一个Excel导入的按钮,然后在写它的布局
    1、在视图(页面)上写一个按钮,跟模板
    看图1
    在这里插入图片描述

    2、功能:点击按钮弹出模板
    看图1·1
    在这里插入图片描述

    一、在视图上写方法
    1-1、弹出导入模态框(打开模态框前先重置表单,再打开)
    1-2、点击下载Excel文档(在Excel文档里面根据要求填写想要的信息)
    1-3、选择到你下载的Excel文档,然后点击上传
    (方法看图2)
    !在这里插入图片描述

    二、控制器写内容
    点击下载-获取Excel文档
    2-1、获取模板文件的路径 相对路径转化为绝对路径
    2-2、判断模板是否存在
    看图3

    在这里插入图片描述

    三、点击上传-保存数据
    3-1、判断文件的后缀名,没有则提醒
    3-2、判断文件的类型(忽略大小写),没有则提醒
    3-3、声明一个根文件大小的二进制数组,并将上传的文件转化为二进制数组,再把二进制数组转化为内存流,最后将内存流转化为工作簿
    3-4、判断工作簿是否存在,没有则提醒
    3-5、获取工作簿里面的第一个工作表、判断工作表里是否存在行,有则将数据保存到DataTable中(自己定义DataTable),获取工作表里的列数、获取工作表里的行数
    看图4
    在这里插入图片描述

    3-6、在DataTable创建列
    图5

    在这里插入图片描述

    3-7、通过遍历行中的每一个单元格,获取标题行各个单元格的数据,把列添加到DataTable中
    3-8、读取Excel中的数据,获取Excel中的行,在DataTable中创建一行,遍历Excel行中列的数据,将每一行的数据添加到DataTable中
    3-9、清除DataTable中的空行
    四、查询数据
    4-1、查询出所有客户leixing (用于后面判断导入的数据的准确性)
    4-2、查询出所有地区leixing (用于后面判断导入的数据的准确性)
    4-3、查询出所有经办人leixing (用于后面判断导入的数据的准确性)
    4-4、查询出所有的客户信息 包括数据库和添加的 --用于判断客户是否重复
    看图6
    在这里插入图片描述

    五、将dataTable中的数据转换为List
    5-1、定义存放容器(用于保存新增的数据)
    5-2、 //遍历datatable中的数据
    5-3、//创建一个表(S_Product)实例保存一条用户数据
    5-4、1-客户编号(必填)、2-客户名称等验证(必须写)
    看图7
    在这里插入图片描述

    图8
    在这里插入图片描述

    六、进行数据保存
    6-1、遍历新增的数据
    6-2、保存导入的数据到数据库
    6-3、提交事务,失败则提醒
    图9
    在这里插入图片描述

    七、(看图片)、该图片都是判断没通过的提醒
    图10
    在这里插入图片描述

    八、去除DataTable里面的空行
    8-1、创建一个存放需要移除的DataRow空行的表
    8-2、遍历所有行的数据,是否有空
    8-3、遍历所有列的数据,是否有空
    8-4、如果是空行,添加到removeList
    8-5、移除掉空行
    图11
    在这里插入图片描述

    【流:】
    是指程序(计算机)读取文件的方式,程序(计算机)读取文件就像抽水一样,慢慢的把它抽取出来(读取大量数据都是用流的方式来读取),把文件当做一个水池,把文件里面的数据(字符串、二进制数组)当做水。
    文件流:在程序读取文件时,文件的数据流向程序
    内存流 :程序通过留的形式把内容输送到内存里存放
    程序需要用到数据的时候,再从内存里面取出来用,可以通过留的形式把内容从内存中读取出来使用。
    看图片
    在这里插入图片描述

    这是我所学到的Models引用步骤,所以我要分享给你们,希望可以帮助到你们。
    以上就是我的分享,请多多指教。如果有更好的方法或不懂得地方欢迎在评论区教导以上就是我的分享,请多多指教。如果有更好的方法或不懂得地方欢迎在评论区教导和提问!

    展开全文
  • java解析Excel/导入信息Excel

    千次阅读 2019-05-23 15:12:35
    最近一直在负责公司某一个项目的Excel导入导出功能,前前后后改了更多需求,需求的改动当然带来功能的改动,功能的改动肯定会带来许多问题。所幸,这些问题都被我一一攻破了。       &...
    一、话题背景

           最近一直在负责公司某一个项目的Excel导入导出功能,前前后后改了更多需求,需求的改动当然带来功能的改动,功能的改动肯定会带来许多问题。所幸,这些问题都被我一一攻破了。
           正所谓前事不忘,后事之师。解决了一些难题以后,应该及时回头寻找得失、汲取教训、总结经验,只有这样,下一次遇到类似的问题的时候,方能成竹在胸,有“法”可依,而不至于手足无措,方寸大乱。

    二、功能需求
    1. Excel模板下载

    2. 从Excel模板文件导入信息

    3. 将信息导出到Excel模板

      • 锁定导出Excel文件的某些列(设置密码),禁止用户擅自更改信息,破坏数据完整性(相当于Excel里面的: 审阅---->保护工作表)
      • 设置Excel模板样式(行高/列宽/字体大小等等)
    三、依赖jar包

    poi:Apache的poi 3.7版本(请自行下载,我这里不能上传了,上传的时候提示:该资源已经存在)
    lang3:点我跳转

    四、技术实现
    4.1、模板下载方法

            4.1.2 控制器方法ModelAndView :

           /**
         * 下载房源批量导入模版
         */
        @RequestMapping("usersExportExcel")
        public ModelAndView dowloadModel(ModelMap map, HttpServletRequest request, HttpServletResponse response) throws Exception {
    
            DownloadExcelModelUtil excelModelUtil = new DownloadExcelModelUtil();
            ExcelFileName excelFileName = new ExcelFileName();
            //指定系统中已经存在的模板文件(下面文件名中的敏感信息已经被我xxx代替了,请修改为你的文件名)
            excelFileName.setModelFileName("xxxInfoModel.xls");
            //设置Excel文件名
            excelFileName.setOutFileName("xxx信息导入模版");
            //设置导出的Excel表格Sheet文件名
            excelFileName.setSheetName("xxx信息导入模版");
            return excelModelUtil.DowloadModel(map, request, response, excelFileName);
        }
    

            4.1.2、excelModelUtil方法:

     /**
     * FileName: utilForExportExcel
     * Author:   wxz
     * Date:     2019-04-22 15:23
     * Description: 模板下载工具
     * History:
     * <author>          <time>          <version>          <desc>
     * 作者姓名:wxz       修改时间:       版本号:           描述:
     */
    
    import com.gxhylc.utils.CommonUtils;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.springframework.ui.ModelMap;
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.view.document.AbstractExcelView;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.FileInputStream;
    import java.io.OutputStream;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * 〈一句话功能简述〉<br> 
     * 〈模板下载工具〉
     *
     * @author wxz
     * @create 2019-04-22
     * @since 1.0.0
     */
    public class DownloadExcelModelUtil {
    
        /**
         * 模板下载工具
         * @param map
         * @param request
         * @param response
         * @param excelFileName
         * @return
         * @throws Exception
         */
        public ModelAndView DowloadModel(ModelMap map, HttpServletRequest request, HttpServletResponse response ,ExcelFileName excelFileName)
                throws Exception {
            //建立输入流
            String root = request.getSession().getServletContext().getRealPath("/");
            //指定文件所在位置
            FileInputStream fileSrc = new FileInputStream(root + "s/assets/room/model/"+excelFileName.getModelFileName());
            //建立excel对象
            HSSFWorkbook workbook = new HSSFWorkbook(fileSrc);
            HSSFSheet sheet = workbook.createSheet(excelFileName.getSheetName());
            sheet.setDefaultColumnWidth(20);
            ViewExcel view = new ViewExcel();
            Map<String,Object> file = new HashMap<>();
            file.put("outFileName",excelFileName.getOutFileName());
            view.buildExcelDocument(file, workbook, request, response);
            //关闭输入输出流
            fileSrc.close();
            return new ModelAndView(view, map);
        }
    
        private class ViewExcel extends AbstractExcelView{
            @Override
            protected void buildExcelDocument (Map<String, Object> model, HSSFWorkbook workbook, HttpServletRequest request,
                                              HttpServletResponse response) throws Exception {
                SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmm");
                String filename = model.get("outFileName") + format.format(new Date(System.currentTimeMillis())) + ".xls";
    
                filename = CommonUtils.encodeFilename(filename, request);
                response.setContentType("application/vnd.ms-excel");
                response.setHeader("Content-disposition", "attachment;filename=" + filename);
                OutputStream out = response.getOutputStream();
                workbook.write(out);
                out.flush();
                out.close();
            }
        }
    
    }
    

    备注:一下是我的文件放置位置,不知道如何寻找文件的童鞋请依样画葫芦
    在这里插入图片描述

            4.1.3、excelModelUtil方法依赖的工具 CommonUtils:

    public class CommonUtils {
         public static String encodeFilename(String filename, HttpServletRequest request) throws Exception
        {    
    		String agent = request.getHeader("USER-AGENT");    
    		if ((agent != null) && (-1 != agent.indexOf("MSIE")))
    		{    
    		      String newFileName = URLEncoder.encode(filename, "UTF-8");    
    		      //StringUtils工具在上面提供的lang3包里面,请自行下载.如果在使用的过程中有任何问题,欢迎留言
    		      newFileName = StringUtils.replace(newFileName, "+", "%20");    
    		      
    		      if (newFileName.length() > 150)
    		      {    
    		    	  newFileName = new String(filename.getBytes("GB2312"), "ISO8859-1");    
    		    	  newFileName = StringUtils.replace(newFileName, " ", "%20");    
    		      }    
    		      
    		      return newFileName;    
    		}   
      
    		if ((agent != null) && (-1 != agent.indexOf("Mozilla")))    
    			return MimeUtility.encodeText(filename, "UTF-8", "B");    
    		
    		return filename;  
        }
        }
    

    以上就是 模板下载的方法,只要前台访问这个方法,就会下载Excel文件

    4.2 从Excel模板中导入信息

            4.2.1 、前台方法

                   4.2.1.1、上传文件jq依赖:

    
    <script src="${ctx}/s/assets/plugins/chineserp-jquery-master/src/jquery.regionpicker.js"></script>
    <link rel="stylesheet"
          href="${ctx}/s/assets/plugins/chineserp-jquery-master/dist/jquery.chineserp.css"
          media="screen">
    <link rel="stylesheet" href="${ctx}/s/assets/plugins/jquery-file-upload/css/jquery.fileupload-ui.css">
    
    <script src="${ctx}/s/assets/plugins/jquery-file-upload/js/jquery.fileupload.js" language="javascript"
            type="text/javascript"></script>
    

                   4.2.1.2、模态框代码:

    <%--导入房间model价格--%>
       <div class="modal fade" id="myModalPrice${item.jgId}" tabindex="-1" data-show="true" role="dialog"
              aria-labelledby="myModalLabel">
             <div class="modal-dialog" role="document">
                 <div class="modal-content">
                     <div class="modal-header">
                         <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                             <span aria-hidden="true">&times;</span></button>
                         <h4 class="modal-title center" id="uploadRoomsPrice">房源价格导入</h4>
                     </div>
                     <div class="modal-body">
                         <div class="col-md-6">
                             <div class="col-md-6 fileinput-button">
    							<span class="fileinput-button">
    								<a class="btn green" href="">
    									<i class="fa fa-upload"></i> 从excel中导入房间价格
    								</a>
    									   <!---这个自定义属性data-url就是你访问控制器下载模板文件的地址,我这里已经修改了关键信息,请你修改为你自己的地址-->
    								<input type="file" id="jfile2" class="jfile" name="file"
                                              data-url="xxx/usersExportExcel.do"
                                              multiple="" accept="application/vnd.ms-excel">
    							</span>
                              </div>
                     <div class="modal-footer">
                         <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
                     </div>
                 </div>
             </div>
         </div>
    

            4.2.1.3、上传Excel文件的jq代码:

       $(function () {
            //开启控件文件上传功能
            $('.jfile').each(function () {
                $(this).fileupload({
                    progress: function (e, data) {
                        $('#myModal${item.jgId}').modal('hide');
                        var tip = result.result.result;
                        alert(tip);
                    },
                    done: function (e, result) {
                        $('#myModal${item.jgId}').modal('hide');
                        var tip = result.result.result;
                        alert(tip);
                    }
                });
            });
        });
    

           4.2.1.4、效果图:

    在这里插入图片描述

            4.2.2 后台解析上传的Excel文件

                   4.2.2.1、解析Excel控制器:

            /**
         * 实现批量导入房源信息
         */
        @RequestMapping("usersExportExcel")
        @ResponseBody
        public Map importExcel(@RequestParam(value = "file", required = false) MultipartFile dataFile,
                               @RequestParam Map<String, Object> parameterMap, RedirectAttributes redirectAttributes) throws Exception {
            Map response = new HashMap();
            List<Map<String, String>> result = null;
            String uploadFileFileName = dataFile.getOriginalFilename();
    
            String party_id = parameterMap.get("party_id") + "";
            logger.info("机构id为:" + party_id);
    
            String type = uploadFileFileName.substring(uploadFileFileName.lastIndexOf("."));
            InputStream in = dataFile.getInputStream();
    
            Long count = 0L;
            String temp_obj = null;
    
            SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
            //这个就是把时间戳经过处理得到期望格式的时间
            String batch_sign = format.format(System.currentTimeMillis());
                  //机构id不为空才能导入
            if (!"".equals(party_id)) {
                try {
                    result = getResult(type, in);
                    TXtJg item = this.gettXtJg(party_id);
                    Room room;
                    for (Map<String, String> map : result) {
                        if (map.isEmpty()) {
                            continue;
                        }
                        System.out.println("解析表格得到的数据:" + map);
    
    					//取出map里面的数据
                        temp_obj = replaceBlank(map.get("名字"));
                        if ("".equals(temp_obj)) {
                            continue;
                        }
                        else {
                           //得到数据,存入实体属性
                           room.setName();
                        }
    					//取出map里面的数据
                        temp_obj = replaceBlank(map.get("号码"));
                        if ("".equals(temp_obj)) {
                            continue;
                        }
                        else {
                           //得到数据,存入实体属性
                           room.setNo();
                        }
                        //.....
                        //调用保存方法
    
    					//清除result
                        result.clear();
    	                result = null;
    	                in.close();
    	                response.put("result", "导入成功,共导入 " + count + " 条数据,请刷新页面进行查看!");
                         }
                      } catch (Exception e) {
    	                e.printStackTrace();
    	                in.close();
    	                response = responeError(count);
    				  }
    		 }else {
    		            logger.info("party_id为空");
    		            response.put("result", "发生异常,导入数据失败");
    				}
    		      messageHelper.addFlashMessage(redirectAttributes, "core.success.save", "succese");
    		        return response;
    			}
    					                    
    

    4.2.2.2、解析Excel方法

           
        /**
         * 根据传入的文件后缀返回解析结果
         * @param type
         * @param in
         * @return
         */
        private List<Map<String, String>> getResult(String type, InputStream in) {
            List<Map<String, String>> result = new ArrayList<>();
            String xls = ".xls";
            String xlsx = ".xlsx";
            try {
                if (xls.equals(type)) {
                    result = new CommonUtilsTwoLine().readExcelXLS(in);
                }
                else if (xlsx.equals(type)) {
                    result = new CommonUtilsTwoLine().readExcelXLSX(in);
                }
            }
            catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }
    
    

                   4.2.2.3、CommonUtilsTwoLine工具文件

    public class CommonUtilsTwoLine {
            public List<Map<String,String>> readExcelXLS(InputStream in) throws Exception
        {
            POIFSFileSystem poiFileSystem = new POIFSFileSystem(in);
    
            HSSFWorkbook workbook= new HSSFWorkbook(poiFileSystem);
    
            return processWorkXLS(workbook);
        }
    
    
        public List<Map<String,String>> readExcelXLSX(InputStream in) throws Exception
        {
            XSSFWorkbook workbook = new XSSFWorkbook(in);
    
            return processWorkXLSX(workbook);
        }
    }
    

    到这里从Excel文件中导入信息算是结束了。

    4.3 将数据导出到Excel

            4.3.1、导出主入口方法

         /**
         * 导出信息到Excel文件
         */
        @RequestMapping("downloadRoomPriceModel")
        public void downloadRoomPriceModel(@RequestParam Map<String, Object> parameterMap, ModelMap map, HttpServletRequest request, HttpServletResponse response)
                throws Exception {
            String party_id = parameterMap.get("party_id") + "";
            if (!"".equals(party_id)) {
                String hql = "from Room where delete_flag = '1' and sale_state = '-2' and party_id = ?";
                List<Room> room = roomManager.find(hql, party_id);
                new ExportToExcelUtil().exportToExcel(room, request, response);
            }
        }
    
    

            4.3.2、ExportToExcelUtil工具类(设置表格列宽、保护Excel表格等等)

    /**
     * FileName: ExportToExcelUtil
     * Author:   wxz
     * Date:     2019-05-21 16:50
     * Description: 将信息导出到Excel工具
     * History:
     * <author>          <time>          <version>          <desc>
     * 作者姓名:wxz       修改时间:       版本号:           描述:
     */
    
    
    import com.gxhylc.xxx;
    import org.apache.poi.hssf.usermodel.HSSFCellStyle;
    import org.apache.poi.hssf.usermodel.HSSFFont;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.hssf.util.HSSFColor;
    import org.apache.poi.ss.usermodel.CellStyle;
    import org.apache.poi.ss.usermodel.Font;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.xssf.streaming.SXSSFWorkbook;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * 〈一句话功能简述〉<br>
     * 〈将信息导出到Excel工具〉
     *
     * @author wxz
     * @create 2019-05-21
     * @since 1.0.0
     */
    public class ExportToExcelUtil {
    
        public void exportToExcel(List<Room> returnList, HttpServletRequest request, HttpServletResponse response) throws Exception {
            request.setCharacterEncoding("GB2312");
            response.reset();
            try {
                 //设置导出Excel文件名
                String reportName = "xxx信息表";
    
                String utf8Name = java.net.URLEncoder.encode(reportName, "UTF-8");
                response.setHeader("Content-disposition", "attachment; filename=" + utf8Name + ".xls");
                response.setContentType("application/vnd.ms-excel");
                response.setBufferSize(1024 * 1024);
                HSSFWorkbook wb = new HSSFWorkbook();
                //设置导出Excel文件表格Sheet名
                Sheet sheet = wb.createSheet("xxxx信息表");
    
                //设置保护Excel全局,设置Excel编辑密码为123456
                sheet.protectSheet("123456");
                //设置Sheet表格标题
                List<String> titleList = this.getExcelTitle();
    
                //写入标题
                Row r = sheet.createRow(0);
                for (int i = 0; i < titleList.size(); i++) {
                    r.createCell(i).setCellValue(titleList.get(i));
                }
    
                //获取当前单元格的样式对象
                HSSFCellStyle alterableStyle = (HSSFCellStyle) wb.createCellStyle();
    			 //获取当前单元格的样式对象
                HSSFCellStyle nolockedStyle = (HSSFCellStyle) wb.createCellStyle();
    
                //设定单元格为锁定状态
                alterableStyle.setLocked(true);
                //设定单元格为非锁定状态
                nolockedStyle.setLocked(false);
    
    
                //向Excel写入数据
                for (int i = 0; i < returnList.size(); i++) {
                    if (returnList.size() <= 0) {
                        return;
                    }
                    Row row = sheet.createRow((i + 1));
                    Room room = returnList.get(i);
                    row.createCell((short) 0).setCellValue(room.getId());
                    if (room.getName() != null) {
                        String name= room.getName();
                        if (name!= null) {
                            row.createCell((short) 1).setCellValue(name);
                        }
                        else {
                            row.createCell((short) 1).setCellValue("");
                        }
                    }
                    row.createCell((short) 2).setCellValue(room.getNo());
                    row.createCell((short) 3).setCellValue(room.getSize());
                    
                    //设置当前行不保护,如果还有某一行不想设置保护,继续如下调用该方法
                    row.createCell((short) 3).setCellStyle(nolockedStyle);
    
    				....
    				
                    row.createCell((short) 17).setCellValue("");
                    //设置当前行不保护
                    row.createCell((short) 17).setCellStyle(nolockedStyle);
    
                    row.createCell((short) 18).setCellValue("");
                    //设置当前行不保护
                    row.createCell((short) 18).setCellStyle(nolockedStyle);
                }
    
                //调整列宽 9: 从这第九列开始 ,到最后一列结束。如果想设置行高,请调用 setColumnHidden() 方法
                for (int i = 9; i < 19; i++) {
                    if (i < 16) {
                        //第一个参数为第几列,第二个值为宽度值
                        sheet.setColumnWidth(i, 5000);
                    }
                    else {
                        sheet.setColumnWidth(i, 4000);
                    }
                }
    
                wb.write(response.getOutputStream());
                response.getOutputStream().flush();
                response.getOutputStream().close();
            }
            catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        private final List<String> getExcelTitle() {
            List<String> titleList = new ArrayList<>();
            titleList.add("序号");
            titleList.add("名字");
            titleList.add("号码");
            titleList.add("xxx");
            //你的实体有多少个属性,就在这里写入属性名
            ....
            return titleList;
        }
    
    
        private final CellStyle cellBasicPropert(SXSSFWorkbook workbook) {
    
            // 表头格式
            CellStyle normalStyle = workbook.createCellStyle();
            normalStyle.setAlignment(CellStyle.ALIGN_CENTER);
            normalStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
            normalStyle.setFillForegroundColor(HSSFColor.LIGHT_TURQUOISE.index);
            Font font = workbook.createFont();
            //宽度
            font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
            font.setFontHeight((short) 250);
            // 加粗
            font.setBoldweight(Font.BOLDWEIGHT_NORMAL);
    
            normalStyle.setFont(font);
            // 自动换行
            normalStyle.setWrapText(true);
            return normalStyle;
        }
    }
    

    将到这里,关于java解析Excel文件,包括导出数据到Excel、从Excel文件中导入数据、设置表格保护等等算是告一段落了,后面有啥再补充。有任何疑问欢迎留言或者邮箱联系,企鹅邮箱:my52hz@qq.com

    展开全文
  • 数据导入excel导入excel表,需要添加jar包 jxl.jar 百度网盘下载链接:https://pan.baidu.com/s/1vZVr-GzPWlIKgrr-SOnhSA  提取码:2u0k public static void data2Excel(List&lt;Og&gt; list) { ...
  • C#实现Excel信息导入DataGridView中显示。
  • 在使用poi实现excel批量导入和导出时遇到了很多问题,在实现用户信息批量导出成excel时,我将所有数据都使用excel的字符类型,这样就不用考虑excel类型与java类型的转换问题,但是实现导入的时候会有许多问题,将...
  • 比如这是收货人的信息:张三,13812345678,广东省广州市天河区XXX街道XXX号,衣服1件 怎样可以自动填充到下面Excel表格的各列中?(像下图这样) ![图片说明]...
  • 前言公司原采用Excel表格方式记录着服务器资产信息,随着业务的增加,相应的硬件资产也增加,同时物理机虚拟化出多台虚拟机,存在表格管理杂乱、变更资产信息不能及时相互同步, 为了紧跟时代的步伐,老大搞了个基于...
  • excel批量导入数据

    千次阅读 2018-09-06 16:35:11
    这个功能也是我以前项目中经常用到的,感觉很实用,必须拿来分享下: excel进行批量导入数据,结合struts2+ajax 导入的视图:batchAdd.ftl(视图...当前操作:excel批量导入学生信息&lt;/div&gt; &lt...
  • 任我行EXCEL数据导入工具 管家婆基本信息导入 管家婆辉煌版 商品信息和网络单位
  • Excel 报表导入导出

    2017-04-30 19:19:00
    使用 Excel 进行报表的导入导出,首先下载相关的 jar 和 excel util。 Excel Util 下载地址 把相应的 jar 和 util 类放到项目中就可以在需要打印出来的实体类的get方法... * 下载导入Excel信息数据模板 */ @R...
  • Excel表格导入数据

    2019-09-29 16:33:36
    2,点击下一步,选择数据源,excel文件路径,和版本信息(注:使用2010及以上版本的office,请先将格式转换为03 或07格式的以便识别) 3,选择目标数据库 4,执行成功 5,查看导入数据,可以重命名 以上...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,932
精华内容 1,572
关键字:

excel信息导入