Как читать данные PowerPoint SmartArt, используя python? Python -PPTX - PullRequest
0 голосов
/ 03 апреля 2020

slides=prs1.slides for slide in prs1.slides: ImageData.insert(1, "Slide "+str(slides.index(slide)+1)) TextData.insert(1, "Slide "+str(slides.index(slide)+1)) for shape in slide.shapes: if 'Picture' in shape.name: write_image(shape, ImageData) elif shape.has_table: table_data(shape, TextData) elif shape.has_text_frame: s="" for paragraph in shape.text_frame.paragraphs: for run in paragraph.runs: s+= " "+run.text TextData.append(s) elif shape.shape_type == MSO_SHAPE_TYPE.GROUP: group_data(shape, ImageData, TextData)

def group_data(group_shape, ImageData, TextData): #for group_shape in group_shapes: for shape in group_shape.shapes: if 'Picture' in shape.name: if (ImageData == []): ImageData.append("Slide "+str(slides.index(slide)+1)) write_image(shape, ImageData) elif shape.has_table: TextData.append("Slide "+str(slides.index(slide)+1)) table_data(shape, TextData) elif shape.has_text_frame: if (TextData == []): TextData.append("Slide "+str(slides.index(slide)+1)) s="" for paragraph in shape.text_frame.paragraphs: for run in paragraph.runs: s+= " "+run.text TextData.append(s) elif shape.shape_type == MSO_SHAPE_TYPE.GROUP: group_data(shape, ImageData, TextData)

Я не могу прочитать SmartArt данные из слайдов. Это приведенный выше код, с помощью которого я могу получить 80% данных файла pptx. Я хочу получить 100% данных и сохранить их в CSV-файл. Даже я хочу сохранить ppt файл как pptx файл, используя python код.

1 Ответ

0 голосов
/ 03 апреля 2020

python-pptx не имеет API-поддержки для SmartArt. Схема и семантика для XML SmartArt не опубликованы (последний раз, когда я смотрел), поэтому вряд ли они будут добавлены в ближайшее время.

Если вы хотите интерпретировать объекты SmartArt, вам придется копать в себя XML и делайте все возможное, что можете.

Как диаграмма или таблица, SmartArt заключен в форму GraphicFrame. Как и диаграмма, ее содержимое хранится как отдельная часть.

Не совсем ответ, но, по крайней мере, какой-то фон для начала работы. Я рекомендую вам поискать альтернативу, потому что это направление будет большой разочаровывающей работой, которая, вероятно, заканчивается хрупким кодом, потому что вы выполняете реверс-инжиниринг, а не работаете с spe c.

...