一、EasyExcel下载
EasyExcel是Alibaba EasyExcel项目的一部分,它是一个基于Java的简单而强大的Excel操作库,支持读写Excel的XLSX、XLS和CSV格式文件,使用起来非常方便。在Java编程中,EasyExcel常用于数据导入导出以及Excel文件处理。在本小节,我们将阐述EasyExcel下载的相关内容。
1、EasyExcel下载方式
EasyExcel的下载方式非常简单,打开EasyExcel的GitHub主页,选择Release页,进入EasyExcel下载页面。其中,可以下载不同版本的jar包文件,如easyexcel-2.0.0.jar。
2、Maven库依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.0.0</version>
</dependency>
3、Gradle依赖
implementation 'com.alibaba:easyexcel:2.0.0'
二、阿里EasyExcel大文件下载
当Excel文件过大时,传统的Excel操作方式会出现内存溢出、读写速度慢等问题,给我们的操作带来困扰。EasyExcel提供了一个高效处理大文件的技术,在面对大数据时,它可以帮助我们减少内存消耗,提高读写效率。接下来,我们将介绍EasyExcel大文件下载的相关内容。
1、EasyExcel大文件下载使用
使用EasyExcel处理大文件时,可以通过以下步骤操作。
① 创建一个实体类,该类用于映射Excel文件的每一行数据。
@Data
public class DemoData {
@ExcelProperty("字符串标题")
private String string;
@ExcelProperty("日期标题")
private Date date;
@ExcelProperty("数字标题")
private Double doubleData;
}
② 创建Excel读取监听器和填写监听器。
public class DemoDataListener extends AnalysisEventListener<DemoData> {
private static final Logger LOGGER = LoggerFactory.getLogger(DemoDataListener.class);
private static final int BATCH_COUNT = 5;
private List<DemoData> list = new ArrayList<>();
@Override
public void invoke(DemoData data, AnalysisContext context) {
LOGGER.info("解析到一条数据:{}", JSON.toJSONString(data));
list.add(data);
if (list.size() >= BATCH_COUNT) {
saveData();
list.clear();
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
saveData();
LOGGER.info("所有数据解析完成!");
}
private void saveData() {
LOGGER.info("{}条数据,开始存储数据库!", list.size());
LOGGER.info("存储数据库成功!");
}
}
public class FillDataListener extends WriteHandler {
@Override
public void row(int sheetNo, int rowIndex, List<?> rowList) {
System.out.println("sheetNo: " + sheetNo + " rowIndex: " + rowIndex + " is created!");
}
}
在上述代码中,DemoDataListener用于读取Excel文件,FillDataListener用于填写Excel文件。
③ 读取Excel文件并处理。
public static void read(String fileName) throws FileNotFoundException {
InputStream inputStream = new FileInputStream(fileName);
try {
ExcelReader excelReader = new ExcelReader(inputStream, ExcelTypeEnum.XLSX, null, new DemoDataListener());
excelReader.read(new Sheet(1, 1, DemoData.class));
} finally {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
其中,读取Excel文件时需要传入DemoDataListener监听器,读取Sheet等信息也需要根据实际情况进行配置。
④ 填写Excel文件。
public static void write(String fileName) throws FileNotFoundException {
OutputStream outputStream = new FileOutputStream(fileName);
try {
ExcelWriter excelWriter = new ExcelWriter(outputStream, ExcelTypeEnum.XLSX);
WriteSheet sheet = new WriteSheet();
sheet.setSheetNo(1);
sheet.setClazz(DemoData.class);
sheet.setWriteHandler(new FillDataListener());
excelWriter.write(Collections.emptyList(), sheet);
//pojoList 数据可以分批设置在sheet中,每个sheet可以放置多少数据,最好在10万到10万之间
sheet.setSheetName("demo");
excelWriter.finish();
} finally {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在写入Excel文件之前,需要创建ExcelWriter和WriteSheet对象,填写监听器可以通过WriteSheet对象设置。
三、EasyExcel导出图片
在进行Excel操作时,有时会遇到需要将图片导入或导出Excel中的情况。EasyExcel给我们提供了一个便捷的方式来操作这些图片。本小节,我们将介绍EasyExcel导出图片的相关内容。
1、EasyExcel导出图片使用
EasyExcel导出图片可以通过以下步骤实现。
① 建立一个包含图片的实体类。
@Data
public class DemoData {
private String name;
@ExcelIgnore
private byte[] imageData;
@ExcelImage
private byte[] getImageData() {
return imageData;
}
}
其中,@ExcelIgnore用于忽略imageData属性;@ExcelImage表示该属性将被导出为图片。
② 填充数据。
List<DemoData> list = new ArrayList<>();
// 填充数据
for (int i = 0; i < 10; i++) {
DemoData demoData = new DemoData();
demoData.setName("张三");
demoData.setImageData(FileUtils.readFileToByteArray(new File("D:\\image.jpg")));
list.add(demoData);
}
其中,imageData属性需要填充为二进制图片数据。
③ 将实体类数据导出为Excel文件。
String fileName = "D:\\demo.xlsx";
File file = new File(fileName);
if (!file.exists()) {
file.createNewFile();
}
OutputStream out = new FileOutputStream(fileName);
ExcelWriter excelWriter = EasyExcel.write(out, DemoData.class).registerWriteHandler(new ImageWriteHandler()).build();
WriteSheet writeSheet = EasyExcel.writerSheet(0).autoTrim(true).build();
excelWriter.write(list, writeSheet);
excelWriter.finish();
out.close();
在以上代码中,ImageWriteHandler类用于将imageData属性转换为Excel可识别的图片数据。
四、EasyExcel官网
EasyExcel官网提供了更多详细的EasyExcel相关信息,包括常见问题解答、更新日志、文档等。请点击此处访问EasyExcel官网。
五、easytouch下载
easytouch是一款强大的远程控制软件,它可以帮助用户远程操控其他电脑,实现远程工作或学习。该软件支持Windows、Linux等多种操作系统,使用起来非常方便。请点击此处进入easytouch下载页面。