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

Aperta
#2,701 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@JamesHWade ci sta già lavorando.

Dal 14/10/2026.

  • #2702 di @JamesHWade — aperta

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
22/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python
Ambito
backend

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
Python
Stelle
194k
Fork
14.5k
Merge medio
1h 43m
PR unite (30g)
8

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

  • Include un Dockerfile o un file Docker Compose
  • Nessun modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di microsoft/markitdown

Tutte le issue di microsoft/markitdown

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.