是否可以从excell工作表中读取单元格的格式并确定哪些单词是粗体还是斜体?我可以读取和写入单元格,我也知道JExcel可以写入格式化的单元格 . 在格式化的单元格中,我的意思是文本是斜体或粗体 .
是否有可能读取单元格数据并确定哪些单词是粗体?例如,我将在单元格中有这个:
“A sample 来自一个 excel cell 的文字”
我想知道字符串“excel cell”是粗体,字符串“sample”是Italic . 这在JExcel中是否可行,如果不是,我将如何在Java中执行此操作?有人可以推荐一个API吗?也许更好的方法是削减xml文件 .
2 回答
我不知道JExcel,但我可以告诉你这在Apache POI中相当容易 . 这是一个简单的应用程序,以显示它可以完成的一种方式 . 它不是非常漂亮,但它应该足以让你开始:
基本上,你从一个单元格中获取一个
RichTextString
对象(尽管先确保它是一个String单元格),然后迭代格式化运行并检查每个单元格的字体 . 看起来第一次运行使用Cell的CellStyle /字体,所以你必须以这种方式查找(如果你试图从RichTextString获取它,你会得到一个NPE) .获得字体后,您可以获得其所有属性 . 这是POI的Font的Javadoc .
如果您使用较旧的非XLSX文件,请在类名中将XSSF替换为HSSF,并且您必须稍微更改RichTextString代码以使用字体索引查找字体 . 以下是XSSFRichTextString和HSSFRichTextString的JavaDoc .
使用工作表1中的以下内容运行此操作A1:“来自一个 excel cell 的 sample 文本”给出以下结果:
这是我在VBA中的表现 . 也许你可以翻译: