96SEO 2026-02-20 05:49 4
对于导入功能能够轻松应对包含多种数据类型、复杂结构以及大量数据的

中的数据快速导入到系统中为后续的数据处理和业务逻辑提供有力支持。
报表的需求。
无论是生成详细的业务数据报表还是复杂的统计分析结果都能通过这个整合方案轻松实现。
EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。
在尽可能节约内存的情况下支持读写百M的Excel。
由于默认一行行的读取excel所以需要创建excel一行一行的回调监听器参照{link
文件流会自动关闭EasyExcel.read(fileName,
DemoDataListener()).sheet().doRead();
com.alibaba.easyexcel.test.demo.write.DemoData}*
需要指定写用哪个class去读然后写到第一个sheet名字为模板
传入excelType参数即可EasyExcel.write(fileName,
DemoData.class).sheet(模板).doWrite(data());
xmlnshttp://maven.apache.org/POM/4.0.0
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.7.1/versionrelativePath/
--/parentgroupIdcom.example/groupIdartifactIdSpringBoot-easyexcel/artifactIdversion0.0.1-SNAPSHOT/versionnameSpringBoot-easyexcel/namedescriptionDemo
Boot/descriptionpropertiesjava.version1.8/java.version/propertiesdependencies!--
--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!--
--dependencygroupIdcom.alibaba/groupIdartifactIdeasyexcel/artifactIdversion3.1.1/version/dependency!--
--dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.8.1/version/dependency!--
--dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.12/version/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project
创建一个数据模型类用于表示Excel中的一行数据。
例如我们有一个包含用户信息的复杂Excel表格
com.alibaba.excel.annotation.ExcelIgnore;
com.alibaba.excel.annotation.ExcelProperty;
com.alibaba.excel.annotation.write.style.ColumnWidth;
com.alibaba.excel.metadata.data.WriteCellData;
userAddress;ExcelProperty(value
registerTime;ExcelProperty(value
性别男:红色/女:绿色)ColumnWidth(30)private
org.springframework.stereotype.Service;
javax.servlet.http.HttpServletResponse;
设置响应类型response.setContentType(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet);//
设置编码格式response.setCharacterEncoding(utf-8);//
设置响应头response.setHeader(Content-disposition,
.xlsx);EasyExcel.write(response.getOutputStream(),
UserData.class).inMemory(true).sheet(用户信息表).doWrite(userDataList);}private
设置单个单元格的填充类型cellData.setType(CellDataTypeEnum.RICH_TEXT_STRING);RichTextStringData
RichTextStringData();cellData.setRichTextStringDataValue(richTextStringData);richTextStringData.setTextString(gender);WriteFont
{//设置颜色为红色writeFont.setColor(IndexedColors.RED.getIndex());}
{//设置颜色为绿色writeFont.setColor(IndexedColors.GREEN.getIndex());}//应用颜色字体richTextStringData.applyFont(writeFont);return
com.alibaba.excel.annotation.ExcelIgnore;
com.alibaba.excel.annotation.ExcelProperty;
com.alibaba.excel.annotation.write.style.ColumnWidth;
com.alibaba.excel.metadata.data.WriteCellData;import
com.alibaba.excel.context.AnalysisContext;
com.alibaba.excel.event.AnalysisEventListener;
com.alibaba.excel.util.ListUtils;
com.alibaba.excel.util.StringUtils;
org.springframework.stereotype.Service;import
每隔一定数量的数据存储到数据库可根据实际情况调整。
*/private
Pattern.compile(^1[0-9]{10}$);/***
ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);/***
ExcelImportService(UserDataRepository
CustomAnalysisEventListener()).sheet().doRead();}class
analysisContext.readRowHolder().getRowIndex();String
userData.getUserEmail();Integer
{cachedDataList.add(userData);}//
{saveDataToDatabase();cachedDataList
ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);}}Overridepublic
doAfterAllAnalysed(AnalysisContext
{log.info(所有数据解析完成全部校验通过的数据有{}条,
保存剩余数据到数据库saveDataToDatabase();}Overridepublic
context.readRowHolder().getRowIndex()
context.readSheetHolder().getApproximateTotalRowNumber()
{errorMsgList.add(数据量过大,单次最多上传2000条);throw
RuntimeException(数据量过大,单次最多上传2000条);}}}/***
{userDataRepository.saveAll(cachedDataList);}public
org.springframework.beans.factory.annotation.Autowired;
org.springframework.web.bind.annotation.*;
org.springframework.web.multipart.MultipartFile;
javax.servlet.http.HttpServletResponse;
exportUsers(HttpServletResponse
判断userDataList是否为空为空就去数据库查询数据后执行导出操作
修改性别单元格的样式excelExportService.buildCellData(userData.getGender)}
}excelExportService.exportUsers(userDataList,
excelImportService.importExcel(filePath);
导出Excel文件http://localhost:8080/excel/export可以传递一个data参数包含要导出的用户数据
导入Excel文件http://localhost:8080/excel/import上传一个Excel文件‘
com.alibaba.excel.annotation.ExcelProperty;
com.alibaba.excel.annotation.write.style.ColumnWidth;
com.alibaba.excel.annotation.ExcelProperty;
com.alibaba.excel.annotation.write.style.ColumnWidth;
companyName;ExcelProperty(value
companyBoss;ExcelProperty(value
companyBase;ExcelProperty(value
org.springframework.stereotype.Service;
javax.servlet.http.HttpServletResponse;
设置响应类型response.setContentType(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet);//
设置编码格式response.setCharacterEncoding(utf-8);//
设置响应头response.setHeader(Content-disposition,
多个sheet的输出需要使用ExcelWriter类这里想要下载成功需要输出到OutputStream中try
EasyExcel.write(response.getOutputStream()).inMemory(true).build())
创建用户信息表的sheet写入用户信息数据1代表sheet的位置是第一个WriteSheet
用户信息表).head(UserData.class).build();excelWriter.write(userDataList,
创建城市信息表的sheet写入城市信息数据2代表sheet的位置是第二个WriteSheet
城市信息表).head(City.class).build();excelWriter.write(cityList,
创建公司信息表的sheet写入公司信息数据3代表sheet的位置是第三个WriteSheet
公司信息表).head(Company.class).build();excelWriter.write(companyList,
org.springframework.beans.factory.annotation.Autowired;
org.springframework.web.bind.annotation.*;
org.springframework.web.multipart.MultipartFile;
javax.servlet.http.HttpServletResponse;
exportUsers(HttpServletResponse
userDataList,RequestParam(value
判断userDataList是否为空为空就去数据库查询数据后执行导出操作
}excelExportAllService.exportUsers(userDataList,cityList,companyList,
导出Excel文件http://localhost:8080/excelAll/export
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback