首页 > 其他分享 >easyExcel时间格式转换器

easyExcel时间格式转换器

时间:2023-08-09 17:22:32浏览次数:32  
标签:return contentProperty 格式 easyExcel excel alibaba import 转换器 com

定义转换器

package com.haier.hibp.stock.util;

import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.converters.WriteConverterContext;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.ReadCellData;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * LocalDateTime 时间格式转换器
 */
public final class LocalDateTimeConverter implements Converter<LocalDateTime> {
    private static final String DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss";

    @Override
    public Class<LocalDateTime> supportJavaTypeKey() {
        return LocalDateTime.class;
    }

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

    @Override
    public LocalDateTime convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
        return LocalDateTime.parse(cellData.getStringValue(), DateTimeFormatter.ofPattern(getFormat(contentProperty)));
    }

    @Override
    public WriteCellData<?> convertToExcelData(WriteConverterContext<LocalDateTime> context) throws Exception {
        LocalDateTime value = context.getValue();
        ExcelContentProperty contentProperty = context.getContentProperty();
        return new WriteCellData<>(value.format(DateTimeFormatter.ofPattern(getFormat(contentProperty))));
    }

    private String getFormat(ExcelContentProperty contentProperty) {
        if (contentProperty == null) {
            return DEFAULT_FORMAT;
        }
        if (contentProperty.getDateTimeFormatProperty() == null) {
            return DEFAULT_FORMAT;
        }
        return contentProperty.getDateTimeFormatProperty().getFormat();
    }
}

使用转换器

ExcelWriter excelWriter = EasyExcelFactory.write(httpServletResponse.getOutputStream())
        .build();
WriteSheet writeSheet = EasyExcelFactory.writerSheet(1, sheetName).head(clazz)
        .registerConverter(new LongStringConverter())
        .registerConverter(new LocalDateTimeConverter())
        .registerWriteHandler(new AutoColumnWidthStrategy()).build();
excelWriter.write(data, writeSheet);

标签:return,contentProperty,格式,easyExcel,excel,alibaba,import,转换器,com
From: https://www.cnblogs.com/shareToAll/p/17617443.html

相关文章

  • 让Photoshop支持.ICO文件格式
    需要安装一个文件插件ICOFormat.8bi。官方下载地址:http://www.telegraphics.net/sw/下载以后的存放路径:...\Required\Plug-ins\FileFormats参考网址:https://blog.csdn.net/weixin_44222492/article/details/101596183......
  • 岩土工程仪器多通道振弦传感器信号转换器应用于桥梁安全监测
    岩土工程仪器多通道振弦传感器信号转换器应用于桥梁安全监测桥梁作为交通运输的重要节点,其安全性一直备受关注。不同于其他建筑物,桥梁所处的环境复杂多变,同时,其所需承受的负荷也相对较大,这就需要对桥梁的安全进行高效、准确的监测与评估。随着传感器技术的不断发展,多通道振弦传感......
  • 三维模型OSGB格式轻量化压缩必要性分析
    三维模型OSGB格式轻量化压缩必要性分析三维模型是计算机图形学和视觉效果等领域的重要应用之一。然而,由于三维模型通常包含大量的几何信息、纹理信息和其他元素,导致其占用的存储空间和计算资源非常巨大。为了提高三维模型的处理效率和性能,轻量化和压缩成为不可或缺的技术手段。......
  • oracle的时间格式化函数
    oracle的时间格式化函数原文链接:https://blog.csdn.net/aaa1546456/article/details/130830669Oracle数据库中常用的时间格式化函数包括:1.TO_CHAR:将日期型数据格式化为字符串,常用的格式包括:-TO_CHAR(date,'YYYY-MM-DDHH24:MI:SS'):转化成年-月-日时:分:秒的格式。-TO......
  • Linux终端命令行提示符PS1格式修改
    zsh先确定你是用的shell类型,运行echo$SHELL如果你使用的是zsh,那么修改/etc/zshrc其中有一行设置PS1的值的,修改为PS1="%n@%m%1~%#"其它的zsh中转义变量%T系统时间(时:分)%*系统时间(时:分:秒)%D系统日期(年-月-日)%n你的用户名%B-%b开始到结束使用粗体打印%......
  • 【Python】日期格式转换 <字符串、datetime、date>
    #coding:utf-8importdatetimefromdateutil.parserimportparsefromdateutil.relativedeltaimportrelativedeltafromloguruimportloggeraslogsclassdate_transform:"""日期格式转换"""defauto(self,d):"......
  • 遇到的问题------------时间格式转化时java.text.ParseException: Unparseable date:
    -时间格式转化时java.text.ParseException:Unparseabledate:""异常把String time=2013-09-22用 privatefinalstaticSimpleDateFormatsimpleDateFormat=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");simpleDateFormat.parse(time.trim()));转化时报错java.text.......
  • XAML格式化工具:XAML Styler
    XAML格式化的意义在开发WPF应用过程中,编写XAML时需要手动去缩进或者换行,随着时间的推移或者参与开发的人增多,XAML文件内容的格式会越来越乱。要么属性全都写在一行,内容太宽一屏无法完整展现;要么属性单独占一行,难以直观的看清结构;另外xaml元素的属性无序,重要属性查找困难,手动维护......
  • - 前后端数据传输的编码格式(contentType) - Ajax朝后端提交文件数据 - Ajax朝后端提
    前后端数据传输的编码格式(contentType)前后端数据传输的请求方式有两种:get、post我们只研究post请求的编码格式三种编码格式urlencodedform-datajson发送post请求的方式form表单Ajaxpostman(第三方工具,需要下载) form表单发送post请求的时候数据的编码格式请求头conten......
  • 4412 使用usb摄像头拍照YUYV格式
    一、内核设置Linux内核中已经带有很完善的USB摄像头驱动,支持几乎所有的USB摄像头,我们只需要配置内核,选择上相应的Sensor型号即可。配置内核,支持USB摄像头:DeviceDrivers---><*>Multimediasupport---><*>VideoForLinux[*]Ena......