java中Excel设置宽高怎么做?单元格的日期怎么判断?

BSO 2020-09-10 14:19:28 java常见问答 7497

上次已经为大家简述过java中Excel字体的设置,背景和纹理的操作,今天继续为大家介绍与Excel有关的知识。今天要简述的就是java中Excel设置宽高怎么做?以及单元格的日期怎么判断?一起来看看吧。

一、首先为大家介绍的是,在java中Excel的宽度和高度的设置。如下。

HSSFSheet sheet = workbook.createSheet("Test"); // 创建工作表(Sheet)
HSSFRow row = sheet.createRow(1);
HSSFCell cell = row.createCell(1);
cell.setCellValue("123456789012345678901234567890");
sheet.setColumnWidth(1, 31 * 256); //设置第一列的宽度是31个字符宽度
row.setHeightInPoints(50); //设置行的高度是50个点

在上面可以看出一个奇怪的点,setColumnWidth的第二个参数要乘以256,这是为什么?其实,原因是这个参数的单位是1/256个字符宽度,也意味着把B列的宽度设置为了31个字符。

另外设置行高使用HSSFRow对象的setHeight和setHeightInPoints方法,它们的区别在于setHeightInPoints的单位是点,而setHeight的单位是1/20个点,也也意味着setHeight的值永远是setHeightInPoints的20倍。

所以可以使用HSSFSheet.setDefaultColumnWidth、HSSFSheet.setDefaultRowHeight和HSSFSheet.setDefaultRowHeightInPoints方法来设置默认的列宽或者行高。

二、再来判断单元格是否为日期

判断单元格是否为日期类型,使用的是DateUtil.isCellDateFormatted(cell)方法,举例说明。

HSSFCell cell = row.createCell(1);
cell.setCellValue(new Date()); //设置日期数据
System.out.println(DateUtil.isCellDateFormatted(cell)); //输出:false
HSSFCellStyle style = workbook.createCellStyle();
style.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy h:mm"));
cell.setCellStyle(style); //设置日期样式
System.out.println(DateUtil.isCellDateFormatted(cell)); //输出:true

以上就是关于java中Excel设置宽高以及判断单元格的日期的一些方法了。如果你对java知识感兴趣,想要了解更多java基础以及常见问题,敬请关注奇Q工具网。

推荐阅读:

java中Excel单元格对齐包含什么?使用边框怎么做?

java中POI常用类有哪些?Excel合并单元格代码展示

java中POI的结构说明,Excel单元格操作展示