首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring-boot使用application.properties解析excel文件或.csv文件

Spring Boot本身并不直接提供解析Excel或CSV文件的功能,但你可以使用第三方库来实现这些功能。以下是一些建议和示例代码,帮助你在Spring Boot项目中解析Excel和CSV文件。

解析Excel文件

对于Excel文件,你可以使用Apache POI库。首先,添加依赖:

代码语言:javascript
复制
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.3</version>
</dependency>

然后,你可以使用以下代码来读取Excel文件:

代码语言:javascript
复制
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ExcelReader {

    public List<List<String>> readExcel(String filePath) throws IOException {
        List<List<String>> data = new ArrayList<>();
        FileInputStream file = new FileInputStream(new File(filePath));
        Workbook workbook = new XSSFWorkbook(file);
        Sheet sheet = workbook.getSheetAt(0);
        Iterator<Row> rowIterator = sheet.iterator();

        while (rowIterator.hasNext()) {
            Row row = rowIterator.next();
            Iterator<Cell> cellIterator = row.cellIterator();
            List<String> rowData = new ArrayList<>();

            while (cellIterator.hasNext()) {
                Cell cell = cellIterator.next();
                rowData.add(cell.toString());
            }
            data.add(rowData);
        }
        workbook.close();
        file.close();
        return data;
    }
}

解析CSV文件

对于CSV文件,你可以使用OpenCSV库。首先,添加依赖:

代码语言:javascript
复制
<dependency>
    <groupId>com.opencsv</groupId>
    <artifactId>opencsv</artifactId>
    <version>5.5.2</version>
</dependency>

然后,你可以使用以下代码来读取CSV文件:

代码语言:javascript
复制
import com.opencsv.CSVReader;
import com.opencsv.exceptions.CsvValidationException;

import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class CsvReader {

    public List<String[]> readCsv(String filePath) throws IOException, CsvValidationException {
        List<String[]> data = new ArrayList<>();
        try (CSVReader reader = new CSVReader(new FileReader(filePath))) {
            String[] line;
            while ((line = reader.readNext()) != null) {
                data.add(line);
            }
        }
        return data;
    }
}

在Spring Boot中使用这些类

你可以在Spring Boot的Controller或Service中使用这些类来解析文件。例如:

代码语言:javascript
复制
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.List;

@RestController
public class FileController {

    @PostMapping("/upload-excel")
    public String uploadExcel(@RequestParam("file") MultipartFile file) {
        try {
            File convFile = new File(file.getOriginalFilename());
            file.transferTo(convFile);
            ExcelReader reader = new ExcelReader();
            List<List<String>> data = reader.readExcel(convFile.getAbsolutePath());
            // 处理数据
            return "Excel文件解析成功";
        } catch (IOException e) {
            e.printStackTrace();
            return "Excel文件解析失败";
        }
    }

    @PostMapping("/upload-csv")
    public String uploadCsv(@RequestParam("file") MultipartFile file) {
        try {
            File convFile = new File(file.getOriginalFilename());
            file.transferTo(convFile);
            CsvReader reader = new CsvReader();
            List<String[]> data = reader.readCsv(convFile.getAbsolutePath());
            // 处理数据
            return "CSV文件解析成功";
        } catch (IOException | CsvValidationException e) {
            e.printStackTrace();
            return "CSV文件解析失败";
        }
    }
}

请注意,这里的示例代码仅用于演示目的。在实际项目中,你可能需要处理更多的异常情况和边界条件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

快速合并多个CSV文件Excel工作簿

标签:Power Query 合并多个CSV文件、文本文件Excel工作簿等操作是我们日常工作中经常碰到的事,如果一个一个文件复制粘贴,费时费力又容易出错。...当然,可以使用VBA来解决,但前提是你必须懂VBA。这里有一个简单快速的方法,使用Power Query。...如果有一系列CSV文件,每个文件都包含着一名员工的信息,那么如何将这些文件中的员工信息合并到Excel中,Power Query能够帮助你快速完成。...图7 此时,这些CSV文件中的信息已合并至工作表中,如下图8所示。 图8 以后,当你更新了这些CSV文件的信息或者在该文件夹中添加了更多的CSV文件,只需简单地刷新查询即可实现信息更新。...当然,以上合并操作也适用于Excel文件,即快速合并多个工作簿中的工作表。

1.2K40
  • Excel打不开“巨大的”csv文件文本文件,Python轻松搞定

    学习Excel技术,关注微信公众号: excelperfect 标签:Python与Excel,pandas 在某些时候,如果你尝试使用Excel打开大型csv文件文本文件,可能无法打开它们。...曾经收到一个8GB的大型csv文件,想看一下内容,但无法使用任何尝试过的程序打开它,比如记事本、Excel等。文件太大,程序甚至无法启动。...下面将首先探讨如何检查大型csv文件的内容,然后我们将大文件分解成小文件,这样数据就可以在Excel使用。...我们可以通过这种方式查看大文件! 图2 接下来,如果我们想只使用Excel打开数据文件,该怎么办?...虽然我们不能使用魔法让Excel打开这个8GB的文件,但我们可以通过将它分解成更小的文件来“分而治之”。例如,8个文件,每个1GB;16个文件,每个500MB。

    7.4K30

    使用EasyExce实现Excel文件解析

    在上一篇文章中我和大家简单的介绍了使用easyexcel技术在有对象和无对象情况下实现Excel文件的写入操作, 那么今天这一篇文章,我就继续来和大家讲一下,使用easyexcel技术如何读取excel...easyexcel的优势 在Java领域解析、生成Excel比较有名的框架有Apache poi,jxl等,但是在使用的时候,其实他们都存在一个严重的问题,就是非常的耗内存,如果你的系统并发量不大的话,...而EasyExcel是阿里巴巴开源的一个excel处理框架,他具有使用简单,节省内存的特点,EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据...,逐个解析的,这一特点待会在读取excel数据的时候也会体现出来。...添加easyexcel依赖 使用easyexcel时需要在pom中导入相应的依赖文件, <!

    2K20

    MySQL导入csvexcel或者sql文件

    1.导入csv文件 使用如下命令: mysql> load data infile "your csv file path" into table [tablename] fields terminated...by ',' 上面的csv文件以’,’逗号作为分割符,需要用双引号或者单引号括起来。...还有一点需要注意,csv文件或者文本文件的路径要使用绝对路径,否则mysql会默认从数据库存储的目录寻找,找不到就会报如下错误: ERROR 13 (HY000) at line 1: Can't get...使用LOCAL关键词,从客户主机读文件。不使用LOCAL,从服务器读取文件。 很奇怪的是,我的文件是在服务器上的,但是不使用local就会出错,真搞不明白! 2.导入excel文件 无需指定分割符。...直接使用下面的命令: mysql> load data infile "your excel file path" into table [tablename] 注意上面导入文件时,都需要提前建立好与文件内各个段对应好的数据表

    7.1K40

    解析csv文件兼容bom头

    背景 接上一篇《安装配置Sftp并通过java访问》,由于我们上传的文件是通过程序生成标准的文件csv格式文件,而乙方是通过人肉的方式把外呼结果汇总之后创建txt文件然后修改后缀的方式变成csv...文件,这样会导致我们程序解析的时候遇到一些问题,比如bom文件头问题(他们是windows系统,只有windows系统把txt改成csv会出现bom头问题),导致我们程序解析出错,当然我们作为一个有品德有追求的程序员...,肯定不会学他们通过有功的方式去解析,那么接下来就通过程序兼容的方式,解析带bom头的csv文件。...csv文件没有任何问题,但是带bom头的文件解析不了。...原因是csv理论上也是纯文本文件,不排除认为的生成txt文件通过改后缀名的方式变成了csv文件,或者在windows平台手动生成的csv,都是带bom头的,用命令打开文件的时候会发现文件头部有乱码现象。

    2.1K40

    Python使用csv模块读写csv文件

    纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。 csv可以存储各种各样的数据,不过,通常来说,比较适合存储有相同字段表头的一批数据,这些数据可以展示成表格。...可以使用excel开启csv文件,打开后看到的数据以excel表格的方式进行展示。 现在我们就开始使用csv将数据写入csv文件,然后将数据从csv中读取出来使用。...: 1.我们先将需要保存的数据解析好,保存成固定的数据类型(保存成列表,元组,字典都可以,根据具体场景来选择) 2.我们将保存数据到csv文件的代码封装成一个函数,方便重用。...步骤主要分为三步:打开文件,写入数据,关闭文件。其中,写入数据时记得先写入表头(我们使用excel打开时需要表头)再写入表格中的数据,数据要以一个列表的形式传递给writerows()。...运行结果: 运行以上代码后,会在当前目录下创建一个csv_file.csv文件,并写入csv_data的数据,可以使用excel打开文件查看。如下图。

    3.4K30

    EasyDataTransform for mac(转换ExcelCSV文件)

    Easy Data Transform 是一款可以转换ExcelCSV文件工具,允许您快速将表格和列表数据转换为新的和更有用的表格,将您的数据转化为信息,而无需编程。...EasyDataTransform for mac(转换ExcelCSV文件)Easy Data Transform适用于各种数据转换任务,包括:-连接多个数据表-更改CSV文件定界符和编码-过滤和分析日志文件...答:目前,Easy Data Transform可以读写Excel文件(.xlsx和.xls)以及带分隔符和编码范围的带分隔符的文本文件(例如.csv和.tsv)。...如果您确实希望将数据存储在第三方服务器上(例如,出于备份共享目的),则可以将转换文件存储在DropBox文件夹(类似文件夹)中。

    81410

    Excel小技巧26:使用Windows命令合并CSV文件

    本文介绍的不是在Excel中进行操作的技巧,而是利用“外部”力量来快速地完成我们的任务。 有时候,我们需要将同一文件夹中的多个CSV文件TXT文件合并到一个文件中。...我们可以一个个打开这些文件,复制粘贴,这是最原始的方法。我们可以编写程序,例如使用Excel VBA来帮助我们完成。其实,还有一种方法,就是利用Windows命令行来实现。...输入命令: copy *.csv merge.csv 按下回车键。 ? 图4 此时,在文件夹中将创建一个名为merge.csv的新文件,如下图5所示,该文件中存储着文件夹中所有csv文件的数据。 ?...图5 你可以将后缀名csv修改为txt,此时将合并文件夹中所有的txt文件。...2.按Windows键,在左下角“搜索程序和文件”框中输入cmd命令。 这两种方法都要求使用命令将目标导航至文本文件所在的文件夹,稍微多了一些操作。

    5.1K30

    EasyPOI解析Excel文件

    之前写过一篇导出Excel的文章,时隔这么长时间,再写一篇解析吧 采用EasyPOI技术解析Excel,我感觉这个还是挺好用的,也可能是我没有接触过更好的技术了[捂脸] 导入Maven依赖: <!...return f000Did; } } 根据Excel模板定义模型,这里只演示最简单的模型定义,也没有增加校验信息,如果需要增加校验信息的可以,百度一下 定义解析工具类: package..."); } } 因为我的是文件直接写Main方法了 调用: package executer; import exception.TypeMismatchException; import...因为数据是涉密的,就不贴正式的Excel解析Excel的截图了 贴一个简单的吧 ?...不需要解析的字段不加@Excel就可以了 作者:彼岸舞 时间:2020\11\24 内容关于:POI 本文属于作者原创,未经允许,禁止转发

    1.8K21

    matlab批量处理excel(CSV)文件数据

    今天介绍怎么批量读取excel文件的数据,首选我把excel文件名称分为以下几种情况(全凭个人经验,比如读取图片文件,txt文件思路大同小异,希望我的思路起到抛砖引玉的效果) 三维数组存储方法 1....文件,要按照需求批量处理csv文件数据,然后批量输出excel文件,且文件名不变。...']);%获取data文件夹下面全部的.csv文件 n=length(filename);%文件数目 for i=1:n name=filename(i).name;%文件 名称遍历循环 [...我这里有三个Excel数据文件文件名称为无序没有规律的 要获取三个Excel文件Data表单的全部数据,拼接在一起,然后共用一个表头,经过分析三个Data数据的列数是一样的,不一样的是行数...for i=2:length(str1) str2=strsplit(str1{i}); %str1再一次分割 %数据解析协议: data=hex2dec

    95520
    领券