% 指定图片文件夹路径
imageFolder = '...\imageResultPNG';
% 获取图片文件列表
imageFiles = dir(fullfile(imageFolder, '*.jpg')); % 假设图片格式为.jpg,可根据需要修改
imageFiles = [imageFiles; dir(fullfile(imageFolder, '*.png'))]; % 也包含.png格式的图片
% 提取文件名中的数字部分
strName= {imageFiles.name};
numFiles = numel(strName);
numbers = zeros(1, numFiles);
for i = 1:numFiles
% 假设文件名为 "1.jpg", "2.jpg", 等
[~, name, ~] = fileparts(strName{i});
numbers(i) = str2double(name);
end
% 按数字排序
[~, sortedIdx] = sort(numbers);
sortedFiles = imageFiles(sortedIdx);
filename = '...\总结.pptx'; % ppt路径
% 创建PowerPoint应用程序对象
g = actxserver('powerpoint.application');
g.Visible = 1; % 可视化
Presentation = g.Presentation;
Presentation = invoke(Presentation, 'open', filename);
slide_number = 8;
% 5. 计算需要的幻灯片数量
numSlides = ceil(length(imageFiles) / 4);
% 遍历图片文件并插入到PPT中
% 6. 遍历幻灯片
for slideIndex = 1:numSlides% 添加一个新的幻灯片
% slide = Presentation.Slides.Add(slideIndex, 1); % 1表示空白幻灯片
slide_count = get(Presentation.Slides, 'Count'); % 当前ppt页数
slide_count = int32(double(slide_count)+1); % 下一页
% slide = invoke(Presentation.Slides,'Add',slide_count,11); % 增加空白页
if slide_number <= slide_count - 1
% 获取指定的幻灯片
slide = Presentation.Slides.Item(slide_number);
end
% 计算当前幻灯片包含的图片索引范围
startIndex = (slideIndex - 1) * 4 + 1;
endIndex = min(slideIndex * 4, length(imageFiles));
count = 0;
% 7. 遍历当前幻灯片的图片
for imgIndex = startIndex:endIndex
count = count +1;
% 计算图片的水平和垂直间距
horizontalGap = 0;
verticalGap = 0;
% 计算图片的宽度和高度
imgWidth = 145;
imgHeight = 100;
% 计算图片的左上角坐标
left = 590;
top = 80 +imgHeight* (count -1);
% 获取当前图片的完整路径
imagePath = fullfile(imageFolder, sortedFiles(imgIndex).name);
% 插入图片到幻灯片中
shape = slide.Shapes.AddPicture(imagePath, 0, 1, left, top, imgWidth, imgHeight);% 原图大小插入,x边界,y边界,宽,高
end
slide_number = slide_number+1;
end
% 保存PPT
savePath = '总结.pptx';
Presentation.SaveAs(savePath);
% 关闭演示文稿和PowerPoint应用程序
Presentation.Close();
g.Quit();
delete(g);
PPT自动生成
最新推荐文章于 2025-12-02 12:18:13 发布
6517

被折叠的 条评论
为什么被折叠?



