zoukankan      html  css  js  c++  java
  • easyexcel设置单元格格式为文本

    导出时注册registerWriteHandler(new RowWriteHandlerImpl())

    /**
     * @author jamin
     * @date 2020/7/29 15:18
     */
    public class RowWriteHandlerImpl implements CellWriteHandler {
    
    
        @Override
        public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Head head, Integer integer, Integer integer1, Boolean aBoolean) {
    
        }
    
        @Override
        public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell, Head head, Integer integer, Boolean aBoolean) {
            //设置单元格格式为文本
            Workbook workbook = writeSheetHolder.getSheet().getWorkbook();
            CellStyle cellStyle = workbook.createCellStyle();
            DataFormat dataFormat = workbook.createDataFormat();
            cellStyle.setDataFormat(dataFormat.getFormat("@"));
            cell.setCellStyle(cellStyle);
    
        }
    
        //加@Override会报错
        public void afterCellDataConverted(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, CellData cellData, Cell cell, Head head, Integer integer, Boolean aBoolean) {
    
        }
    
        @Override
        public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List<CellData> list, Cell cell, Head head, Integer integer, Boolean aBoolean) {
    
        }
    }
    

    测试代码,针对评论中空格,开始为0的问题
    easyexcel版本

     <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>easyexcel</artifactId>
                <version>2.2.6</version>
      </dependency>
    
    import com.alibaba.excel.EasyExcel;
    import com.alibaba.excel.annotation.ExcelProperty;
    import com.alibaba.excel.metadata.CellData;
    import com.alibaba.excel.metadata.Head;
    import com.alibaba.excel.write.handler.CellWriteHandler;
    import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
    import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
    import org.apache.poi.ss.usermodel.*;
    
    import java.time.LocalDateTime;
    import java.time.format.DateTimeFormatter;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * @author Jamin
     * @date 2021/3/3 11:21
     */
    public class Test {
    
    	@org.junit.Test
    	public void test() {
    		List<Person> list = new ArrayList<>();
    		for (int i = 0; i < 100; i++) {
    			Person person = new Person();
    			person.setDate(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
    			person.setId("0"+i);
    			person.setName(" ");
    			list.add(person);
    		}
    		EasyExcel.write("d:\1.xls").sheet(0).registerWriteHandler(new RowWriteHandlerImpl()).doWrite(list);
    	}
    
    	class Person {
    		/**
    		 * names
    		 */
    		@ExcelProperty(index = 2)
    		private String name;
    		/**
    		 * id
    		 */
    		@ExcelProperty(index = 0)
    		private String id;
    		/**
    		 * Dates
    		 */
    		@ExcelProperty(index = 1)
    		private String date;
    
    		public Person() {
    		}
    
    		public String getName() {
    			return name;
    		}
    
    		public void setName(String name) {
    			this.name = name;
    		}
    
    		public String getId() {
    			return id;
    		}
    
    		public void setId(String id) {
    			this.id = id;
    		}
    
    		public String getDate() {
    			return date;
    		}
    
    		public void setDate(String date) {
    			this.date = date;
    		}
    	}
    
    
    
    
    	/**
    	 * @author jamin
    	 * @date 2020/7/29 15:18
    	 */
    	class RowWriteHandlerImpl implements CellWriteHandler {
    
    
    		@Override
    		public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Head head, Integer integer, Integer integer1, Boolean aBoolean) {
    
    		}
    
    		@Override
    		public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell, Head head, Integer integer, Boolean aBoolean) {
    			//设置单元格格式为文本
    			Workbook workbook = writeSheetHolder.getSheet().getWorkbook();
    			CellStyle cellStyle = workbook.createCellStyle();
    			DataFormat dataFormat = workbook.createDataFormat();
    			cellStyle.setDataFormat(dataFormat.getFormat("@"));
    			cell.setCellStyle(cellStyle);
    
    		}
    
    		//加@Override会报错
    		public void afterCellDataConverted(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, CellData cellData, Cell cell, Head head, Integer integer, Boolean aBoolean) {
    
    		}
    
    		@Override
    		public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List<CellData> list, Cell cell, Head head, Integer integer, Boolean aBoolean) {
    
    		}
    	}
    
    
    
    }
    


    作者: JaminYe
    版权声明:本文原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
  • 相关阅读:
    嵌入式框架Zorb Framework搭建五:事件的实现
    C#网络编程系列文章(五)之Socket实现异步UDP服务器
    C#SocketAsyncEventArgs实现高效能多并发TCPSocket通信 (服务器实现)
    C#中的ManagementClass类
    Etcd v3备份与恢复
    kubernetes调度重平衡工具 Descheduler
    K8S – 优化dns解析时间
    kubernetes备份和恢复
    Coredns部署更新
    认识Kubernetes Descheduler
  • 原文地址:https://www.cnblogs.com/JaminYe/p/13401439.html
Copyright © 2011-2022 走看看