EXCEL上传指定行读取数据 可直接使用

这篇具有很好参考价值的文章主要介绍了EXCEL上传指定行读取数据 可直接使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前提:需要引入easyExcel

EXCEL上传指定行读取数据

前置条件

entity

@Data
	@AllArgsConstructor
	@NoArgsConstructor
	@Builder
	public static class ProductImportReq{
		@ExcelProperty(value = "外部商品编码",index = 0)
		@ApiModelProperty(value="外部产品编码")
		private String externalProductCode;

		@ExcelProperty(value = "商品编码",index = 1)
		@ApiModelProperty(value = "商品编码")
		private String productCode;
		/**
		 * 产品名称
		 */
		@ExcelProperty(value = "商品名称",index = 2)
		@ApiModelProperty(value = "产品名称")
		private String productName;


		@NotNull(message = "是否标品")
		@ExcelProperty(value = "是否标品",converter = IntegerConverter.class,index = 3)
		@ApiModelProperty(value = "是否标准品0 否  1是")
		private Integer isStandard;}

中文数字转换器

public class IntegerConverter implements Converter<Integer> {
	@Override
	public Class supportJavaTypeKey() {
		return Integer.class;
	}

	@Override
	public CellDataTypeEnum supportExcelTypeKey() {
		return CellDataTypeEnum.STRING;
	}

	@Override
	public Integer convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
		Integer result=null==cellData.getStringValue()?null:"是".equals(cellData.getStringValue()) ? 1 : 0;
		return result;
	}

	@Override
	public WriteCellData<String> convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
		return new WriteCellData<String>(Objects.equals(value, 1) ? "是" : "否");
	}
}

1.继承AnalysisEventListener

public class DataEasyExcelListener <T> extends AnalysisEventListener {

	private List<T> list = new ArrayList<>();

	@Override
	public void invoke(Object data, AnalysisContext analysisContext) {
		list.add((T) data);
	}

	@Override
	public void doAfterAllAnalysed(AnalysisContext analysisContext) {
	}

	public List<T> getData() {
		return list;
	}
}

2.EXCEL文件读取工具

public class ExcelAnalysisUtil<T> {
	public   List<T> readFile(MultipartFile file,Class head,Integer rowIndex) throws IOException {
		DataEasyExcelListener<ProductReq.ProductImportReq> listener = new DataEasyExcelListener<>();
		EasyExcel.read(file.getInputStream(), head, listener).sheet(0).headRowNumber(rowIndex).doRead();
		return (List<T>) listener.getData();
	}
	public   List<T> readFile(MultipartFile file,Class head) throws IOException {
		return readFile(file,head,0);
	}
}

3.excel文件上传文章来源地址https://www.toymoban.com/news/detail-528852.html

public R importProduct(MultipartFile file) throws IOException {
		List<ProductReq.ProductImportReq> excelVOList = new ExcelAnalysisUtil().readFile(file,ProductReq.ProductImportReq.class,2);
//业务实现

}

到了这里,关于EXCEL上传指定行读取数据 可直接使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java读取excel中的数据

    首先导入相关的依赖: 测试代码: 数据打印到控制台的效果:

    2024年02月06日
    浏览(29)
  • 使用django的APP在前端上传excel通过post传给后端读取并打印

    备研了,博客许久未更了,但是学期末的大作业,遇到了问题并成功解决了,不得不记录一下。 传数据表单必不可少 input用于文件类的上传,相当于先让前端收到这份文件 button用于表单的发送(submit 提交很好理解) 表单中的 action=“/insurance/upload_result” 表明我们要将文件数

    2024年02月10日
    浏览(52)
  • openpyxl 借助 smbprotocol 直接读取 smb 中excel 直接写入 共享盘

    参考 https://github.com/jborean93/smbprotocol/blob/master/examples/high-level/file-management.py https://github.com/jborean93/smbprotocol/tree/master/examples

    2024年02月13日
    浏览(38)
  • panda读取excel文件内容时出错,提示excel表格不能被指定

    panda读取excel文件内容时出错,提示exc表格不能被指定,详细内容如下:      Excel file format cannot be determined, you must specify an engine manually. 源码如下(panda包和xlrd包都已经导入): 根据报错内容来到显示报错的代码中 当ext等于none时,提示这个错误。那么ext是怎么等于none的呢,

    2024年02月16日
    浏览(45)
  • Java 使用 easyexcel 读取 excel 文件

    easyexcel 官网:EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel 1. 引入依赖并给出示例 excel     2. 两种读取的方式         (1)确定表头:建立对象,和表头形成映射。(这里以此为例)         (2)不确定表头:每一行映射为 MapString, Object。 3. 先创建 excel 中表头对应

    2024年02月12日
    浏览(42)
  • 如何使用 Java 灵活读取 Excel 内容?

    在日常工作和学习中,我们经常需要从 Excel 文件中读取数据。对于少量数据,手动复制和粘贴可能是可行的,但是对于大量的数据,这种方法会变得非常低效。在这种情况下,使用 Java 程序自动读取 Excel 文件中的数据将是更好的选择。 本教程将介绍如何使用 Java 程序读取

    2024年02月07日
    浏览(29)
  • python读取Excel指定范围并转为数组

            最近需要读取Excel中的内容,然后进行后续操作,对于这块知识,博主以前以为自己不会涉及到,但是现在一涉及到,第一步就错了,搞了好久。真的心累。因此写了这篇博客。  目的:excel中存放着数据,如果要进行计算及其它操作,首先就要进行读取。 目录 安装

    2023年04月12日
    浏览(34)
  • Java通过Excel批量上传数据!!!

    请求配置:uploadApi.ts 准备工作:1、一个与你上传数据相对于的实体类;                   2、定义一个上传信息对象;  实体类: 为了方便演示我就定义两个字段,以供参考:   上传信息对象: Controller层代码: dao层代码: Mapper.xml: 注意:poi的版本号 前端代码:

    2024年04月11日
    浏览(27)
  • Java使用POI读取Excel名称管理器

    本文主要介绍如何使用poi读取到Excel的名称管理器中的内容。并且定位到单元格。 在企业的开发中可能需要通过名称管理器定位到某个单元格,然后在单元格上生成签名。 Java:Jdk1.8 poi:5.2.3 maven依赖(pom.xml): poi的WorkBook有个getNames方法可以读到名称。 Excel的名称在下图中新建

    2024年02月14日
    浏览(32)
  • Java导出Excel模板,导出数据到指定模板,通过模板导入数据(一)

    本文章主要是介绍阿里巴巴的easyexcel的使用 1. 首先需要我们导入easyexcel的依赖包 2. 前期工作准备 编写相关导出模板和导入模板。在项目的resources下创建文件夹,命名为excel 导出模板(此处仅做示例,字段根据自己项目来):  导入模板(导入时需要哪些字段根据自己项目业

    2024年02月03日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包