PPTX conversion takes hours on charts bound to a whole Excel column

Abierto
#2,701 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@JamesHWade ya está trabajando en esto.

Desde el 14/10/2026.

  • #2702 de @JamesHWade — abierto

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
22/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
python
Área
backend

Línea de trabajo

Start from _convert_chart_to_markdown in the PPTX converter, where series.values from python-pptx is read once per declared point. Reproduce with a chart whose series cache declares many points but few hold data, then time the conversion. Pull request #2702 is already open against this issue, so check it and its review before starting any separate change. Done means large charts convert in seconds with the same Markdown output as before.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Converting a .pptx with a chart can take hours. #2227 removed the extra loop in _convert_chart_to_markdown, but series.values in python-pptx is itself quadratic: for each declared point it runs an XPath search over all of the series' points.

When a series is bound to a whole column, its cache can declare many points, however few cells hold data. A deck of ours had
two such scatter charts with about 20,600 real points each. With markitdown 0.1.8 and python-pptx 1.0.2 each lookup took about 7 ms, so about 2 hours per chart.

python-pptx has had no commits since 2024, so I'd fix it here by reading each series' points once. PR to follow.

Lenguaje dominante
Python
Estrellas
194k
Forks
14.5k
Merge medio
1 h 43 min
PR fusionados (30 d)
8

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

  • Incluye un Dockerfile o un archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de microsoft/markitdown

Todos los issues de microsoft/markitdown

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.