poi批量下载功能

Spring Boot整合批量文件下载功能 导语   在测试功能中,出现了再Spring Boot中打包压缩文件的需求,下面来实现一个这个操作 /** * 批量下载文件 * * @param request * @param response */ @GetMapping("/qcodeExcept") public void qcodeExcept(HttpServletRequest request, HttpServletResponse response) { . 阅读详情

近期在写一个批量下载的功能时,由于需要下载的数据量以及sheet页较多,因此考虑使用poi中的一个SXSSFWorkbook类用以减小内存的消耗:
workbook = new SXSSFWorkbook(new XSSFWorkbook(), rowAccessWindowSize);
但是在使用过程中发现一直在new 这个对象时报错
错误提示如下:

struts2.dispatcher.Dispatcher -Exception occurred during processing request: null
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450)
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:289)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:252)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at org.apache.struts2.rest.RestWorkflowInterceptor.doIntercept(RestWorkflowInterceptor.java:228)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at org.apache.struts2.rest.ContentTypeInterceptor.intercept(ContentTypeInterceptor.java:66)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:161)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at org.apache.struts2.interceptor.MessageStoreInterceptor.intercept(MessageStoreInterceptor.java:194)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at org.apache.struts2.rest.RestActionInvocation.invoke(RestActionInvocation.java:138)
    at com.opensymphony.xwork2.DefaultActionProxy.execute(DefaultActionProxy.java:147)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:563)
    at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at com.asiainfo.portal.framework.external.PortalFirstFilter.doFilter(PortalFirstFilter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at com.sitech.dss.portal.security.filter.AppSecurityContextFilter.doFilter(AppSecurityContextFilter.java:101)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at com.sitech.dss.portal.security.filter.AppLogFilter.doFilter(AppLogFilter.java:56)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.poi.POIXMLTypeLoader
    at org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook$Factory.newInstance(Unknown Source)
    at org.apache.poi.xssf.usermodel.XSSFWorkbook.onWorkbookCreate(XSSFWorkbook.java:425)
    at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:227)
    at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:218)
    at com.sitech.dss.esop2.report.action.ExcelUtils.<init>(ExcelUtils.java:49)
    at com.sitech.dss.esop2.report.action.BatchDownloadAction.batchDownload(BatchDownloadAction.java:45)
    ... 101 more
java.lang.NullPointerException
    at weblogic.servlet.internal.ServletResponseImpl.sendContentError(ServletResponseImpl.java:622)
    at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:666)
    at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:906)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:586)
    at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at com.asiainfo.portal.framework.external.PortalFirstFilter.doFilter(PortalFirstFilter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at com.sitech.dss.portal.security.filter.AppSecurityContextFilter.doFilter(AppSecurityContextFilter.java:101)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at com.sitech.dss.portal.security.filter.AppLogFilter.doFilter(AppLogFilter.java:56)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

仔细阅读错误可以发现根本报错点是:

Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.poi.POIXMLTypeLoader
    at org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook$Factory.newInstance(Unknown Source)
    at org.apache.poi.xssf.usermodel.XSSFWorkbook.onWorkbookCreate(XSSFWorkbook.java:425)
    at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:227)
    at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:218)
    at com.sitech.dss.esop2.report.action.ExcelUtils.<init>(ExcelUtils.java:49)
    at com.sitech.dss.esop2.report.action.BatchDownloadAction.batchDownload(BatchDownloadAction.java:45)

从网上查找了很多的方法大部分是说xmlbeans.jar包未引入或是版本太低,
apache官方poi问题集《http://poi.apache.org/faq.html#faq-N101E6》中是这么说的
I’m using the poi-ooxml-schemas jar, but my code is failing with “java.lang.NoClassDefFoundError: org/openxmlformats/schemas/something”
To use the new OOXML file formats, POI requires a jar containing the file format XSDs, as compiled by XMLBeans. These XSDs, once compiled into Java classes, live in the org.openxmlformats.schemas namespace.
这里的错误指示与我们的不尽相同,大概意思是说ooxml-schemas-1.3.jar包比poi-ooxml-schemas.jar poi-ooxml.jar包功能更全面,于是乎就下载了ooxml-schemas-1.3.jar地址:http://repo1.maven.org/maven2/org/apache/poi/ooxml-schemas/1.3/,放在项目中之后发现问题并解决,还是相同的问题,但是在阅读上面这个解决方法的同时,
这里写图片描述
这里 the components overview section 这个指向:http://poi.apache.org/overview.html这个页面,在这里我们可以清晰的看到POI中各个包之间的依赖关系以及各版本之间的说明
对比自己项目中的jar包发现有不少jar版本较低且与官方推荐的jar包版本不一致,因此决定下载最新的POI3.15jar包之后,去替换项目中的版本,具体jar包列表如下:
commons-codec-1.10.jar
junit-4.12.jar
commons-collections4-4.1.jar
log4j-1.2.17.jar
commons-logging-1.2.jar
poi-3.15.jar
poi-examples-3.15.jar
poi-excelant-3.15.jar
poi-ooxml-3.15.jar
poi-ooxml-schemas-3.15.jar
poi-scratchpad-3.15.jar
curvesapi-1.04.jar
xmlbeans-2.6.0.jar
引入这些jar包后,将项目中重复的jar删除,更新启动ok,运行成功。

特别注意:升级jar包版本时请谨慎,以防出现其他bug!

基于STM32F407标准库与SimpleFOC实现无刷电机2804位置闭环控制的实战解析 本文详细解析了基于STM32F407标准库与SimpleFOC算法实现2804无刷电机位置闭环控制的实战过程。通过硬件选型、速度闭环调试到位置环PID参数整定,提供了完整的工程实现方案和抗饱和策略,帮助开发者掌握高精度电机控制技术。 阅读详情

相关推荐

一文读懂资管系统里的“清算路径”:钱和券的“导航地图”

简单来说,清算路径就是给每一笔交易预设好的“导航路线”。钱从哪个银行账户出?通过哪家证券公司去买?用哪个股东账户去登记?买回来的股票记在谁的名下?“清算路径”就是把这一连串问题的答案提前配置好。它连接了银行托管户(钱的源头)、券商(交易的中介)和交易所(买卖的市场)。没有配好这条路,交易就无法闭环。清算路径是金融基础设施的缩影。资金如何安全地从银行流向市场;资产如何合法地归属到产品名下;交易数据如何在不同系统间流转。它是资管系统能够日复一日、准确无误地处理亿万级交易的基石。

m0_37607945的博客 236

【poi】java操作office(一)

依赖 poi是导出excel需要引入的包;poi-ooxml和poi-ooxml-schemas是导出word需要引入的包 poi是操作xls的,poi-ooxml是操作xlsx的 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <versio

kanseu的博客 4901

NVIDIA DRIVE SDK学习(二)——NvMedia

可以通过使用NvSciBuf API通过NvMedia Tensor属性分配NvSciBuf来创建NvMedia张量。由于NvSciBuf API有助于NvMedia和NVIDIA®CUDA®之间的数据共享,这使得分配的张量可以在NvSciBuf API允许的情况下重复使用。它支持图像聚合操作。NvSciSync组件使得NvMedia组件可以与其他组件保持同步,比如CUDA组件、基于NvSciSync的组件等。立体视差模式:在这种模式下,该模块通过左图像和右图像来产生立体视差,从而进行物体深度测量。

weixin_39592381的博客 3046

2021-02-17

今天,一朋友问我使用JAVA有没有什么办法导出百万级的数据到Excel工作表。   当时我的第一个念头就是这真的是一个好疯狂的念头。然后就想假如真的有这样类似的需求,我自己应该怎么做呢?      ps: 首先科普一下基础知识   Excel 2003及以下的版本。一张表最大支持65536行数据,256列。也就是说excel2003完全不可能满足百万数据导出的需求。   Excel 2007-2010版本。一张表最大支持1048576行,16384列;   笔者使用的是office 2010,更

u011277123的博客 3050

C# emgu.cv图像识别 从大图中寻找小图,判断存在图的相似度

这是2个问题,我采用emgu.cv来解决这个识别问题,这里需要在nuget中引用emgu。最近写了一个在一张图片中,截取一部分,通过机器判断截取图片是这张图片的。第一、通过小图去找判断是否存在大图中,第二、小图存在大图的什么位置。

一个专注于技术研究创新的程序员 2467

人工智能训练师认证教程(5)使用MONAI进行医学影像分析的完整指南

本文介绍了使用MONAI框架进行医学影像分析的全流程。首先详细说明了环境搭建步骤,包括PyTorch和MONAI的安装配置。然后以肺部CT 3D分割为例,分步骤讲解了数据准备与预处理、3D UNet模型构建、训练配置(DiceLoss损失函数、Adam优化器等)以及训练验证循环的实现。文章还包含推理可视化方法和模型导出为ONNX格式的部署方案,并强调了医学影像分析中的数据格式适配、强度归一化、显存优化等关键注意事项。最后指出MONAI的医学专用组件可大幅简化开发流程,建议后续可探索SwinUNETR等进阶方

华为开发者布道师,天府英才计划,致力于大数据+AI 的应用创新,助力企业与个人AI创新赋能。 1211

java web开发问题集锦

简单 1. cannot resolve symbol Test(Junit) 以IntelliJ作为java 开发IDE,代码里写有一些方法,习惯是在当前类里面再写一个测试方法(因为并不是生产代码,习惯不好貌似不要紧),在测试方法上面添加注解@Test,但是报错cannot resolve symbol Test。感觉很莫名其妙,pom.xml文件里面已经添加JUnit的dependen.........

lonelymanontheway的博客 6946

【Python计量】linearmodels面板数据回归(一)

我们以伍德里奇《计量经济学导论现代方法》的”第14章高级面板数据方法“的案例14.1为例,使用jtrain中的数据来进行固定效应估计。

mfsdmlove的博客 9277

poi-ooxml-schemas 1.x 版本升级4.1.2踩坑指南

结果poi顺利导入成功,shcemas死活下不到,原因是二者的artifactId不一致了。dependencyManagement 只是管理依赖,子模块不会直接下载。原项目的poi和schemas都比较老旧,想升级到新版本。】的地方,同步修改否则仓库还是会提示下不到包【】修改为新版本artifactId。在其他引用此依赖管理【

alwishicometrue的博客 2374

车间数据孤岛终于破了!C#上位机+MQTT打通产线与MES,数据延迟从小时级降到秒级

本文针对工业上位机开发中常见的车间数据与企业管理系统(MES)割裂问题,提出基于C#和MQTT协议的完整解决方案。通过EMQX MQTT Broker实现数据实时双向传输,将质量追溯时间从2小时缩短至10秒,生产计划自动下发,实现秒级数据延迟。方案采用分层解耦架构,支持设备更换和系统升级,核心优势包括低延迟、高可靠性和易扩展性。文章详细介绍了MQTT协议选型理由、整体架构设计、技术选型(EMQX Broker和MqttNet客户端),并提供了C#实现代码和部署流程。该方案已在实际产线验证,可有效解决&quo

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 482

写给开发人员的实用密码学 - Hash算法

说到Hash(哈希),开发人员应该不陌生,比如Hash表是一种非常常用的数据结构,通过Hash表能够根据键值快速找到数据。哈希函数将文本(或其他数据)映射为整数,从而能够提高检索效率。密...

云水木石 1503

JAVA导入/出EXCEL表格 POI

POI简介: 目前最新版本是Apache POI 4.1.0(Apache POI团队于2019年4月9日宣布发布),个人觉得旧版本中的3.6版比较稳定。 自版本POI 4.0.1起,POI需要Java 8或更高版本。 POI 3.11及更高版本3.x版本需要JDK 1.6或更高版本。 POI 3.5到3.10需要JDK 1.5或更高版本。3.5之前的版本需要JDK 1.4+。 Apac...

Welcome to loveuui's blog 6743

FISCO BCOS(八)——— 一键部署 WeBase

环境 版本 Java Oracle JDK 8 至 14 MySQL MySQL-5.6及以上 Python Python3.6及以上 PyMySQL 1、获取部署安装包: wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.4/webase-deploy.zip 2、解压安装包: unzip webase-deploy.zip 3、进入目录: c...

林中有神君 3607

用poi框架进行批量导入导出实例

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能。我们这里使用poi对数据库中的数据进行批量导出,以及从Excel文件中的数据批量导入到数据库中。   批量导出: 步骤:1.导

fengg5241的专栏 1079

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

poi实现excel模板下载和批量导入

Excel的批量导入相信是很多软件绕不过去的功能吧。使用poi实现Execl模板下载和批量导入的功能特此记录一下。 先上结果界面的代码如下。 <fieldset class="layui-elem-field"> <div class="layui-field-box"> <form action="uploadSubjectExcel.action" method="post" enctype="multipart/form-data"> <di

weixin_42201579的博客 942

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

httpservletresponse 一次导出多个word_POI实战1——好久不见,导出Excel的方式你知道几种?...

最近工作繁忙实在是没有精力,今晚肝了一下解惑:①hutool工具(底层POI)②模板引擎(thymeleaf或FreeMarker)③POI④其他对POI封装的插件总的来说,POI好强大,不会用岂不可惜?来看一下我使用POI批量导出Excel的实战日志吧!一、POI简介Apache POI api的主要用途是用于文本提取应用程序,例如网络蜘蛛,索引构建器和内容管理系统。官网如是说,其实就...

weixin_39934063的博客 786

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

poi批量导入导出Excel(三、通过模板导出Excel并能实现导入多个sheet表)

本项目基于SSM框架,简单封装了Excel批量导入导出功能,不用建数据库表一键导入导出Excel,不过这样只适用于对导入的Excel表进行转换,通过模板导出Excel并且能实现导入多个sheet表。上一篇介绍了建表导入导出Excel(点击跳转)一、下载poi jar包:    点这里下载:poi 3.8/3.9/3.10三个版本下载                         poi 3.17...

未曾远去 6247

POI实现excel文件的批量导入和导出代码实现

最近有做一个类似百度网盘的项目,其中有用到excel文件上传和下载的功能,使用的poi来实现文件的上传和下载的,先列一下实现的功能,再放代码.1.模板类的导出;2.excel文件的导出;3.excel文件的导入;pom.xml引入依赖&lt;dependency&gt; &lt;groupId&gt;org.apache.poi&lt;/groupId&gt; ...

kebo_china的博客 1184

基于SpringBoot+Hutool-POI 实现文件上传下载与学生数据批量导入导出

本文基于SpringBoot+Hutool-POI,完整实现了文件上传下载、学生数据批量导入导出功能,核心优势在于:1. 代码简洁:借助Hutool-POI封装的API,避免了POI原生API的繁琐操作,几行代码即可实现Excel导入导出,开发效率提升50%以上。2. 可复用性强:所有功能集成在一个控制器中,代码结构清晰,可直接复制到自己的项目中,替换实体类和Service即可使用。

深耕 Java 生态 | 从基础到架构,步步进阶 | 以技术实力角逐理想岗位 1158

poi批量导入导出Excel(二、不需要建数据库表一键实现导入导出功能)

本项目基于SSM框架,简单封装了Excel批量导入导出功能,不用建数据库表一键导入导出Excel,不过这样只适用于对导入的Excel表进行转换。上一篇介绍了建表导入导出Excel(点击跳转)一、下载poi jar包:    点这里下载:poi 3.8/3.9/3.10三个版本下载                        poi 3.17最新版本下载二、基本操作步骤:   首先,理解一下一个E...

未曾远去 1070

JAVA实现Excel批量导入

一、模板下载: 先将模板放在项目WebRoot下的download文件夹下: View Code /** * * @Title: download * @Description: 下载本地文件 * @param @param path * @param @param response * @param ...

zengqingshanzheng的博客 2万+

使用POI导出为word并打包为zip下载

使用POI导出为word并打包为zip下载 先前要做一个功能:导出并压缩多个word文档,于是发现了导出word的6种方式:http://www.cnblogs.com/lcngu/p/5247179.html 虽然都说poi不适合用来导出word,但是还是义无反顾的用了poi,下面正题。 package com.qinghuainvest.export.web; import jav...

DimTheMoon的博客 2417

第3章业务功能开发(批量导出市场活动,apache-poi)

客户需求:用户在市场活动主页面,点击"批量导出"按钮,把所有市场活动生成一个excel文件,弹出文件下载的对话框;用户选择要保存的目录,完成导出市场活动的功能.*导出成功之后,页面不刷新功能开发知识点:1,导出市场活动: 1)给"批量导出"按钮添加单击事件,发送导出请求 2)查询所有的市场活动 3)创建一个excel文件,并且把市场活动写到excel文件中 4)把生成的excel文件输出到浏览器(文件下载) 技术准备: 1)使用java生成excel文件:iText

weixin_59334478的博客 384

POI批量导出Excel ZIP打包下载

POI批量导出Excel ZIP打包下载 1.公共抽象导出Excel类   需要自己实现两个抽象方法: getColumValueForColunmName : 扩展方法:根据名称判断来做值得转换 比如:if(key==date) value='2018-11-07' getExcelWorkbook: 生成Excel方法(参数详情请参阅代码) packa...

qq_18600061的专栏 1831
上一篇: Mybatis入门(一)
下一篇: Java jdbc oracle10g
laborwork
博客等级 码龄14年 3粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值