(我对 Apache 一无所知,但对 Excel 互操作工作有些了解)
如果要检测的工作表是您的,我建议命名这些标题单元格。(要在 Excel 中命名一个单元格,屏幕左上角有一个字段,通常会出现单元格坐标(如“A1”或“B2”等等......)。在那个地方输入一个名称,然后你将能够通过代码通过其名称识别该单元格。('Worksheet.Range("Name")' 是您通过代码获取这些单元格的地方)
要管理名称,请转到“插入 - 名称”或“公式 - 名称管理器”,具体取决于 Excel 的版本。
(就个人而言,我从不通过没有命名标题的代码使用工作表,然后我使用“偏移”来获取与这些标题相对应的数据单元格 - 这使我可以在以后自由编辑工作表而不会破坏代码)
如果工作表不是您的,那么您需要找出数据的范围。(最后一行和最后一列)然后检查包含所有已填充列的第一行,其中没有一个为空白。那是一个可能的水平标题。以及检查包含所有填充行的第一列。那是一个可能的垂直标题。
您还可以搜索完全空白的行和/或列以查找位于某些数据之后的标题,以防工作表包含多个水平标题或垂直标题。
您可以使用这些单元格的一些格式属性(例如 Range.Interior 或 Range.Font)来识别它们是否是标题(通常标题具有不同的格式、颜色、边框等)。
如果您确定没有数字标题,我的意思是,所有标题都包含文本,请检查单元格中的数据类型。如果都是字符串,则标题概率会增加。
即便如此,这是一件棘手的事情,如果工作表不遵循某种模式,有时其中一个可能会欺骗您的代码并带来错误的结果。如果允许,我建议在处理完成后添加人工验证以确认结果。