精华内容
下载资源
问答
  • 批量导入图片
    2021-02-13 01:05:46

    1 package com.sun.office.excel;

    2

    3 import java.awt.image.BufferedImage;

    4 import java.io.ByteArrayOutputStream;

    5 import java.io.File;

    6 import java.io.FileOutputStream;

    7 import java.io.IOException;

    8

    9 import javax.imageio.ImageIO;

    10

    11 import org.apache.poi.hssf.usermodel.HSSFClientAnchor;

    12 import org.apache.poi.hssf.usermodel.HSSFPatriarch;

    13 import org.apache.poi.hssf.usermodel.HSSFSheet;

    14 import org.apache.poi.hssf.usermodel.HSSFWorkbook;

    15

    16 public class ExcelImageDemo {

    17

    18 public static void main(String[] args) {

    19 FileOutputStream fileOut = null;

    20 BufferedImage bufferImg = null;

    21 // 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray

    22 try {

    23 ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();

    24 bufferImg = ImageIO.read(new File("D:/ubuntn.jpg"));

    25 ImageIO.write(bufferImg, "jpg", byteArrayOut);

    26

    27 HSSFWorkbook wb = new HSSFWorkbook();

    28 HSSFSheet sheet1 = wb.createSheet("test picture");

    29 // 画图的顶级管理器,一个sheet只能获取一个(一定要注意这点)

    30 HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();

    31 for (int i = 0; i < 3; i++) {

    32 // anchor主要用于设置图片的属性

    33 HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 1023, 250, (short) 1, 1+i*10, (short) 5, 8+i*10);

    34 // 插入图片

    35 patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));

    36 }

    37 HSSFSheet sheet2 = wb.createSheet("test picture2");

    38 //第二个sheet页

    39 HSSFPatriarch patriarch2 = sheet2.createDrawingPatriarch();

    40 for (int i = 0; i < 3; i++) {

    41 // anchor主要用于设置图片的属性

    42 HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 1023, 250, (short) 1, 1+i*10, (short) 5, 8+i*10);

    43 // 插入图片

    44 patriarch2.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));

    45 }

    46 fileOut = new FileOutputStream("Excel.xls");

    47 // 写入excel文件

    48 wb.write(fileOut);

    49 System.out.println("----Excle文件已生成------");

    50 } catch (Exception e) {

    51 e.printStackTrace();

    52 } finally {

    53 if (fileOut != null) {

    54 try {

    55 fileOut.close();

    56 } catch (IOException e) {

    57 e.printStackTrace();

    58 }

    59 }

    60 }

    61 }

    62 // 关于HSSFClientAnchor(dx1,dy1,dx2,dy2,col1,row1,col2,row2)的参数,有必要在这里说明一下:

    63 // dx1:起始单元格的x偏移量,

    64 // dy1:起始单元格的y偏移量,

    65 // dx2:终止单元格的x偏移量,

    66 // dy2:终止单元格的y偏移量,

    67 // col1:起始单元格列序号,从0开始计算;

    68 // row1:起始单元格行序号,从0开始计算,

    69 // col2:终止单元格列序号,从0开始计算;

    70 // row2:终止单元格行序号,从0开始计算,

    71 //添加多个图片时:多个pic应该share同一个DrawingPatriarch在同一个sheet里面。

    72 }

    更多相关内容
  • 1.批量导入图片:在工作表中创建指定路径下的所有图片的目录,支持四种图片格式,可对子文件夹中的文件一并创建目录。创建目录时可将图片存放在单元格也还可以放在批注中。 2.按名称导入对应图片(支持子目录):选中...
  • 主要介绍了ORACLE批量导入图片到BLOB字段代码示例,此代码示例是文章作者的项目源码,具有一定参考价值,需要的朋友可以了解下。
  • 可以实现word新建文件,通过VBA编译,批量选取文件夹图片,实现图片批量导入
  • VBA批量导入图片.rar

    2021-08-21 14:14:36
    VBA批量导入图片.rar
  • 导入:右击工作表,查看代码,然后在打开的宏编辑文档中的文件菜单中导入。 执行:在各单元格输入图片路径(可用dir /b /s E:\图片\*.jpg >E:\图片\picpath.txt得到图片路径),然后在视图工具栏的宏中点击查看宏。...
  • 1、字典为图片坐标对应格式。dll为插件 2、netload方式加载插件,AddFolder命令执行插入命令
  • Excel如何批量导入图片

    千次阅读 2022-02-17 15:24:08
    在农村工作的朋友向我发来求助,他们有一项年度...一般的村有七八百户村民,相当于要把七八百张照片一张一张插入word文档的表格中,这得粘贴到猴年马月才搞完,而且,每张图片的大小不一,粘贴进去后还要调整大小 ...

    在农村工作的朋友向我发来求助,他们有一项年度任务,就是需要走访全村的村民。并且每走访一户需要登记,登记的内容须有照片为佐证。他走访完了,照片也拍了,但是在把照片粘贴进规定的登记模板(word)的时候犯难了。一般的村有七八百户村民,相当于要把七八百张照片一张一张插入word文档的表格中,这得粘贴到猴年马月才搞完,而且,每张图片的大小不一,粘贴进去后还要调整大小十分麻烦和费时。在网上搜索了相关资料以后,我有了自己的解决方案。

    首先假设我们有50张图片和一个“走访登记表”:

    虽然登记表是word格式的,但是我们可以把它复制到EXCEL表中,做成EXCEL格式的表格,打印出来的效果其实都是一样的。

    大概的思路是这样的,因为微软的EXCEL中可以识别部分的HTML代码,那么我们可以批量生成<table>和<img>标签的代码,然后复制粘贴到EXCEL表格中,图片就会自动贴上去。

    接下来,我们新建一个EXCEL文件,在这个文件上进行代码的生成操作。

    首先有一个前提,就是只能用微软的EXCEL才可以使用HTML代码,WPS的不行。所以,我们用微软的EXCEL软件打开新建的表格文件,新建以下列:

    其中姓名列,从走访登记表中把户主一栏的姓名,按原有顺序粘贴。

     “图片文件夹”列复制需要插入的照片所在的文件目录:

     图片索引为公式自动生成,其公式为:IFERROR(LEFT(E2,FIND(".",E2)-1),"")。其逻辑是从“图片文件名”这一列中获取不含后缀的文件名,因为图片的文件名已经按照其姓名重命名,我们可以通过图片的文件名和户主的姓名进行匹配。

    “图片文件名”我们可以用批处理命令来获取,新建一个批处理文件(注意用TXT文件编辑时,编码要存为ANSI格式),内写以下代码:

    DIR /B > 照片文件名.txt
    pause

    点击运行后,就会把当前文件夹下的文件名全部读取存入“照片文件名.txt”文件中。

    打开该文件,将获取的文件名复制到EXCEL“图片文件名”这一列下。

     

    后面“图片长” 和“图片高”即为要插入图片的大小,一般来说与需要插入位置的单元格一样大小。在目标单元格单击网格线就能得到单元格的像素尺寸:

    将该数据填入“图片高”和“图片长”两列中。

    接下最后一行,我们用公式拼接成代码,该单元格公式为:

    我们最终想要的代码是这样子的:

    把代码中的几个参数替换成对应的单元格,形成如下公式: 

    IFERROR("<table ><img src="""&C2&"\"&VLOOKUP(B2,D:E,2,FALSE)&""""&" width="""&F2&""""&" height="""&G2&""""&">",")

    全部往下复制填充,就得到了批量插入的代码:

    复制这些代码,先粘贴在任意的TXT文件中,再从TXT文件中复制

     在走访登记表中对应的“走访图片”第一个单元格,右键选择“选择性粘贴....”

    在弹出对话框中选择“Unicode文本”

     神奇的一幕发生了,所有图片均按照设置的大小粘贴进了对应的单元格。

    这是,我们还可以通过“Ctrl+A” 选择所有的图片进行放大缩小和调整位置的操作。要注意,图片批量粘贴后,单元格的框线会消失,需要重新设置,图片比单元格略小会比较美观一些。

     需要注意的是,通过提前设置图片大小的方式粘贴图片,会对图片进行压缩,从而导致 看不清。如果只是为了打印,对图片清晰度没有很高要求的话,可以这样做。但是,如果是需要图片上的信息,比如粘贴的图片是健康码、行程码之类的,这种做法就不合适了。

    但是也有解决方案,那就是在设置图片大小的时候,把图片设置大一点,比如按照单元格尺寸乘以10倍,先把图片粘贴进去:

     保存关闭文件,然后再用WPS打开。在WPS打开的界面中,选择所有图片,从工具栏直接设置图片大小,设置成自己想要的尺寸。

     

     这时候,我们点击其中一张图片,会出现一个放大工具:

    点击它,就能看到完整的清晰的原图。

    本次分享到此结束。文中有关的批处理和EXCEL演示文件可从以下链接下载:

    http://haoqiadi.com/count.php?location=EXCEL%E6%89%B9%E9%87%8F%E6%8F%92%E5%85%A5%E5%9B%BE%E7%89%87.zipicon-default.png?t=M1L8http://haoqiadi.com/count.php?location=EXCEL%E6%89%B9%E9%87%8F%E6%8F%92%E5%85%A5%E5%9B%BE%E7%89%87.zip

    展开全文
  • Excel百宝箱 9.0 破解版 批量导入图片等200种功能 Excel2007 Excel百宝箱2012是强大的制表插件,当安装百宝箱后,如果您使用Excel 2003,则将产生【百宝箱】菜单,包括100多个子菜单;如果您使用Excel 2007或者2010...
  • 自动写的用Excel VBA 批量导入图片,放到同一列的单元格。
  • Excel怎么批量导入图片

    千次阅读 2021-09-01 18:47:27
    今天跟大家分享一下Excel怎么批量导入图片 1.开Excel软件 2.选择DIY工具箱(Excel工具箱,百度即可了解详细下载安装信息,本文这里就不做详细解说。) 3.点击【添加】将要导入的图片添加进去 ...

    今天跟大家分享一下Excel怎么批量导入图片

    1.开Excel软件

    2.选择DIY工具箱(Excel工具箱,百度即可了解详细下载安装信息,本文这里就不做详细解说。)

    3.点击【添加】将要导入的图片添加进去

    4.在【导入方式】选项内将每行图片设置为1

    5.图片大小设置为【原图片大小】也可以选择其它选项

    6.在【导入到单元格】选项内录入要保存的单元格位置

    7.最后点击【确定】即可完成

    8.完成效果如下图所示

    展开全文
  • 该源码实现一款可以支持批量导入图片等文件到模拟器功能,不但可以批量导入图片到模拟器的相册中,还可以导入视频文档等,使用方法很简单,选择你要添加的图片和视频到工程中,然后就运行工程,点击"Start Copy to ...
  • 一个是通过对话框获取子文件夹地址的子函数,另一个是批量导入并处理子文件夹中的每张图片的子函数。处理图片的子函数是用来给大家参考如何使用获取文件夹地址并且批量处理图片的,具体如何处理图片大家可以根据自己...
  • 使用easypoi批量导入excel数据到数据库,excel中的图片上传到服务器1.引入依赖2.实体类demo3.测试的excel文档样式5.服务器文件操作工具类6.IDUtils工具类7.excel导入实现类8.postman返回结果 这里主要是通过easypoi...


    这里主要是通过easypoi注解的方式进行导入excel数据,导入后的图片上传到自己的服务器路径上面去,过程中需要对file和MultipartFile的相互转换和服务器的连接,具体过程如下:

    1.引入依赖

    	//file和MultipartFile互转
    	<dependency>
    			<groupId>org.apache.httpcomponents</groupId>
    			<artifactId>httpcore</artifactId>
    			<version>4.4.9</version>
    	</dependency>
    	<dependency>
    			<groupId>org.springframework</groupId>
    			<artifactId>spring-test</artifactId>
    			<version>5.1.6.RELEASE</version>
    	</dependency>
    //easypoi 
    	<dependency>
    			<groupId>cn.afterturn</groupId>
    			<artifactId>easypoi-spring-boot-starter</artifactId>
    			<version>4.0.0</version>
    	</dependency>
    //服务器连接
    		<!--sftp文件上传-->
    		<dependency>
    			<groupId>com.jcraft</groupId>
    			<artifactId>jsch</artifactId>
    			<version>0.1.54</version>
    		</dependency>
    

    2.实体类demo

    @Data
    @ExcelTarget("user")
    public class User  implements Serializable {
    
        @Excel(name = "id")
        private String id;
    
        @Excel(name = "username")
        private String username;
    
        @Excel(name = "password")
        private String password;
    
        /**
         * 这里的type:2 是表示图片
         *      imageType:1 表示从file读取
         *      name : 表示当前excel对应的表头名称
         */
        @Excel(name = "photo",type = 2,width = 20,height = 20,imageType = 1)
        private String photo;
    
    }
    

    3.测试的excel文档样式

    图片的话记得贴在表格里面### 4.yml配置文件

    #远程服务器连接配置
    remote-config:
      host: xxx.xx.xx.xxx#这里用你个人的服务器地址
      port: 22
      username: root
      password: xxxxxx #密码
    
    #远程服务器文档管理,用来回调图片,使用的话服务器要配置jetty
    remote-file:
      prefix_path: /data0/jetty/xtyWebApp/yq/uploadFiles                   #文件/图片 存储路径前缀
      image_prefix_path: http://${remote-config.host}:8082/yq/uploadFiles   #图片地址映
    

    5.服务器文件操作工具类

    package com.easypoi;
    
    import cn.afterturn.easypoi.excel.ExcelExportUtil;
    import cn.afterturn.easypoi.excel.entity.ExportParams;
    import com.jcraft.jsch.*;
    import org.apache.poi.ss.usermodel.Workbook;
    import org.apache.poi.util.IOUtils;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.core.io.Resource;
    import org.springframework.core.io.ResourceLoader;
    import org.springframework.stereotype.Component;
    import org.springframework.web.multipart.MultipartFile;
    
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.URLEncoder;
    import java.nio.charset.StandardCharsets;
    import java.util.Collection;
    import java.util.Properties;
    
    /**
     * Description:文件操作工具类
     */
    @Component
    public class FileOperateUtil {
    
        @Value("${remote-file.prefix_path:}")
        public String PREFIX_PATH;//文件/图片 存储路径前缀
    
        @Value("${remote-file.image_prefix_path:}")
        public String IMAGE_PREFIX_PATH;//图片地址映射前缀
    
        @Autowired
        public ResourceLoader resourceLoader;
    
        /**
         * moduleName 模块名:
         */
        public String PARK_INFO = "parkInfo";//园区信息管理模块
    
        //连接属性
        @Value("${remote-config.host:}")
        private String host;
        @Value("${remote-config.port:-1}")
        private int port;
        @Value("${remote-config.username:}")
        private String user;
        @Value("${remote-config.password:}")
        private String password;
    
        /**
         * 获取sftp连接
         * @return sftp
         */
        public ChannelSftp getConnect(){
            ChannelSftp sftp = null;
            try {
                JSch jsch = new JSch();
                //获取sshSession  账号-ip-端口
                Session sshSession = jsch.getSession(user, host, port);
                //添加密码
                sshSession.setPassword(password);
                Properties sshConfig = new Properties();
                //严格主机密钥检查
                sshConfig.put("StrictHostKeyChecking", "no");
                sshSession.setConfig(sshConfig);
                //开启sshSession链接
                sshSession.connect();
                //获取sftp通道
                Channel channel = sshSession.openChannel("sftp");
                //开启
                channel.connect();
                sftp = (ChannelSftp) channel;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return sftp;
        }
    
        /**
         * 上传附件
         * @param file              附件
         * @param moduleName        模块名
         * @param sftp              sftp连接
         * @return databaseFileUri  数据库表附件存储uri
         */
        public String uploadFile(MultipartFile file, String moduleName, ChannelSftp sftp) {
            String databaseFileUri = "";
            try{
                String prefixPath = PREFIX_PATH + "/" + moduleName;
                try {
                    sftp.cd(prefixPath);//文件默认上传到当前目录,所以需要切到需要文件上传所在目录
                } catch (SftpException e) {
                    //产生异常即不存在该路径  创建目录并进入
                    String[] dirs = prefixPath.split("/");
                    StringBuilder tempPath = new StringBuilder();
                    for (String dir : dirs) {
                        try {
                            tempPath.append("/").append(dir);
                            try {
                                sftp.mkdir(dir);
                            } catch (SftpException sftpException) {
                                System.out.println("目录已存在,无需创建,程序继续执行...");
                            }
                            sftp.cd(tempPath.toString());
                        } catch (SftpException sftpException) {
                            sftpException.printStackTrace();
                        }
                    }
                }
                //获取原本文件的文件名
                String fileName;
                if (file.getOriginalFilename() == null && "".equals(file.getOriginalFilename())) {
                     fileName = file.getOriginalFilename();
                }else {
                     fileName = file.getName();
                }
                //生成自定义的文件名
                String databaseFileName = IDUtils.getRandomId() + fileName.substring(fileName.lastIndexOf("."));
    
                //存储在数据库中的文件url
                databaseFileUri = "/" + moduleName + "/" + databaseFileName;
                //上传文件到服务器指定文件夹
                sftp.put(file.getInputStream(), PREFIX_PATH + databaseFileUri);
                //关闭连接
                sftp.disconnect();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (sftp != null && sftp.isConnected()) {
                    sftp.disconnect();
                }
            }
            return databaseFileUri;
        }
    
        /**
         * 下载附件
         * @param fileName          附件名
         * @param databaseFileUri   数据库表附件存储uri
         * @param response          响应
         * @param sftp              sftp连接
         */
        public void downloadFile(String fileName, String databaseFileUri, HttpServletResponse response, ChannelSftp sftp) {
            InputStream inputStream = null;
            ServletOutputStream outputStream = null;
            try {
                //获取文件相对路径(除去文件名的路径)
                String relativePath = databaseFileUri.substring(0, databaseFileUri.lastIndexOf("/"));
                //进入服务器存储文件所在目录
                sftp.cd(PREFIX_PATH + relativePath);
                //获取文件输入流
                inputStream = sftp.get(PREFIX_PATH + databaseFileUri);
    
                response.addHeader("Cache-Control", "no-cache, no-store, must-revalidate");
                response.addHeader("charset", "utf-8");
                response.addHeader("Pragma", "no-cache");
                String encodeName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString());
                response.setHeader("Content-Disposition",
                        "attachment; filename=\"" + encodeName + "\"; filename*=utf-8''" + encodeName);
    
                outputStream = response.getOutputStream();
                IOUtils.copy(inputStream, outputStream);
                response.flushBuffer();
                //关闭sftp连接
                sftp.disconnect();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (sftp != null && sftp.isConnected()) {
                    sftp.disconnect();
                }
                if (outputStream != null) {
                    try {
                        outputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (inputStream != null) {
                    try {
                        inputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
        /**
         * 删除附件
         * @param databaseFileUri 数据库表附件存储uri
         * @param sftp            sftp连接
         * @return boolean        删除结果
         */
        public boolean deleteFile(String databaseFileUri, ChannelSftp sftp) {
            try {
                //获取文件相对路径(除去文件名的路径)
                String relativePath = databaseFileUri.substring(0, databaseFileUri.lastIndexOf("/"));
                //进入服务器存储文件所在目录
                sftp.cd(PREFIX_PATH + relativePath);
                //删除文件
                sftp.rm(PREFIX_PATH + databaseFileUri);
                return true;
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (sftp != null && sftp.isConnected()) {
                    sftp.disconnect();
                }
            }
            return false;
        }
    
        /**
         * 获取图片地址
         * @param databaseFileUri 数据库表附件存储uri
         * @return 图片地址
         */
        public String getImageUrl(String databaseFileUri) {
            return IMAGE_PREFIX_PATH + databaseFileUri;
        }
    
    
        /**
         * 将数据导出到excel
         * @param fileName          生成excel文件的名称
         * @param data              生成excel的源数据
         * @param templateClass     生成excel的自定义模板
         * @param response          响应
         */
        public void excelExport(String fileName, Collection<?> data, Class<?> templateClass, HttpServletResponse response) {
            ServletOutputStream outputStream = null;
            Workbook sheets = null;
            try {
                sheets = ExcelExportUtil.exportExcel(new ExportParams(), templateClass, data);
    
                response.setContentType("application/vnd.ms-excel;charset=utf-8");
                String encodeName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString());
                response.setHeader("Content-Disposition",
                        "attachment; filename=\"" + encodeName + "\"; filename*=utf-8''" + encodeName);
                outputStream = response.getOutputStream();
                sheets.write(outputStream);
                outputStream.flush();
                outputStream.close();
                sheets.close();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (outputStream != null) {
                    try {
                        outputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (sheets != null) {
                    try {
                        sheets.close();
                        sheets = null;
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
    
        /**
         * 下载模板
         * @param filename  模板文件名
         * @param path      模板所在项目下的相对路径
         * @param response  HTTP响应
         */
        public void downloadTemplate(String filename, String path, HttpServletResponse response) {
    
            InputStream inputStream = null;
            ServletOutputStream servletOutputStream = null;
            try {
                response.setContentType("application/vnd.ms-excel");
                response.addHeader("Cache-Control", "no-cache, no-store, must-revalidate");
                response.addHeader("charset", "utf-8");
                response.addHeader("Pragma", "no-cache");
                String encodeName = URLEncoder.encode(filename, StandardCharsets.UTF_8.toString());
                response.setHeader("Content-Disposition",
                        "attachment; filename=\"" + encodeName + "\"; filename*=utf-8''" + encodeName);
                Resource resource = resourceLoader.getResource("classpath:" + path);
                inputStream = resource.getInputStream();
                servletOutputStream = response.getOutputStream();
                IOUtils.copy(inputStream, servletOutputStream);
                response.flushBuffer();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    if (servletOutputStream != null) {
                        servletOutputStream.close();
                        servletOutputStream = null;
                    }
                    if (inputStream != null) {
                        inputStream.close();
                        inputStream = null;
                    }
                    // 召唤jvm的垃圾回收器
                    System.gc();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
    

    6.IDUtils工具类

    package com.easypoi;
    
    import java.util.Random;
    
    public class IDUtils {
    
    	/**
    	 * 生成19位的随机Long类型id
    	 */
    	public static Long getRandomId() {
    		//取当前时间的长整形值包含毫秒
    		long millis = System.currentTimeMillis();
    		//加上六位位随机数
    		int end3 = new Random().nextInt(899999) + 100000;
    		return Long.valueOf(millis + String.format("%03d", end3));
    	}
    }
    

    7.excel导入实现类

    实现导入功能

    @RestController
    public class EasyPoiTest {
    
    
        @Autowired
        private FileOperateUtil fileOperateUtil;  //上传服务器文件工具类
    
    
        public String PHOTO_TEST = "photo_test";//园区门户信息  //服务器模块名称
    
     /**
         * excel批量上传图片
         * @param filename
         * @return
         * @throws Exception
         */
        @PostMapping("photoTest")
        public List<User> demo1(@RequestBody MultipartFile filename) throws Exception {
            ImportParams params = new ImportParams();
    
            File toFile = multipartFileToFile(filename);
            // List<User> list = ExcelImportUtil.importExcel(new File("D:\\javaBasic\\filetest\\test.xlsx"), User.class, params);
            List<User> list = ExcelImportUtil.importExcel(toFile, User.class, params);
            for (User user : list) {
                File file=new File(user.getPhoto());
                InputStream inputStream = new FileInputStream(file);
                MultipartFile multipartFile = new MockMultipartFile(file.getName(), inputStream);
                String uploadFile = uploadFile(multipartFile);
                user.setPhoto(uploadFile);
            }
            return list;
        }
    
    
        /**
         * 处理单个文件上传到服务器
         *
         * @param file
         * @return
         */
        @PostMapping("/uploadFile")
        public String uploadFile(MultipartFile file) {
            //处理传入图片
            //上传文件到服务器上面
            String databaseFileUri = fileOperateUtil.uploadFile(file, PHOTO_TEST, fileOperateUtil.getConnect());
            if (databaseFileUri != null && !"".equals(databaseFileUri)) {
                System.out.println("this picture is true");
            }
            return databaseFileUri;
        }
    
    
        /**
         * MultipartFile转换成file
         * @param file
         * @return
         * @throws Exception
         */
        public  File multipartFileToFile(MultipartFile file) throws Exception {
    
            File toFile = null;
            if(file.equals("")||file.getSize()<=0){
                file = null;
            }else {
                InputStream ins = null;
                ins = file.getInputStream();
                toFile = new File(file.getOriginalFilename());
                inputStreamToFile(ins, toFile);
                ins.close();
            }
            return toFile;
        }
    
        public static void inputStreamToFile(InputStream ins, File file) {
            try {
                OutputStream os = new FileOutputStream(file);
                int bytesRead = 0;
                byte[] buffer = new byte[8192];
                while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
                    os.write(buffer, 0, bytesRead);
                }
                os.close();
                ins.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    

    8.postman返回结果

    返回当前接收excel导入的user类
    在这里插入图片描述刚刚导入到服务器的图片
    在这里插入图片描述总结:功能就实现了,如果需要插入到数据库的话,那么就将上传的地址存入回调的时候访问jetty下面的地址即可,数据库存入就不多做介绍了,具体业务逻辑可自己实现

    展开全文
  • vba 批量导入图片

    2021-06-11 14:23:55
    Sub addpic() For Each cellIn Range("C3:E19") cell.Select Set myDocument = ActiveSheet myDocument.Shapes.AddPicture(ThisWorkbook.Path & "\pic\" & adp.Value & ".jpg", msoTrue, msoCTrue, ...
  • 但搜索了一圈,没找到如何批量导入文件的方法,于是自己研究了一个,此方法在图片文件数量非常多的时候很方便! (注:Markdown小白,自己鼓捣出来的方法,只测试过Typora编辑器可以用这种方法,其他编辑器不一定...
  • 批量导入之前,我们要注意将图片文件的“排序方式”设为按“名称”“递增”。 打开Excel工作表,执行“数据”-“新建查询”-“从文件”-“从文件夹”命令。 在打开的“文件夹”对话框中,在“文件夹路径”...
  • 原标题:Python批量导入图片生成PowerPoint 2007+文件说明:本文是“Python批量爬取微信公众号文章中的图片”的后续文章,用来把从公众号批量抓取的图片还原为PowerPoint 2007文件。使用方法:安装扩展库python-pptx...
  • WPS表格在一列里批量导入图片

    千次阅读 2020-05-26 15:08:47
    参考:WPS表格技巧—如何批量插入图片 调整表格列宽和行高 插入本地图片(全选) 调整图片宽高 选中最后一张,放到最后一行的位置 选中一张图片,Ctrl+A,点击快捷栏中的左对齐按钮 再点击快捷栏中的纵向分布按钮 ...
  • 如何使用matlab批量导入图片

    千次阅读 2020-05-01 12:08:35
    如何使用matlab批量导入图片思路程序实现程序中用到的函数dir()函数strcat函数isempty函数save函数eval函数 思路 先对指定文件夹进行扫描,将.jpg等后缀的图片文件信息保存,再依次将每个图片数据导入,最后将每一个...
  • 在这篇教程里我们将学会如何在Indesign中单次导入多张图片(分页放置)的方法,介绍地很详细,之前不会的朋友可以过来学习一下!先举一个InDesign排版中常见的例子:比如我设置一个InDesign的文档有80个跨页,每个跨页...
  • Excel批量导入图片,通过VBA代码实现,有详细的代码注释。
  • PS 批量导入图片制作 gif

    千次阅读 2020-10-28 10:57:37
    图片导入图层: 【文件】【打开】【脚本】【将文件载入堆栈】【浏览】,选择文件或文件夹,确定。 打开时间轴: 【窗口】【时间轴】 制作gif动画 左击时间轴右上角【下三角+4横线图标】【从图层建立帧】,选择...
  • zencart批量导入图片,路径检测工具
  • word批量插入图片模版

    2020-02-12 18:49:52
    该模版可以用于把多页图片插入到word文档的每一页,可以自动调整到页面大小,减少了很多插入与图片调整步骤,方便打印。可用于office2007及以上的版本,使用时只需把该模板放入office存放模板的文件夹,然后启用宏,...
  • PHOTOSHOP脚本, 批量导入同一文件夹下的图片到同一PS文档中,作为不同图层
  • [原创]商品工作人员必备技能(第五节)批量导入图片(可以选存放文件夹-可以选择图片的位置)-(1).doc
  • 思路:19张纵切的带有中文文字的乱序图片,在matlab里导入图片可得到一个1980x72的...批量导入图片 function R=duqutupian() %R=[]; srcDir=uigetdir('Choose source directory.'); cd(srcDir); allnames=struct2...
  • 选择【批量导入图片路径】 点击【添加】将要导入图片路径的图片添加进去 在【存放到区域】选项中输入要存放路径的单元格,然后点击下方的【确定】即可完成 完成效果如下图(ps:路径导入顺序是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,632
精华内容 13,452
关键字:

批量导入图片

友情链接: 外点法C++.zip