gpt4 book ai didi

java - 如何使用 POI 获取 Excel 中列的最大长度

转载 作者:行者123 更新时间:2023-11-30 02:39:33 28 4
gpt4 key购买 nike

我正在开发一个项目,该项目涉及使用 Apache POI 读取 Excel 数据。我遇到一种情况,我必须找出列的最大长度。

例如
一张表有 3 行 r1、r2、r3 和 2 列 c1 和 c2,并且都包含字符串数据。现在假设 r1c1 中的字符串大小为 5,r2c1 中的字符串大小为 6,r3c1 中的字符串大小为 7。

Apache POI 中是否有可用的方法

foo(c1) 将返回 7。

目前我正在使用 foo 循环来迭代列中的所有单元格并计算最大大小,但是由于 Excel 文件很大,它会影响性能。

我浏览了文档,但找不到。 for 循环是唯一的方法吗?

为什么我想要这个

我必须编写一个功能,应用程序可以在数据库中上传 Excel。 DDL 语句应该动态创建并生成 ddl 语句,我需要知道列的最大长度。我知道我正在尝试重新发明轮子,因为 MySQL 等数据库已经有了这个插件,但在这里我不打算使用它,因为我想将所有内容都放在一个地方。我浏览了插件的源代码,但它太复杂了,无法复制到项目中。

最佳答案

也许你可以使用 getColumnWidth 来解决它:如果列中的最大长度始终与列的宽度匹配(除了左右边距之外没有无用的空间),您也许可以仅使用列宽并将其除以长度来“猜测”最大长度应该有 1 个字符(如果它们都具有相同的长度)。但即使可能,您可能需要考虑边距 + 计算中两个字符之间的微小空间。

举一个非常简单的通用示例:如果您的列有 10 个单位,并且您知道一个字符的长度为 1 个单位,那么您就知道最大字符串有 10 个字符。

这是非常非常理论化的,因为我现在无法编写任何代码,但这是除了您已经完成的之外我能想象的唯一解决方案。

关于java - 如何使用 POI 获取 Excel 中列的最大长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42138328/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com