C#代码实现在PowerPoint文本框中添加或删除列

 更新时间:2026年04月22日 15:12:10   作者:2501_93070778  
将 PowerPoint 文本框内容以多列形式显示,可以显著提升信息呈现效果和观众的理解效率,本文将介绍如何使用C# 项代码在 PowerPoint 文本框中添加或删除列,感兴趣的小伙伴可以了解下

将 PowerPoint 文本框内容以多列形式显示,可以显著提升信息呈现效果和观众的理解效率。它通过缩短每行文本长度来提高可读性,使密集内容更易阅读;同时优化整体视觉布局,使其更加美观和专业;并且能够更高效地利用空间,在保证信息丰富的同时避免页面杂乱。本文将介绍如何使用C# 项代码在 PowerPoint 文本框中添加或删除列。

环境准备

首先,在 .NET 项目中需要添加相应的 DLL 引用,以支持后续的功能实现。相关 DLL 文件可以通过下载方式获取,也可以通过 NuGet 进行安装。

本文将以 Spire.Presentation for .NET 作为示例进行说明,用于演示在 PowerPoint 文本框中添加或删除列的实现方法。

PM> Install-Package Spire.Presentation

使用 C# 为 PowerPoint 文本框添加多列

在 C# 中,可以通过相关 API 对 PowerPoint 文本框的排版进行设置,例如调整列数和列间距,从而实现多列内容布局。

实现步骤如下:

  1. 创建一个 Presentation 对象
  2. 使用 LoadFromFile() 方法加载 PowerPoint 文件
  3. 通过 Slides[0] 获取第一张幻灯片
  4. 获取第一个文本框对象(IAutoShape)
  5. 设置文本框的列数(ColumnCount),以控制内容分为几列
  6. 设置列间距(ColumnSpacing),调整列与列之间的距离
  7. 使用 SaveToFile() 方法保存文件到指定路径

示例代码如下:

using Spire.Presentation;

namespace Spire.PresentationDemo
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建 Presentation 对象
            Presentation presentation = new Presentation();

            // 加载 PPTX 文件
            presentation.LoadFromFile("Sample1.pptx");

            // 获取第一张幻灯片
            ISlide slide = presentation.Slides[0];

            // 判断幻灯片中的第一个形状是否为 IAutoShape 类型
            if (slide.Shapes[0] is IAutoShape)
            {
                // 将该形状转换为 IAutoShape 对象
                IAutoShape shape = (IAutoShape)slide.Shapes[0];

                // 设置文本框中的列数为 2
                shape.TextFrame.ColumnCount = 2;

                // 设置列间距为 25 磅
                shape.TextFrame.ColumnSpacing = 25f;
            }

            // 将修改后的演示文稿保存为新的 PPTX 文件
            presentation.SaveToFile("SetColumns.pptx", Spire.Presentation.FileFormat.Pptx2016);

            // 释放 Presentation 对象占用的资源
            presentation.Dispose();
        }
    }
}

使用 C# 删除 PowerPoint 文本框中的列

要移除 PowerPoint 文本框中的多列布局,只需将文本框的列数设置为 1 即可,从而恢复为单列显示。

实现步骤如下:

  1. 创建一个 Presentation 对象
  2. 使用 LoadFromFile() 方法加载 PowerPoint 文件
  3. 通过 Slides[index] 获取指定幻灯片
  4. 将文本框对象获取为 IAutoShape
  5. ColumnCount 设置为 1,以移除多列效果
  6. 使用 SaveToFile() 方法将文件保存到指定路径

示例代码如下:

using Spire.Presentation;

namespace SpirePresentationDemo
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建 Presentation 对象
            Presentation presentation = new Presentation();

            // 加载 PPTX 文件
            presentation.LoadFromFile("Sample2.pptx");

            // 获取第一张幻灯片
            ISlide slide = presentation.Slides[0];

            // 判断幻灯片中的第一个形状是否为 IAutoShape 类型
            if (slide.Shapes[0] is IAutoShape)
            {
                // 将该形状转换为 IAutoShape 对象
                IAutoShape shape = (IAutoShape)slide.Shapes[0];

                // 将文本框的列数设置为 1
                shape.TextFrame.ColumnCount = 1;
            }

            // 将修改后的演示文稿保存为新的 PPTX 文件
            presentation.SaveToFile("RemoveColumns.pptx", Spire.Presentation.FileFormat.Pptx2016);

            // 释放 Presentation 对象占用的资源
            presentation.Dispose();
        }
    }
}

方法补充

在 PowerPoint 中操作“列”主要分为两种情况:一是设置文本框(形状)内部的文本分栏,二是调整表格的行与列

下面为你整理了三种主流的技术方案及其对比,并提供了具体的代码示例。

方案选型对比速览

方案类型文本分栏支持表格列支持代码量/易用性价格推荐场景
Aspose.Slides商业库✅ 极佳✅ 极佳商业授权企业级项目,功能全面且稳定
Spire.Presentation商业库✅ 优秀✅ 优秀商业授权(免费版有限制)需要快速集成,API友好,支持高效开发
Open XML SDK开源❌ 不直接支持✅ 支持免费预算有限,或需要对文档底层结构有极致控制

1. 设置文本分栏

如果想在形状(文本框)内将文字排列成多栏,使用商业库是最直接的选择。

使用 Spire.Presentation (代码极简)

Spire.Presentation 提供了 ColumnCount 和 ColumnSpacing 属性,设置后文本会自动在多栏间流动。

安装:

PM> Install-Package Spire.Presentation

示例代码:

using Spire.Presentation;
using Spire.Presentation.Drawing;
class Program
{
    static void Main(string[] args)
    {
        // 1. 创建或加载文档
        Presentation presentation = new Presentation();
        presentation.LoadFromFile("Sample.pptx");
        // 2. 获取形状
        ISlide slide = presentation.Slides[0];
        IAutoShape shape = slide.Shapes[0] as IAutoShape;
        // 3. 设置文本分栏
        shape.TextFrame.ColumnCount = 2;   // 设置2栏
        shape.TextFrame.ColumnSpacing = 25; // 设置栏间距为25磅
        // 4. 保存文件
        presentation.SaveToFile("Output.pptx", FileFormat.Pptx2016);
        presentation.Dispose();
    }
}

删除分栏:只需将 shape.TextFrame.ColumnCount = 1; 即可恢复单栏。

使用 Aspose.Slides

Aspose.Slides 通过修改 TextFrameFormat 来实现分栏,步骤同样清晰。

安装:

PM> Install-Package Aspose.Slides

示例代码:

using Aspose.Slides;
using Aspose.Slides.Export;
class Program
{
    static void Main(string[] args)
    {
        // 1. 创建或加载文档
        Presentation pres = new Presentation("Sample.pptx");
        // 2. 获取形状并设置分栏
        IAutoShape shape = pres.Slides[0].Shapes[0] as IAutoShape;
        TextFrameFormat format = shape.TextFrame.TextFrameFormat as TextFrameFormat;
        format.ColumnCount = 2; // 设置2栏
        // 3. 保存文件
        pres.Save("Output.pptx", SaveFormat.Pptx);
        pres.Dispose();
    }
}

使用 Open XML SDK (不推荐用于文本分栏)

Open XML SDK 的底层 API 不直接提供设置文本框内部文本分栏的便捷方法,通常不建议使用该方案。

2. 操作表格列

如果你需要操作的是 PPT 表格,除了上述商业库,开源免费的 Open XML SDK 也是一个不错的选择。

使用 Spire.Presentation (操作表格)

Spire.Presentation 的表格模型很直观,可以轻松添加或删除列。

using Spire.Presentation;
using Spire.Presentation.Collections;
using Spire.Presentation.Drawing;
class Program
{
    static void Main(string[] args)
    {
        Presentation presentation = new Presentation();
        presentation.LoadFromFile("Sample.pptx");
        ISlide slide = presentation.Slides[0];
        ITable table = slide.Shapes[0] as ITable;
        // 在指定位置插入一列(例如,在第二列前插入)
        table.Columns.Insert(1, 100); 
        // 删除一列
        table.Columns.RemoveAt(0); 
        presentation.SaveToFile("Output.pptx", FileFormat.Pptx2016);
        presentation.Dispose();
    }
}

使用 Aspose.Slides (操作表格)

Aspose.Slides 同样提供了对表格列的完整操作方法。

using Aspose.Slides;
class Program
{
    static void Main(string[] args)
    {
        Presentation pres = new Presentation("Sample.pptx");
        ITable table = pres.Slides[0].Shapes[0] as ITable;
        // 插入列(例如,在第一列之前插入一列,宽度为100)
        table.Columns.Insert(0, 100);
        // 删除列
        table.Columns.RemoveAt(table.Columns.Count - 1);
        pres.Save("Output.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
        pres.Dispose();
    }
}

使用 Open XML SDK (操作表格)

由于是免费开源方案,代码会相对底层一些,但依然可行。其核心思路是操作 DocumentFormat.OpenXml.Presentation.Table 及其 TableRow 和 TableCell 元素来修改表格结构。

结语

通过以上方法,我们可以在 C# 中灵活控制 PowerPoint 文本框的多列布局,实现列数的添加与删除,从而优化内容的排版效果与可读性。在实际应用中,根据不同的演示需求合理调整列结构,可以让信息呈现更加清晰、专业,也能显著提升整体幻灯片的视觉表现力。

到此这篇关于C#代码实现在PowerPoint文本框中添加或删除列的文章就介绍到这了,更多相关C# PowerPoint添加或删除列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#验证给定字符串形式日期是否合法的方法

    C#验证给定字符串形式日期是否合法的方法

    这篇文章主要介绍了C#验证给定字符串形式日期是否合法的方法,实例分析了C#针对字符串及日期的操作技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • C#实现飞行棋小游戏

    C#实现飞行棋小游戏

    这篇文章主要为大家详细介绍了C#实现飞行棋小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • C#实现将汉字转化为2位大写的16进制Unicode的方法

    C#实现将汉字转化为2位大写的16进制Unicode的方法

    这篇文章主要介绍了C#实现将汉字转化为2位大写的16进制Unicode的方法,分析了转换的技巧并以实例形式给出了具体的转换方法,非常具有实用价值,需要的朋友可以参考下
    2014-12-12
  • C#调用OpenXml读取excel行数据

    C#调用OpenXml读取excel行数据

    这篇文章主要为大家详细介绍了C#如何调用OpenXml实现读取excel行数据,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-12-12
  • C# Newtonsoft.Json 解析多嵌套json 进行反序列化的实例

    C# Newtonsoft.Json 解析多嵌套json 进行反序列化的实例

    这篇文章主要介绍了C# Newtonsoft.Json 解析多嵌套json 进行反序列化的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • c# 通过经纬度查询 具体的地址和区域名称

    c# 通过经纬度查询 具体的地址和区域名称

    最近项目需要通过经纬度查询 具体的地址和区域名称,通过查询网络资源,发现提供的大多是得到具体的地址而对区域或城市名称的获取就不是很好把握;在这里自己搞了个,需要的朋友可以参考下
    2012-11-11
  • DevExpress之ChartControl的SeriesTemplate实例

    DevExpress之ChartControl的SeriesTemplate实例

    这篇文章主要介绍了DevExpress之ChartControl的SeriesTemplate用法实例,实现了饼状Series百分比显示的效果,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-10-10
  • C#使用Spire.XLS for .NET将List数据导出Excel的操作指南

    C#使用Spire.XLS for .NET将List数据导出Excel的操作指南

    在现代数据驱动的应用开发中,将程序内存中的数据以结构化的形式呈现给用户是一个普遍的需求,其中,将C# List集合中的数据导出到Excel文件,成为了开发者们经常需要实现的功能,本文将介绍如何使用 Spire.XLS for .NET将 List<T> 数据写入Excel文件,需要的朋友可以参考下
    2026-02-02
  • c# SqlFunc.IF使用方法小结

    c# SqlFunc.IF使用方法小结

    SqlFunc.IF是EF+库中的一个功能,允许你在数据库查询中执行条件逻辑,类似于SQL中的IF语句,本文就来详细的介绍一下c# SqlFunc.IF使用方法,感兴趣的可以了解一下
    2025-11-11
  • C# 脚本引擎RulesEngine的使用详解

    C# 脚本引擎RulesEngine的使用详解

    这篇文章主要介绍了C# 脚本引擎RulesEngine的使用方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-02-02

最新评论