大家好,poi 4.1.2 如何解析 excel 中的图表?求解!

我使用的 poi 版本是 4.1.2, 现有一个场景,需要解析.xlsx 文件中的图表 (如柱状图 折线图等), 需要能获取到图表的标题,图例标题 x、y 轴标题 x、y 轴类型等,就是 excel 插入图表能设置的基本都要能获取到,要怎么实现?

【以下回答由 GPT 生成】

我可以使用poi版本4.1.2的Python库中的XSSFWorkbookXSSFSheet类来解析Excel文件中的图表。下面是一步步的解决方案:

  1. 首先,安装poi 4.1.2版本的Python库。可以使用pip命令进行安装:
pip install poi
  1. 导入所需的库和模块:
from poi.xssf.usermodel import XSSFWorkbook
from poi.xssf.usermodel import XSSFChart
from poi.xssf.usermodel.charts import XSSFChartLegend
from poi.xssf.usermodel.charts import XSSFValueAxis
from poi.xssf.usermodel.charts import XSSFCategoryAxis
  1. 加载Excel文件并获取工作簿对象:
workbook = XSSFWorkbook("your_excel_file.xlsx")
  1. 获取Excel中的所有工作表并选择要解析的工作表:
sheet = workbook.getSheetAt(0)  # 选择第一个工作表
  1. 获取工作表中的所有图表:
charts = sheet.getCharts()
  1. 遍历图表列表,获取图表的相关信息:
for chart in charts:
    title = chart.getChartTitle().getText()  # 获取图表标题
    legend = chart.getOrCreateLegend()  # 获取图例对象
    legendTitle = legend.getTitle().getText()  # 获取图例标题

    categoryAxis = chart.getCategoryAxis()  # 获取x轴对象
    categoryAxisTitle = categoryAxis.getTitle().getText()  # 获取x轴标题
    categoryAxisType = categoryAxis.getChartAxis().getAxisBetweenCategories().intValue()  # 获取x轴类型

    valueAxis = chart.getValueAxis()  # 获取y轴对象
    valueAxisTitle = valueAxis.getTitle().getText()  # 获取y轴标题
    valueAxisType = valueAxis.getChartAxis().getAxisBetweenCategories().intValue()  # 获取y轴类型

    # 打印图表信息
    print("图表标题:", title)
    print("图例标题:", legendTitle)
    print("x轴标题:", categoryAxisTitle)
    print("x轴类型:", categoryAxisType)
    print("y轴标题:", valueAxisTitle)
    print("y轴类型:", valueAxisType)

这样,你就可以通过poi的Python库解析Excel文件中的图表,并获取它们的标题、图例标题、x轴和y轴的标题以及它们的类型。

备注:由于poi的Python库没有提供直接获取图表类型的方法,我使用了getAxisBetweenCategories().intValue()来获取类型。请根据具体情况使用对应的poi方法来获取图表类型。

如果你遇到了其他问题,请告诉我。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

你可以试试spire.xls for java,只读取不收费。还有个免费版也可以用,对xlsx格式没有限制,对老的xls格式有限制。
文档地址:https://www.e-iceblue.cn/spirexlsforjava/spire-xls-for-java-program-guide-content.html,进去搜索“图表”