首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Apache-POI -如何像Excel一样在单元格编辑器中对数字进行舍入

Apache POI是一个用于操作Microsoft Office文档的Java库。它提供了一组API,可以读取、写入和修改Excel、Word和PowerPoint等文件格式。在Apache POI中,可以使用Cell类的setCellType()方法来设置单元格的数据类型,包括数字类型。当需要在单元格编辑器中对数字进行舍入时,可以使用Apache POI提供的RoundingMode类来实现。

以下是一个示例代码,演示如何使用Apache POI在单元格编辑器中对数字进行舍入:

代码语言:txt
复制
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileOutputStream;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;

public class ExcelRoundingExample {
    public static void main(String[] args) {
        // 创建一个新的Excel工作簿
        Workbook workbook = new XSSFWorkbook();
        // 创建一个工作表
        Sheet sheet = workbook.createSheet("Sheet1");

        // 创建一个数字格式
        CellStyle numericStyle = workbook.createCellStyle();
        numericStyle.setDataFormat(workbook.createDataFormat().getFormat("0.00"));

        // 创建一个单元格
        Cell cell = sheet.createRow(0).createCell(0);
        cell.setCellValue(123.456789); // 设置原始值

        // 对数字进行舍入
        BigDecimal value = new BigDecimal(cell.getNumericCellValue());
        BigDecimal roundedValue = value.setScale(2, RoundingMode.HALF_UP);

        // 设置舍入后的值和格式
        cell.setCellValue(roundedValue.doubleValue());
        cell.setCellStyle(numericStyle);

        // 保存Excel文件
        try (FileOutputStream outputStream = new FileOutputStream("example.xlsx")) {
            workbook.write(outputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在这个示例中,我们创建了一个新的Excel工作簿,并在第一个单元格中设置了一个原始值123.456789。然后,我们使用BigDecimal类对该值进行舍入,并将舍入后的值设置回单元格中。最后,我们将工作簿保存到名为"example.xlsx"的文件中。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库MySQL版:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网平台:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发平台:https://cloud.tencent.com/product/mpp
  • 腾讯云云函数(SCF):https://cloud.tencent.com/product/scf
  • 腾讯云区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云云游戏引擎(GSE):https://cloud.tencent.com/product/gse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

15个常用EXCEL函数

,两者的区别是如何删除小数部分。...例如,项目到今天总共进行多少天了? 一个单元格上输入开始日期,另一个单元格输入公式减去TODAY得到的日期,得出的数字就是项目进行的天数。 NOW函数和TODAY函数都没有参数。...HLOOKUP和VLOOKUP 函数HLOOKUP和VLOOKUP都是用来表格查找数据。所谓的表格是指用户预先定义的行和列区域。...这两个函数的第一个参数是需要查找的值,如果在表格查找到这个值,则返回一个不同的值。 具体来说,HLOOKUP返回的值与需要查找的值同一列上,而VLOOKUP返回的值与需要查找的值同一行上。...数字的话就有点麻烦了,如15是一个数字,但十五则是汉字。函数ISNUMBER判断单元格的值是否是数字,返回TRUE或FALSE。

1.7K80

有趣的数字取整,深入理解ROUNDUP函数

标签:Excel函数 这是一个关于数字取整的有趣问题,示例数据如下图1所示。 图1 单元格B2的公式为: =ROUNDUP(A2,-INT(LOG10(A2))) 非常精彩的公式!...然而,如果想将¥12,036,219.22转换为¥13,000,000.00,除此之外,其它数字仍按原方式转换,如何编写公式?...由于只有1个例外,很自然地就考虑到使用IF函数,于是单元格D2输入公式: =ROUNDUP(A2,IF(-INT(LOG10(A2))=-7,-6,-INT(LOG10(A2)))) -INT(LOG10...图3 这样,单元格E2的公式为: =ROUNDUP(A2,INDEX(list!B1:B8,MATCH(-INT(LOG10(A2)),list!...A1:A 该公式工作表list查找列A的值并获取列B对应的舍入级别。这种方法很容易修改列B舍入级别。(注意到,单元格A8的值-7应的值是一个例外,舍入级别为-6而不是-7。)

1.2K30
  • Python让Excel飞起来:使用Python xlwings实现Excel自动化

    2.使用Python编写宏,并通过单击按钮从Excel运行。 3.使用Python编写用户定义的函数,并调用任何Excel内置函数一样Excel调用这些函数。 听起来很刺激?让我们开始吧!...接着,Excel按Alt+F11组合键,打开VBA编辑器VBA编辑器,单击菜单“工具->引用”,找到并选取“xlwings”前的复选框,如下图10所示,然后单击“确定”按钮。...图12 注意到,当键入函数时,square实际上会显示函数列表——我们可以使用Excel内置函数一样使用Python函数,并且可以将单元格引用传递到函数。...图13 然后,到VBA编辑器,设置“xlwings”的引用,如上文中图10所示。 调试 刚开始可能会遇到的两个常见错误是: 1.“Automatio error 440”(自动化错误404)。...上文中已讨论了如何修复此错误,确保Excel宏设置正确。 2.键入用户定义的函数时,单元格中会显示“Object Require”(对象要求)。

    9K41

    第一个程序

    3、MyFirtSub过程命名是有一定规则的,比如不能以数字开头,不能用一些VBA内置的关键字等,如果违反了规则,编辑器会给出提示(如果你设置了编辑器”自动语法检测“勾选,会有弹框和红字体提示,否则只有红字体提示...在上一讲初始VBA里,我们通过录制过程可以发现在操作单元格的时候有ActiveCell、Range("xx")这2种形式,这就是Excel VBA单元格的描述规则,这种一般称为对象,就是我们要对什么进行操作...我们的任务是A1单元格操作,所以显然应该用Range("A1")这种形式。 对象:我们要对什么进行操作,比如生活我们要拿起水杯,水杯就是一种对象。我们读一本书,书也就是我们操作的对象。...Excel VBA里,有很多的对象,最先接触到的应该就是这种单元格对象。 5、属性:我们的目的A1单元格输入“hello Excel VBA”。...比如生活水杯里有多少毫升的水,书有多少页,就是对象所具体有的那些东西。 6、赋值:有了对象、有了属性,那我们就这个属性进行赋值就可以了,对象与属性之间用”."

    1.5K20

    理解PQ里的数据结构(一、总体结构)

    小勤:大海,怎么感觉Power Query里的数据结构跟Excel里的工作表是不一样的啊,但又说不出来哪里不一样。 大海:嗯,要深入学习M及函数部分,的确需要更加深入了解PQ里的数据是怎么构成的。...里叫Table) 结果表里有很多行(PQ里叫记录Record),很多列(PQ里叫列表List) 行列交叉形成很多很多的“单元格” “单元格”里有各种内容,如文本、数字等等(PQ里统称为值Value...) 总之,形成一个层层嵌套的结构,大概如下图所示: 小勤:这个主体结构感觉跟Excel里的表也挺,但是,PQ里的“单元格”貌似不像Excel里的单元格那么简单啊!...你看合并过来的,一个单元格里实际是一张表(Table)? 大海:的,这是一个很特别的地方,PQ的单元格里可能是各种内容,一个表、一行、一列、一个值等等。...这一点Power Query里非常重要,在后续的步骤需要调用其他步骤的结果时,都可以通过该步骤名称(即相当于表名称)取得相关内容! 小勤:原来这样啊!这个太灵活了,也感觉好绕啊!

    73730

    支持公式的3款Excel替代品

    随着大数据、企业数字化转型等不可逆趋势的推动下,似乎一切变得皆可量化和数据化,企业解决问题时,也更为倾向于以数据表格来作为判断决策是否正确的重要标志,这时具有数据思维和数据分析处理技能,成了当前及未来人才发展不可忽视的能力之一...定义单元格区域以快速应用Excel公式 定义和命名单元格范围并将它们用作参数、命名整个格式化表格并管理范围,以便您可以将它们用作内部超链接 无缝协作 实时协作处理Excel电子表格 使用快速模式实时共同编辑...激活严格模式以私密编辑共享电子表格单元格和表格,而不会分心。 跟踪您的电子表格版本 查看电子表格所做的所有更改、其作者和日期。浏览版本历史记录并在必要时恢复任何以前的版本。...评论、提及、聊天 向单元格添加评论以提出问题和提出问题。评论中提及用户以邀请他们加入对话。使用内置的实时聊天,通过插件连接 Telegram 或 Jitsi,在编辑器进行交流。...即使是新手也可以录制宏或编写自定义函数,缺点是,测试版,Google提供的产品是轻量级的,缺乏Excel之类的产品所具有的完整功能。

    3.4K10

    一起学Excel专业开发02:专家眼中的Excel及其用户

    学习Excel技术,关注微信公众号: excelperfect 对于大多数人来说,使用Excel来做的工作就是单元格输入数据,进行一些格式化制作成报表输出,在这个过程,可能会使用一些公式,可能会使用图表展现数据...工作表:用于展示 日常工作,我们会很自然地工作表单元格输入数据,进行数据分析和处理,制作报表输出,这是我们通常的做法。Excel丰富的内置功能,已让我们的这种做法非常容易。...工作表:用于程序数据的存储 程序代码程序代码处理,经常要用到一些数据,而工作表就是一个天然的数据存放地,我们可以工作表单元格存放数字、文本、表格或图片,供程序使用,而VBA程序代码可以方便地访问这些数据...Excel工作表就是一个实时的语言编辑器工作表单元格输入数据和公式后,Excel实时给出结果,并根据公式所依赖的单元格的变化实时更新数据。...Excel对象模型 我们Excel进行的各种操作,实际上是相应对象的操作,例如常用的单元格操作,包括单元格输入数据、设置格式等,就是单元格对象的操作。

    4.3K20

    Spread for Windows Forms高级主题(2)---理解单元格类型

    单元格类型决定了用户与单元格交互的方式,包括如何对数据进行访问、显示和校验等。...大多数情况下,你想要此单元格无论是否在编辑模式,在外观上来看都是一样。在这种情况下,你只需要创建单一的单元格类型,并且将其设置为单元格的CellType属性。...单元格,编辑操作被限制在数据区域的单元格。如果你想将一些可编辑的部件 表头那样进行操作,你可以将列头隐藏(或者关闭) ,将表单的第一行冻结,然后使用冻结的行作为你的伪头部单元格。...禁用子编辑器 可编辑单元格类型,当你点击单元格内部时,就会默认地显示一个子编辑器。但是有的时候你可能想禁用这些子编辑器。...例如,日期时间单元格,你可能想要禁止弹出的日历控件; 在数字单元格你可能想要禁止弹出的计算器控件。

    2.5K80

    二 详解VBA编程是什么

    其中可用的字符包括:字母、数字和下划线。宏名不允许出现空格。通常用下划线代表空格。 5、选择”格式”的”单元格”,选择”图案”选项的红色,单击”确定”。...而且,一旦熟悉了 EXCEL 的”遥控”,你都会奇怪自己没有这些”遥控”的情况下,到底是怎么熬过来的。要执行刚才录制的宏,可以按以下步骤进行: 1、选择任何一个单元格,比如A3。...3、选择”改变颜色”,选择”执行”,则 A3 单元格的颜色变为红色。试着选择其它单元格和几个单元格组成的区域,然后再执行宏,以便加深印象。 查看录制的代码 到底是什么控制EXCEL的运行呢?...2、单击列表的”改变颜色”,选择”编辑”按钮。 此时,会打开 VBA 的编辑器窗口(VBE)。关于该编辑器,以后再详细说明,先将注意力集中到显示的代码上。...你会发现结果和修改前的状况一样 With 语句前加入一行: Range(“A5”).Select 试着运行该宏,则无论开始选择哪个单元格,宏运行结果都是使A5单元格变红.

    5.7K20

    think-cell chart系列20——使用建议及附加功能

    关于think-cell chart的附加功能: excel:think-cell chartexcel中的菜单提供了几项单元格格式的附件功能。 ?...主要是round系列函数,很多用过round函数的小伙伴儿都知道,round函数是一个函数组,round、round up、round down ,主要可以将单元格数据快速进行向上舍入,以及向下舍入等。...ppt:ppt,think-cell chart提供的附件功能相对较多。...(昨天讲甘特图的时候已经介绍过这两个工具了,专门用来表达项目进度或者完成状况的,不过那个是图表的文本框里面的,这里的是可以单独插入ppt的)。 ? ?...最后一个觉得挺贴心功能是,它给了一套常用的标准图标及特殊符号模板:(咨询报告设涉及很多数字及货币指标,需要经常使用这些符号)。 ?

    2.5K40

    Python 自动化指南(繁琐工作自动化)第二版:十三、使用 EXCEL 电子表格

    ,就像您可以使用它从字典删除键值一样。...公式 以等号开头的 Excel 公式可以将单元格配置为包含从其他单元格计算出的值。本节,您将使用openpyxl模块以编程方式向单元格添加公式,就像任何普通值一样。...你可以图 13-5 的中看到这一点。 图 13-5:单元格 B9 包含公式=SUM(B1:B8),将单元格 B1 和 B8 相加。 Excel 公式的设置就像单元格的任何其他文本值一样。...单元格 A3 的值被设置为 A1 和 A2 的值求和的公式。当在 Excel 打开电子表格时,A3 会将其值显示为 500。...调整行和列 Excel ,调整行和列的大小就像单击并拖动行或列标题的边缘一样简单。

    18.3K53

    office相关操作

    roundup():朝着远离 0(零)的方向将数字进行向上舍入25win10:win+; 调出表情unichar()26甘特图27布林逻辑:eg.=E3>=1000不等于 eg....跳出来的框框,直接确认4.根据自己的需要选择在建立一个数据透视表后,再建,记得刷新,否则就跟上次一样excel有用的快捷键快捷键组合功能Ctrl+Shift+加号插入空白单元格Ctrl+减号删除单元格f4...当前单元格重复上一操作excel快速求一列的平均值,不要空值=AVERAGEIF(A2:A8,"""")但其实平均值函数=AVERAGE()本身就是忽略空值的。...怎么将Excel表格的空格替换成换行显示5.第五步,完成替换后,我们就能发现姓名和电话已经成功进行了换行。怎么将Excel表格的空格替换成换行显示最后,我们只需点击新界面的“保存”即可,操作完成。...注意:因为两次插入,第二次插入会在插在第一次插入的题注上面,所以要注意“先插入英文题注,再插入中文”参考博客word如何在双栏排版插入单栏排版内容需要单栏排版的部分,将光标定位到该部分的开头和结尾

    10410

    大一保姆级Excel一篇入门全——满足基本办公需求(wps版本——安装方便快捷高效)

    兼容性:XLS文件较新的Excel版本仍然可以打开,但可能会出现格式丢失或不兼容的问题。而XLSX文件可以多个平台和应用程序之间进行更好的互操作性。...自动换行是指在单元格输入的文本超过单元格宽度时,Excel会自动调整文本的显示方式,将超出部分移到下一行显示,以便完整展示所有内容。换行并不会改变单元格的大小,只是显示上进行调整。...绝对引用: 单元格引用是单个单元格的引用,即公式单元格的引用位置与实际单元格的位置不同。例如,如果A1单元格的值为10,而B1单元格的公式为=A1+2,则该公式的结果为12。...混合引用: 混合引用是多个单元格的引用,这些单元格可以是相对或绝对引用。例如,如果A1单元格的值为10,B1单元格的值为20,C1单元格的公式为=A1+B1*2,则该公式的结果为50。...自带百分号 自带百分号的操作与显示小数位长度是一样的,都需要去修改单元格格式。 最终呈现 日期类型 Excel的日期格式有很多种,包括短日期、长日期、日期格式等。

    54960

    Excel表格的35招必学秘技

    5.关闭“自定义”对话框,以后可以使用普通工具栏一样,使用“专业符号”工具栏(图3),向单元格快速输入专业符号了。...十六、为单元格快速画边框   Excel 2002以前的版本,为单元格区域添加边框的操作比较麻烦,Excel 2002此功能进行了全新的拓展。   ...因此,很多情况下,都会需要同时多张表格的相同单元格输入同样的内容。   那么如何对表格进行成组编辑呢?...不要以为Excel的函数只是针对数字,其实只要是写进表格的内容,Excel都有它编辑的特殊函数。例如改变文本的大小写。   Excel 2002,至少提供了三种有关文本大小写转换的函数。...我们可以利用“函数查询”,目标数据进行精确定位,就像网页的搜索引擎一样。   比如在如图17所示的表格,从A1到F7的单元格输入了多名同学的各科成绩。

    7.5K80

    我攻克的技术难题--在线 Excel 项目到底有多刺激

    这几年来我们不断地进行需求迭代,同时也没忘了搭建更适合业务发展的架构设计,技术方案也不断地演化,每天都能学到新东西。今天跟大家分享下一个 Excel 项目到底可以有多好玩。...因此我们设计连接层的时候,考虑接口拓展性,应该预留各种方式的支持。每个格子都是一个富文本编辑器其实除了实时协同编辑相关,Excel 项目还面临着很多其他的挑战。...大家都知道富文本编辑器很坑,但在 Excel ,每个格子都是富文本编辑器。...一般来说, Atom、VSCode 这些复杂的编辑器都是自己实现类似 contenteditable 功能的,使用 div+事件监听的方式。...数据管理的难题当每个格子都支持富文本内容,十万、百万单元格的场景下,落盘数据的存储、用户操作的数据变更也提出了不小的挑战。

    82163

    Spread Studio中文支持图解

    图4:SheetView集合编辑器 完成了Sheet的设置,很可能还要对单元格进行更进一步的精修,同样,Spread提供了单元格编辑器,方便用户不写代码的情况下完成单元格的设置。如下图所示: ?...图5:编辑单元格 除了对表单和单元格的个性化定制,信息系统往往提供多套皮肤用于最终用户个性化定制,提升用户体验。...图6:Spread皮肤编辑器 很多情况下,一个大型信息系统,对于数据处理、显示、生成报表都可以找到一些可复用的样式。这些样式,如果通过单独的单元格或者单元格区域来设置,非常繁琐复杂。...NamedStyle可以通过下面的编辑器进行设置和保存: ? 图7:NamedStyle集合编辑器 除了以上主要的中文编辑器,其实用户最喜欢的还是Spread设计器。...可以Excel一样与用户交互、录入并处理数据、生成图表、编辑公式、定制样式。可以与多种文件交互,可以直接打开、保存包括Excel在内的多种文件格式。甚至直接打印出最终的报表结果。

    1.9K100

    Power Query 真经 - 第 3 章 - 数据类型与错误

    3.1.3 如何设置格式 简而言之, Power Query 不需要设置格式。 在数据类型与格式之争,查询编辑器的主要作用是设置数据类型,而不是格式化数据。为什么呢?...因为无论如何没有人会在查询编辑器读取数据。这个工具的作用是获得正确的数据,而不是呈现数据。最终,将会把数据加载到如下两个地方之一。 Excel:工作表或 Excel 数据模型。...工作表单元格:无论是表格、数据透视表还是 CUBE 函数(译者注:一种可以从数据模型中提取值的 Excel 函数),如果它位于 Excel 网格,则可以对数据应用数字格式。...度量值格式(如果数据被加载到数据模型): Excel ,这可以通过创建度量值时设置默认的数字格式来控制,而在 Power BI ,通过选择度量值然后在建模标签上设置格式来配置。...图表或视觉显示效果: Excel ,则可以强制数字格式以需要的方式出现在图表 Power BI 的可视化格式工具也有类似的选项。

    5.5K20

    在线Excel项目到底有多刺激

    加入腾讯文档 Excel 开发团队已经有好几个月了,刚开始代码下载下来 100+W 行,代码量很大但模块设计和代码质量比我想象好好多了,今天跟大家分享下一个 Excel 项目到底可以有多好玩。...因此我们设计连接层的时候,考虑接口拓展性,应该预留各种方式的支持。 每个格子都是一个富文本编辑器 其实除了实时协同编辑相关,Excel 项目还面临着很多其他的挑战。...大家都知道富文本编辑器很坑,但在 Excel ,每个格子都是富文本编辑器。...一般来说, Atom、VSCode 这些复杂的编辑器都是自己实现类似 contenteditable 功能的,使用 div+事件监听的方式。...数据管理的难题 当每个格子都支持富文本内容,十万、百万单元格的场景下,落盘数据的存储、用户操作的数据变更也提出了不小的挑战。

    2.2K23

    Excelize 开源基础库 2.8.0 版本正式发布

    可以使用它来读取、写入由 Microsoft Excel、WPS、Apache OpenOffice、LibreOffice 等办公软件创建的电子表格文档。...、对齐、舍入、货币、会计专用和转换选项的数字格式,并支持带有 812 种语言(位置)时间和日期类型的数字格式,相关 issue #660新增 10 项公式函数: ARRAYTOTEXT, FORECAST...,读取结果有误的问题,解决 issue #1523, #1528 和 #1533修复了并发安全函数存在的竞态问题修复了部分情况下,单元格时间毫秒舍入精度结果有误的问题修复了部分情况下,读取带有 12...小时制数字格式的单元格时,时间结果有误的问题修复了部分情况下,计算带有 SUMIFS 和 AVERAGEIFS 函数的公式结果有误的问题,解决 issue #1564修复了公式计算引擎基本算数运算符优先级问题导致的计算结果有误问题...,解决 issue #1599修复部分情况下,带有跨工作表单元格引用公式计算结果有误的问题修复部分情况下,删除行后,工作表的表格调整结果异常的问题,解决 issue #1539支持读取单元格的多张图片

    40261

    7道题,测测你的职场技能

    显示值,是excel里显示出来的值。 为什么输入的值与显示的值看起来不一样呢? 当我们鼠标单击“显示值”列的任一单元格,在编辑栏里,我们可以看到其“内核”其实是和输入值一致的。...“设置单元格格式”对话框,我们可以看到文本的数字格式代码为@。 既然@代表一个文本占位符,那么,如果想文本重复显示,是不是重复@就能实现呢?...(4)@代表的是文本占位符,而数字占位符,是用0来表示的。所以,当输入类似“56”,却想显示为“0056”的时候,可以“设置单元格格式”对话框,把数字格式代码修改为“0000”即可。...这是一个笨拙的方法,实际工作,要处理的工作表并不可能案例演示这样只有几行几列,而是有几百几千甚至几万行,而其中的多个不连续空白单元格更是毫无规律可言,不可能一个一个单元格地去填写。...先按出生年月进行升序排列,如果出生年月是一样的,则按“工资”进行升序排列。 排序后的结果 再筛选出本科及以上的男性。

    3.6K11
    领券