java读取本地excel文件;String filePath = “C:/Users/DELL/Downloads/test.xlsx“转MultipartFile file

在实际开发中,你可以使用 MockMultipartFile 类来模拟一个 MultipartFile 对象,而不需要实际的文件上传。下面是一个示例代码,展示了如何将本地文件路径转换为 MultipartFile 对象:

import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class FileToMultipartFileConverter {
    
    
    public MultipartFile convertFileToMultipartFile(String filePath) throws IOException {
    
    
        File file = new File(filePath);
        FileInputStream input = new FileInputStream(file);
        MultipartFile multipartFile = new MockMultipartFile("file", file.getName(), "application/vnd.ms-excel", input);
        return multipartFile;
    }
}

在这个示例代码中,我们首先创建一个 File 对象,然后使用 FileInputStream 读取文件内容。接下来,我们创建一个 MockMultipartFile 对象,并设置文件字段名、文件名、文件类型以及输入流。最后,返回转换后的 MultipartFile 对象。

这样,你就可以使用 convertFileToMultipartFile 方法将本地文件路径转换为 MultipartFile 对象,用于模拟文件上传操作。

在 Java 中,你可以使用 Apache POI 库来读取本地地址的 Excel 文件。下面是一个示例代码,展示了如何读取本地的 Excel 文件并输出其中的内容:

import java.io.FileInputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelReader {
    
    
    public static void main(String[] args) {
    
    
        try {
    
    
            // 指定本地 Excel 文件路径
            String filePath = "path/to/your/excel/file.xlsx";

            // 创建文件输入流
            FileInputStream fis = new FileInputStream(filePath);

            // 使用 XSSFWorkbook 加载 Excel 文件
            Workbook workbook = new XSSFWorkbook(fis);

            // 获取第一个工作表
            Sheet sheet = workbook.getSheetAt(0);

            // 遍历工作表中的所有行
            for (Row row : sheet) {
    
    
                // 遍历行中的所有单元格
                for (Cell cell : row) {
    
    
                    // 获取单元格值并输出
                    System.out.print(cell.toString() + "\t");
                }
                System.out.println();
            }

            // 关闭文件输入流
            fis.close();
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }
}

请确保在运行此代码之前,你已经将 Apache POI 库添加到你的项目中。你可以通过 Maven 或手动下载并添加 JAR 文件的方式引入 Apache POI 库的依赖。

在示例代码中,你需要修改 filePath 变量的值为你本地 Excel 文件的路径。代码会使用 XSSFWorkbook 类加载 Excel 文件

—————————————————————————————————————————————————————————

如果URL 不是文件路径,指向的是网络上的一个资源。FileInputStream 无法直接读取 URL 文件并转换为 MultipartFile。

如果你已经有了一个 URL 文件,需要将其转换为 MultipartFile 类型的对象,可以考虑使用 RestTemplate 发起 HTTP GET 请求,并将响应内容封装为 MultipartFile 对象。

以下是一种实现方式:

String url = "http://*******:9000/strategy/template/attachment/20231121/fbefce75533049c5b5850f87eb89ea15.xlsx";

// 创建 RestTemplate 对象
RestTemplate restTemplate = new RestTemplate();

// 发起 HTTP GET 请求,获取文件内容,并将其封装为 MultipartFile 类型的对象
ResponseEntity<byte[]> response = restTemplate.getForEntity(url, byte[].class);
byte[] content = response.getBody();
MultipartFile file = new MockMultipartFile("file", "filename.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", content);

需要注意的是,如果你所在的应用程序与文件服务器不在同一个网络环境下,那么你需要使用正确的域名或者 IP 地址来访问该文件。另外,还需要确保应用程序可以正常访问该文件服务器。

猜你喜欢

转载自blog.csdn.net/weixin_44060488/article/details/134507285