1
我目前正在编写从excel文件中读取值的程序。 对于普通的单元格,它的工作原理很好,但也有文本框,选择框和组合框,这是我无法真正访问的。我知道,这些元素是用id创建的。Apache POI:从文本框中获取价值
这是我目前的尝试:
private void processExcelToXml(File excelFile) throws EncryptedDocumentException, IOException {
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(excelFile));
List<HSSFObjectData> embeddedObjects = workbook.getAllEmbeddedObjects();
List<HSSFObjectData> textBoxList = new ArrayList<>();
List<HSSFObjectData> comboBoxList = new ArrayList<>();
List<HSSFObjectData> checkBoxList = new ArrayList<>();
for (HSSFObjectData hssfObjectData : embeddedObjects) {
log.info(hssfObjectData.getDirectory().getName());
switch (hssfObjectData.getOLE2ClassName()) {
case "Forms.TextBox.1":
textBoxList.add(hssfObjectData);
break;
case "Forms.CheckBox.1":
checkBoxList.add(hssfObjectData);
break;
case "Forms.ComboBox.1":
comboBoxList.add(hssfObjectData);
break;
default:
break;
}
}
}
我知道有一个solutuion(Obtain textbox value from Excel in Java),但像的OP我没有得到HSSFTextbox的任何实例,但只有HSSFObjectData的。 我的问题是,我可以从这些HSSFObjectDatas中提取输入到文本框中的值吗?
谢谢!
一个建议是踏进你的代码的IDE调试器和点在哪里你“没有得到HSSFTextbox的任何实例”,闲逛,看看各种对象是什么样子。你可能能够找到你需要的东西。 –
当我使用http://stackoverflow.com/questions/13967168/obtain-textbox-value-from-excel-in-java的解决方案我有同样的问题,我得到HSSFObjectData或HSSFPicture。例如,OLE2Classname解析为Forms.TextBox.1或Forms.CheckBox.1。 – MaxDak92