• 一个可操作PPT的.Net开源库


    推荐一个简单易用的.NET库,使得可以方便处理PowerPoint演示文稿。

    01 项目简介

    ShapeCrawler 是一个专为处理 PowerPoint 演示文稿而设计的 .NET 库。这个库为开发者提供了一组简单易用的 API,以便操作 PowerPoint (.pptx) 文件中的各种元素。

    ShapeCrawler 库的特点包括:

    **1、无需安装 Microsoft Office:**是一个独立的库,不需要在开发或运行环境中安装 Microsoft Office。

    **2、基于 Open XML SDK:**基于 Open XML SDK 的基础上,封装的提供更高层次的抽象。Open XML SDK 是一个开源库,提供了Office 文件格式(如 .docx、.xlsx、.pptx 等)的底层API操作。

    **3、简单易用:**提供了一个简化的对象模型,使得开发者可以轻松地遍历、查询、修改和创建 PowerPoint 演示文稿中的形状。你可以轻松地获取形状的属性(如位置、大小、填充颜色等),以及修改它们。

    **4、支持类型多:**支持包括文本框、图形、图像、图表等操作。

    02 使用方法

    1、简单示例

    // 打开PPT
    var pres = new Presentation("xxx.pptx");
    var shapes = pres.Slides[0].Shapes;
    // 获取PPT的数量
    var shapesCount = shapes.Count;
    // 获取文本
    var shape = shapes.GetByName("TextBox 1");
    var text = shape.TextFrame!.Text
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2、设置文本框为自动适应

    var pres = new Presentation("some.pptx");
    var shape = pres.Slides[0].Shapes.GetByName("AutoShape 1");
    var textFrame = shape.TextFrame!;
    
    textFrame.AutofitType = AutofitType.Resize;
    
    pres.Save();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3、替换文字

    var textFrames = pres.Slides[0].TextFrames();
    
    foreach (var textFrame in textFrames)
    {
        textFrame.Text = "some text";
    }
    
    pres.Save();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4、更新图片

    ar pres = new Presentation("picture.pptx");
    
    // 获取图片控件
    var picture = pres.Slides[0].Shapes.GetByName("Picture 1");
    
    // 更改图片
    picture.Image.Update("new-image.png");
    
    // 获取图片的MIME
    var mimeType = picture.Image.MIME;
    
    pres.Save();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    5、表格操作

    var pres = new Presentation("some-pptx");
    var shapeCollection = pres.Slides[0].Shapes;
    
    shapeCollection.AddTable(x: 50, y: 100, columnsCount: 3, rowsCount: 2);
    var addedTable = (ITable)shapeCollection.Last();
    var cell = addedTable[0, 0];
    cell.TextFrame.Text = "Hi, Table!";
    
    pres.Save();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    03 项目地址

    https://github.com/ShapeCrawler/ShapeCrawler

    更多开源项目: https://github.com/bianchenglequ/NetCodeTop

    我是编程乐趣,一个.Net开发经验老程序员,欢迎“关注”我,每天为你分享开源项目和编程知识。
    也欢迎加入【.Net技术编程交流社区】,和大家共同学习交流!,点击加入https://bbs.csdn.net/topics/613465368

    - End -

  • 相关阅读:
    生成对抗网络 – Generative Adversarial Networks | GAN
    Laf 云开发平台及其实现原理
    2023亚太地区数学建模C题思路+模型+代码+论文
    史上最强 Cocos Shader 学习资源推荐!(建议收藏)
    python+vue+elementui高校学生成绩补考通知系统django
    MMDetection系列 | 5. MMDetection运行配置介绍
    数据挖掘一些概念
    Csdn文章编写参考案例
    从概念到现实:ChatGPT 和 Midjourney 的设计之旅
    Quartus 使用 tcl 文件快速配置管脚
  • 原文地址:https://blog.csdn.net/daremeself/article/details/136358181