- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我尝试使用 apache poi xssf 将 excel 文件解析为 XML。现在有了一个单元格,但不知道里面有什么,我只想从中获取一个字符串。但是当我使用
cell.getStringCellValue()
它抛出一个异常,这并不奇怪,因为它是这样记录的。因此,我通过检查天气是数字还是文本单元格来解决这个问题。但是如何处理公式单元格。它们可能包含类似的数字
= A2 + B2
什么给了我总和(例如 4)或对另一文本的引用
= C2
什么可能指的是像“Hans”这样的文本。
我如何知道我的单元格中到底有什么以及如何从中获取字符串?
最佳答案
Excel 将一些单元格存储为字符串,但大多数单元格存储为应用了特殊格式规则的数字。如果您想获取原始值,请使用基于 cell.getCellType()
的 switch 语句,如其他一些答案所示。
但是,如果您想要的是单元格的字符串,显示与 Excel 显示的内容相同,基于对单元格 + 单元格类型应用所有格式设置规则,那么 Apache POI 有一个类可以做到这一点 - DataFormatter
你需要做的就是:
Workbook wb = WorkbookFactory.create(new File("myfile.xls"));
DataFormatter df = new DataFormatter();
Sheet s = wb.getSheetAt(0);
Row r1 = s.getRow(0);
Cell cA1 = r1.getCell(0);
String asItLooksInExcel = df.formatCellValue(cA1);
无论单元格类型是什么,DataFormatter 都会使用 Excel 中应用的规则尽可能地为您设置格式,并在最后返回一个格式良好的字符串。
关于java - xssf 如何以字符串形式获取任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21538481/
private void cleaner(Integer columnsCount, Integer rowsCount, Object object){ int firstColumn=0;
我收到以下代码的NullPointerException。有人可以帮忙解决这个问题吗?我正在尝试将数据库值获取到现有的 Excel 工作表。 Statement statement = connect
我正在尝试编写一个函数,该函数读取 Excel 模板并开始在某个行索引处写入。但是,我发现编号会跳过模板中的空白行。有没有办法在迭代期间计算空白行? 我试图找到相当于 missing cell pol
我尝试使用 apache poi xssf 将 excel 文件解析为 XML。现在有了一个单元格,但不知道里面有什么,我只想从中获取一个字符串。但是当我使用 cell.getStringCellVa
我正在尝试读取由网络应用程序生成的 Excel 文件。但我无法访问任何列或行,因为 XSSF 工具一直告诉我没有工作表。单个工作表称为“MySheet”,但当我按名称搜索它时,得到 -1。当我搜索工作
这是我到目前为止的代码,它从查询中获取数据,然后将其导出到 Excel 文档中: oArray = CreateObject("java", "java.util.Arrays"); wor
我现在已经尝试从 XSSFSheet 中删除图像太久了。我找不到关于此的任何信息,但我认为这是可能的.. 有什么方法可以从我的 XSSFSheet 中删除图像吗?甚至官方(?)apache poi 网
我在保存新的 Excel 文件时遇到问题。我希望它在保存时公式会自行计算,但目前它只是在 excel 文件中返回一个字符串。公式是正确的。我不知道如何让 FormulaEvaluator 工作。 这里
我有一个 HSSF 工作簿,其中包含我的自定义颜色,但现在我需要使用 XSSF 来创建 xslx 文件。 我已经相应地改变了一切,但唯一让我难过的是如何在这样的事情中使用定制的 XSSFColor :
我想为使用 poi 3.14 创建的 xlsx 文件添加密码保护。文档声称,这是可能的: http://poi.apache.org/encryption.html 使用我这样尝试的示例: p
我正在使用 Apache POI 3.12: org.apache.poi poi 3.12 org.apache.poi poi-ooxml 3
我目前正在使用 Apache POI 库在 Java 中生成 excel 文件。 这就是我想知道的:在 Excel 中,可以创建新的单元格样式并将其添加到工作簿中。这些样式是可重复使用的,并且可以从样
几年前,我遇到了使用 jXLS 和 POI XSSF 创建大型 excel 文件的问题。如果我没记错的话,我认为 XSSF 会在磁盘上创建类似 1GB+ 的临时文件来创建 10mb 的 excel 文
有没有办法确定单元格是否为日期?我知道 style.get DataFormatString() 但这对我没有帮助,因为我无法确定格式是否适用于日期。 最佳答案 如果您使用的是 XSSF 用户模型,那
我使用下面的代码在 XSSF 工作表中设置默认列样式?但这不起作用任何人都可以建议错误修复。 format = workbook.createDataFormat(); style = workboo
如何将现有列数据和格式复制到 Apache POI 中的下一列并将下一列向右移动。 我试过了。假设我的代码是这样的...... XSSFCell oldCell = worksheet.getRow(
无法将“STYLE”从 .xlsx 文件复制到另一个文件。 这是我正在使用的代码。 public static void copyCell(XSSFCell oldCell, XSSFCell ne
单元格 A1 具有 公式“=A2”并被格式化为显示 1 个小数点 单元格 A2 具有 值 4.23 单元格 A1 显示 4.2(格式化显示值) 单元格 A2 显示 4.23(格式化显示值) 我的 XS
有没有办法不读取整个 Excel 文档行,我正在读取文档中定义的单元格,但是,它拉入了整个工作表的列??? 我正在将 Excel 文档转换为 CSV 文档。我得到了这个结果。 Aircraft ID
我已经使用 XLS,但今天我正在尝试新的 - xlsx。对于 XLS,我只需要一个库,而 XLSX(四个库)则相反。我还得到整个包错误。为什么会发生这种情况? 主要: public class
我是一名优秀的程序员,十分优秀!