java poi 常用功能代码(适用于XSSFWorkbook:Excel2007后的版本,扩展名是.xlsx)

Excel验证公式

=AND(H8>0,OR(H8=INT(H8),LEN(H8)-FIND(".",H8&".")<3)) //小数位小于2并且大于0
=AND(H8>0,OR(AND(H8=INT(H8),LEN(H8)<21),AND(LEN(H8)-FIND(".",H8&".")<3,FIND(".",H8&".")<22)))//小数位小于2并且大于0 整数位数小于21 (用<=公式会失效)
if(条件,满足条件执行语句,不满足条件执行语句)
find()--获取字符出现位置
LEN()--获取值长度

给sheet页加锁保护不允许更改未解锁的内容

sheet.setForceFormulaRecalculation(true);
sheet.protectSheet("RMS2016");
--给整个文件加锁不允许添加sheet页
workbook.lockStructure();
workbook.setWorkbookPassword("RMS2016",null);

给单元格内容加公式

cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
cell.setCellFormula("=H8");

单元格的数据有效性验证

DataValidationHelper helper = sheet.getDataValidationHelper();
String formula1="=AND(H8>0,OR(H8=INT(H8),LEN(H8)-FIND("+"\".\""+",H8&"+"\".\")<3))";//2位小数公式并且验证正数
String formula1="=AND(H8>0,OR(AND(H8=INT(H8),LEN(H8)<20),AND(LEN(H8)-FIND("+"\".\""+",H8&"+"\".\")<3,FIND("+"\".\""+",H8&"+"\".\")<21)))";//2位小数公式验证正数并且整数位数最大为20
DataValidationConstraint constraintNum = new XSSFDataValidationConstraint(DataValidationConstraint.ValidationType.FORMULA, DataValidationConstraint.OperatorType.EQUAL,formula1);//验证类型及验证内容
CellRangeAddressList regionNumber = new CellRangeAddressList(7, unitList.size()+7, 7, 7);//验证的单元格起始行列
DataValidation validationNum = helper.createValidation(constraintNum, regionNumber);
validationNum2.createErrorBox("", "The cell must contain a non-negative number with at most 2 decimal places and length can not exceed 20.");//验证错误提示信息
validationNum2.setShowErrorBox(true);//是否显示提示信息弹框
sheet.addValidationData(validationNum2);//将验证功能添加到此sheet页

设置打印的纸张样式

XSSFPrintSetup ps = sheet.getPrintSetup();//拿到打印设置
ps.setLandscape(true);//纸张横向
ps.setPaperSize(XSSFPrintSetup.A4_PAPERSIZE);//打印的纸张大小
sheet.setFitToPage(true);//设置打印到一页

冻结窗口

sheet.createFreezePane( 3, 2, 3, 2 );//冻结窗口(冻结列,冻结行,冻结窗口之后可见的首列,可见的首行)

给某一列添加筛选功能

CellRangeAddress c = CellRangeAddress.valueOf("E14");//使E14列添加筛选功能
sheet.setAutoFilter(c);//功能填入sheet中

读取公式的值

FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
CellValue cellValue = evaluator.evaluate(cell);
switch (cellValue.getCellType()) {  case Cell.CELL_TYPE_BOOLEAN:  System.out.println(cellValue.getBooleanValue());  break;  case Cell.CELL_TYPE_NUMERIC:  System.out.println(cellValue.getNumberValue());  break;  case Cell.CELL_TYPE_STRING:  System.out.println(cellValue.getStringValue());  break;
}

设置下拉值

String[] companyItems=new String[]{"顺丰",“韵达”,“圆通”,“中通”,“申通”};
XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper(sheet);//创建一个数据验证助手
XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint) dvHelper.createExplicitListConstraint(companyItems);//创建一个数据验证约束的条件
CellRangeAddressList addressList = new CellRangeAddressList(3, reportList.size()+2, 12, 12);//此数据验证约束生效的局域
XSSFDataValidation validation = (XSSFDataValidation) dvHelper.createValidation(dvConstraint, addressList);//得到一个完整数据验证约束类
validation.createErrorBox("错误!", "请选择正确的物流公司");//设置不符合约束条件时的错误信息
validation.setShowErrorBox(true);//验证失败时弹出弹窗
validation.setSuppressDropDownArrow(true);//
sheet.addValidationData(validation);//将此数据约束校验添加到sheet页中

新建字体样式

 /*** 新建字体样式* @param fontName       字体名称* @param height        字体大小* @param bold          是否加粗* @param underline     是否需要下划线* @param workbook* @return*/private XSSFFont createFont(String fontName, double height,boolean bold, boolean underline,XSSFWorkbook workbook){XSSFFont font = workbook.createFont();font.setFontName(fontName);font.setFontHeightInPoints((short)height);font.setBold(bold);if(underline){font.setUnderline(Font.U_SINGLE); //下划线}return font;}

设置单元格样式

 /*** 设置单元格内样式* @param font     单元格字体格式* @param wrap       内容超过单元格宽度是否换行* @param align        单元格内容对齐方式* @param pattern  单元格内容格式* @param upDown 是否垂直居中* @param workbook* @return*/@SuppressWarnings("deprecation")private XSSFCellStyle createCellStyle(XSSFFont font, boolean wrap,HorizontalAlignment align,String pattern, boolean upDown,XSSFWorkbook workbook) {XSSFCellStyle cellStyle=workbook.createCellStyle();cellStyle.setFont(font);cellStyle.setWrapText(wrap);if(align != null){cellStyle.setAlignment(align);}if(pattern != null){XSSFDataFormat dataFormat = workbook.createDataFormat();cellStyle.setDataFormat(dataFormat.getFormat(pattern)); }if( upDown ){cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中 }return cellStyle;}/*** 设置单元格宽度与高度* @param sheet*/private void setSheetAttribute(XSSFSheet sheet){sheet.setDefaultColumnWidth(30);sheet.setDefaultRowHeight((short)400);sheet.setColumnWidth(2,13000);
//      sheet.autoSizeColumn(3);XSSFRow row13 = sheet.getRow(11);row13.setHeight((short)855);}/*** 设置边框样式* @param style* @param top* @param bottom* @param right* @param left*/public XSSFCellStyle setBorderStyle(XSSFCellStyle style, BorderStyle top, BorderStyle bottom, BorderStyle right, BorderStyle left){// BorderStyle.DOUBLE      双边线   // BorderStyle.THIN        细边线   // BorderStyle.MEDIUM      中等边线   // BorderStyle.DASHED      虚线边线   // BorderStyle.HAIR        小圆点虚线边线   // BorderStyle.THICK       粗边线   if (top!=null) {style.setBorderTop(top);}if (bottom!=null) {style.setBorderBottom(bottom);}if (right!=null) {style.setBorderRight(right);}if (left!=null) {style.setBorderLeft(left);}return style;}//设置单元格背景颜色XSSFCellStyle.setFillForegroundColor(new XSSFColor(new Color(120, 205, 208)));//设置颜色XSSFCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);//设置填充方式//设置单元格锁定XSSFCellStyle.setLocked(true);

java poi 常用功能代码相关推荐

  1. ASP.NET中常用功能代码总结(3)——上传图片到数据库

    ASP.NET中常用功能代码总结(3)--上传图片到数据库<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:offi ...

  2. Java函数编码_转[收集java的常用函数代码]

    转[收集java的常用函数代码] package net.java2000.tools; /** * Title:        Java Bean 工具 * Description: * Copyr ...

  3. ASP.NET中常用功能代码总结(1)——发送邮件篇

    ASP.NET中常用功能代码总结(1)--发送邮件篇<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office: ...

  4. Wordpress模板主题中functions.php常用功能代码与常用插件[ 后台篇](持续收集整理)

    用Wordpress建站的初学者一定会需要用到的Wordpress模板主题中functions.php常用功能代码与常用插件.慢慢持续收集整理....... 目录 一.Wordpress模板主题中fu ...

  5. DirectDraw 常用功能代码记录

    记录一些常用的代码功能段便于自己以后查找使用: 1.常用宏和函数 #define SafeRelease(lpx) if(lpx!=NULL){lpx->Release();lpx=NULL;} ...

  6. Java实现分页功能 代码很粗糙,都是根据自己所需去定义逻辑功能的。

    1.首先定义了一个PageUtil的类,看了网上的很多教程,貌似都有一个这样的类,自己也定义了一个.在代码编写过程中发现这个类其实也没有那么大的作用,但是不去定义这个类,感觉好像缺少什么似得.(请高手 ...

  7. java 一些常用的代码(转载)

    Java 访问XML文件 1 import java.io.*; 2 import javax.xml.parsers.DocumentBuilder; 3 import javax.xml.pars ...

  8. WPS excel VBA 常用功能代码

    VBA中单元格位移方法,解释: submy_offset (0,1).Select'当前单元格向左移动一格 (0,-1).Select'当前单元格向右移动一格 (1,0).Select'当前单元格向下 ...

  9. 美狐美颜SDK最常用功能代码解析

    当下,平台方接入美颜工具包甚至已经成为刚需,没有美颜SDK甚至都会极大程度影响到用户体验,对于主播则更为重要,这甚至会影响到平台的发展.如今,直播美颜工具在广大直播平台中时时刻刻发挥着重要的作用.那么 ...

最新文章

  1. 卡巴斯基安全浏览器_卡巴斯基 for windows 全方位安全软件2021注册表清除版
  2. websocket连接mqtt实现发布及订阅主题
  3. 一道简单的编程题考核你的编程功底
  4. .NET Core技术研究-主机
  5. 回复邮件时如何不要邮件头_如何为阅读,点击和回复率达到100%的CEO设计一封冷邮件...
  6. 将iOS默认上下文坐标系改变为Quartz通常坐标系
  7. 2021-09-26 关于打开Ubuntu的main universe restricted
  8. SysLink UserGuide
  9. Android ListView使用
  10. 一个人要干成事,需要搞清楚自己的三个“半径”
  11. Mac下Eclipse SVN 更换账号
  12. 冒险岛单机版mysql_冒险岛单机版
  13. 【音视频】WIN8|WIN10的桌面采集技术-DXGI(一)
  14. 提高笔记本无线网络速度
  15. 3.飞机机票的价格受季节旺季、淡季的影响,头等舱与经济舱的价格也不同机票的原价为5000,4~10月为旺季, 旺季:头等舱打9折,经济舱打8折;淡季:头等舱打5折,经济舱打4折。请编写根据出行的月份和
  16. android 类似qq空间微博微信九宫格图片
  17. linux nohup的使用及详解
  18. web自动化时,怎么定位鼠标悬浮时才出现的元素
  19. 高精度加法(C++基础算法)
  20. 容器监控之cadvisor介绍

热门文章

  1. 记住账号密码(本地存储)
  2. 【数学建模】连续系统模拟实例: 追逐问题
  3. nn.Identity()
  4. 怎样的配色能让你的作品高端!上档次呢?
  5. TeXstudio配置
  6. java使用证书双向认证
  7. 使用iconv命令轻松实现linux下字符集编码的转换
  8. 世界上最经典的18句话排行榜
  9. 考核的目的在于激励团队成员努力工作
  10. 智文——文字识别与智能检索综合应用平台:提供多场景、多语种、高精度的整体文字检测、文字识别和智能检索服务 | 百万人学AI评选