java poi excel无法添加水印替代方法
poi无法直接通过代码生成水印效果,只能生成图片以及背景图。
提供一种可行办法就是预留一份现成的带有水印的excel模板,以模板创建workbook,再向其添加内容,这样即可实现导出带有水印的excel,需要注意的是poi版本不能太老,太老的不支持此操作。
代码试例如下:
@WebServlet(name = "poiServlet", urlPatterns = "/public/poi")
public class PoiCtrl extends HttpServlet {//excel模板路径private final String poiModelPath = this.getClass().getClassLoader().getResource("/").getPath() + "poi_model.xls";/*** @description: poi水印* @date 17:12 2020/2/10* @param req* @param resp* @exception java.rmi.ServerException* @exception IOException* @return void*/@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {try (InputStream inputStream = new FileInputStream( new File(poiModelPath) )){HSSFWorkbook workbook = new HSSFWorkbook(inputStream);Font baseFont = workbook.createFont();baseFont.setBold(true);baseFont.setFontHeightInPoints((short) 10);CellStyle baseStyle = workbook.createCellStyle();baseStyle.setAlignment(HorizontalAlignment.CENTER);baseStyle.setVerticalAlignment(VerticalAlignment.CENTER);Sheet sheet = workbook.getSheetAt(0);for (int i = 0; i < 10; i++) {sheet.setColumnWidth(i, 20 * 256);//设置每一列的宽度}sheet.createFreezePane(0,1, 0, 1);//冻结首行for (int i = 0; i < 20; i++) {Row row = sheet.createRow(i);row.setHeightInPoints(34f);for (int j = 0; j < 10; j++) {Cell cell = row.createCell(j);cell.setCellValue( i + ":" + j );cell.setCellStyle(baseStyle);}}try (OutputStream outputStream = resp.getOutputStream()){resp.reset();resp.setContentType("application/msExcel");resp.setHeader("Content-Disposition", "attachment;filename=price.xls");workbook.write(outputStream);}}}
}
maven:
<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.0</version>
</dependency>
模板图:
效果图:
java poi excel无法添加水印替代方法相关推荐
- 在Java生成的html页面加水印,Java在Excel中添加水印的实现(单一水印、平铺水印)...
在Excel中没有直接添加水印的功能,但依旧可以通过一定方式来实现类似水印效果.本文通过Java程序代码介绍具体实现方法.可添加单一水印效果,即水印是以单个文本字样来呈现:也可添加多个平铺水印效果,即 ...
- Java POI Excel导入导出
Java POI Excel导入导出 1.maven引入依赖 2.导入Excel 3.导出Excel 1.maven引入依赖 <!-- POI Excel 操作 --> <depen ...
- Java POI Excel移动行和复制行的处理
目录 Java POI Excel移动行和复制行的处理 坑点: 实现的代码 Java POI Excel移动行和复制行的处理 POI操作Excel时,不支持移动行的操作,因此在需要通过复制行+删除行+ ...
- JAVA POI Word转PDF convert方法 NullPointException
JAVA POI Word转PDF convert方法 NullPointException 如果操作过通过POI操作过Word,请保证创建run之后run的值不为null,为null将在转换时报错. ...
- Java POI——Excel导入导出的列英文字母与数字的互转方法记录
因项目需要,写了递归实现POI--excel英文字母列转列编号,记录. 规则1:excel英文字母列转数字编号:A→0,B→1,Z→25,AA→26,ZZ→701,AAA→702 - public i ...
- java poi excel 导入数据库_java POI 处理excel表格数据并导入数据库示例
java操作Excel最常用的开源组件有poi与jxl.jxl是韩国人开发的,发行较早,但是更新的很慢,目前似乎还不支持excel2007. poi是apache下的一个子项目,poi应该是处理ms的 ...
- Java POI Excel( pio:纯java操作excel的api )
2010-03-17 21:35 POI官方网址:http://poi.apache.org/ POI的功能实在很强大,而且是apache的子项目,它下面又包含一些Component,比如处理Exce ...
- java poi excel 生成表格的工具封装
效果如下: 代码如下: import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import ...
- Java poi给word添加水印,字体,颜色,倾斜度等
之前使用poi-tl进行word模板生成word文件,在生成word之后,现在需求需要给word添加一个水印的功能,先贴图生成后的效果,部分内容涉及公司信息打了马赛克, 贴一下代码 /*** @aut ...
最新文章
- Neuron最新研究:神经科学家测量球迷大脑对比赛的反应,试图挖掘人类的深层天性...
- JVM:堆中对象的创建?定位?可达性?
- Java——多线程(死锁)
- sa密码修改记录_【数据完整性】一文读懂电子记录与电子签名
- 一步一步 IText.Sharp 之 Hello Word
- http://acm.whu.edu.cn/land/problem/detail?problem_id=1464
- 2021华为软件精英挑战赛(粤港澳赛区复赛第八)
- 计算机无法对光盘格式化,使用驱动器X:中的光盘之前需要将其格式化,是否需要将其格式化?...
- Nested weights are bad for performance警告
- 我来说说我给宝宝买保险的事
- 货车什么叫半挂?什么叫全挂?
- Tianchi×Datawhale 零基础信贷模型预测 task04
- 极速office(word)怎么添加着重号
- 围棋 android 开源,腾讯正式开源围棋AI技术PhoenixGo
- Javascript 实现城市选择控件
- windows下同步方案-cwRsync
- 数码管点亮中几个常见三极管基极导通状态
- # 靠谱:开源IM项目OpenIM压测程序介绍-自己动手压测性能和稳定性
- 大厂面试系列一些问题的解答
- 2022年度交通运输行业重点科技项目申报开始,重点关注这几个方向