POI对Excel单元格的格式的设置参数

2024-08-27 16:32

本文主要是介绍POI对Excel单元格的格式的设置参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

需求

最近在做导出时,遇到了时间格式变成了纯数字。或者格式设置好了后,由于宽度不够变成###的问题。

环境

poi
java 1.8

解决方式

日期格式:

cell.setCellValue(new Date(2008,5,5));
//set date format
CellStyle cellStyle = workBook.createCellStyle();
DataFormat format= workBook.createDataFormat();
cellStyle.setDataFormat(format.getFormat("yyyy-MM-dd"));
cell.setCellStyle(cellStyle);

宽度使用自适应:

sheet.autoSizeColumn(0);//宽度自适应
//这个最好放在创建的那个列中。否则会不起作用,比如我,就是放在循环里去设置每次创建出来的第一列的单元格

我的后台部分代码:

        DBCursor cursor = gogoalSum.find(query).sort(new BasicDBObject("downdate", -1)).limit(10);int rowCount = 1;while(cursor.hasNext()){DBObject o = cursor.next();Object date = o.get("downdate");if(date != null){int down_click_sum = (Integer) (o.get("down_click_sum")==null?0:o.get("down_click_sum"));int install_sum = (Integer) (o.get("install_sum")==null?0:o.get("install_sum"));int installFail_sum = (Integer) (o.get("installFail_sum")==null?0:o.get("installFail_sum"));int uninstall_sum = (Integer) (o.get("uninstall_sum")==null?0:o.get("uninstall_sum"));row = sheet.createRow(rowCount);cell = row.createCell(0);cell.setCellValue((Date)date);CellStyle cellStyle = workbook.createCellStyle();//创建样式DataFormat format= workbook.createDataFormat();//设置时间格式cellStyle.setDataFormat(format.getFormat("yyyy-MM-dd"));//设置时间格式sheet.autoSizeColumn(0);//宽度自适应cell.setCellStyle(cellStyle);//设置时间格式cell = row.createCell(1);cell.setCellValue(down_click_sum);cell = row.createCell(2);cell.setCellValue(install_sum);cell = row.createCell(3);cell.setCellValue(installFail_sum);cell = row.createCell(4);cell.setCellValue(uninstall_sum);rowCount++;}}cursor.close();

=====================以下我没有验证===================

小数格式:

cell.setCellValue(1.2);
CellStyle cellStyle = workBook.createCellStyle();
cellStyle.setDataFormat(DataFormat.getBuiltinFormat("0.00"));
cell.setCellStyle(cellStyle);

货币格式:

cell.setCellValue(20000);
CellStyle cellStyle = workBook.createCellStyle();
DataFormat format= workBook.createDataFormat();
cellStyle.setDataFormat(format.getFormat("¥#,##0"));
cell.setCellStyle(cellStyle);

百分比格式:

cell.setCellValue(20);
CellStyle cellStyle = workBook.createCellStyle();
cellStyle.setDataFormat(DataFormat.getBuiltinFormat("0.00%"));
cell.setCellStyle(cellStyle);

中文大写格式

cell.setCellValue(20000);
CellStyle cellStyle = workBook.createCellStyle();
DataFormat format= workBook.createDataFormat();
cellStyle.setDataFormat(format.getFormat("[DbNum2][$-804]0"));
cell.setCellStyle(cellStyle);

科学计数格式

cell.setCellValue(20000);
CellStyle cellStyle = workBook.createCellStyle();
cellStyle.setDataFormat(DataFormat.getBuiltinFormat("0.00E+00"));
cell.setCellStyle(cellStyle);

参考地址:

http://irfen.me/poi-excel-cell-format-set-params/

这篇关于POI对Excel单元格的格式的设置参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112191

相关文章

mtu设置多少网速最快? 路由器MTU设置最佳网速的技巧

《mtu设置多少网速最快?路由器MTU设置最佳网速的技巧》mtu设置多少网速最快?想要通过设置路由器mtu获得最佳网速,该怎么设置呢?下面我们就来看看路由器MTU设置最佳网速的技巧... 答:1500 MTU值指的是在网络传输中数据包的最大值,合理的设置MTU 值可以让网络更快!mtu设置可以优化不同的网

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co

VSCode设置python SDK路径的实现步骤

《VSCode设置pythonSDK路径的实现步骤》本文主要介绍了VSCode设置pythonSDK路径的实现步骤,包括命令面板切换、settings.json配置、环境变量及虚拟环境处理,具有一定... 目录一、通过命令面板快速切换(推荐方法)二、通过 settings.json 配置(项目级/全局)三、

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元