在 Excel 中,表格是一个结构化的数据区域,每列均有标题。将单元格区域转换成表格后,Excel 会自动对其应用格式,如给表格的每个标题单元格添加筛选按钮,同时提供更强大的数据操作和分析功能。在这篇文章中,我们将介绍如何使用 Spire.XLS for .NET 和 C# 在 Excel 中创建、修改和删除表格。
安装 Spire.XLS for .NET
首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.XLSC# 在 Excel 中创建表格
你可以使用 Worksheet.ListObjects.Create(tableName, cellRange) 方法将 Excel 工作表中的特定数据区域转换为表格。具体步骤如下:
- 创建 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
- 使用 Workbook.Worksheets[index] 属性获取特定工作表。
- 使用 Worksheet.Range[] 属性获取要转换为表格的单元格区域。
- 使用 Worksheet.ListObjects.Create(tableName, cellRange) 方法将单元格区域转换为表格。
- 使用 Workbook.SaveToFile() 方法将生成的工作簿保存到文件。
- C#
using Spire.Xls;
using Spire.Xls.Core;
namespace CreateTable
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建Workbook类的对象
            Workbook workbook = new Workbook();
            // 加载Excel文件
            workbook.LoadFromFile("示例.xlsx");
            // 获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];
            // 获取要转换为表格的单元格区域
            CellRange range = sheet.Range[1, 1, sheet.LastRow, sheet.LastColumn];
            // 将单元格区域转换为表格
            IListObject table = sheet.ListObjects.Create("销售", range);
            // 使用内置表格样式格式化表格
            table.BuiltInTableStyle = TableBuiltInStyles.TableStyleLight2;
            // 将生成的工作簿保存到文件
            workbook.SaveToFile("创建表格.xlsx", ExcelVersion.Version2016);
            workbook.Dispose();
        }
    }
}
C# 给 Excel 表格添加汇总行
你可以在 Excel 表格的末尾添加一个汇总行,用于显示汇总计算,例如总和、平均值等。具体步骤如下:
- 创建 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
- 使用 Workbook.Worksheets[index] 属性获取特定工作表。
- 使用 Worksheet.ListObjects[index] 属性获取工作表中的特定表格。
- 将表格的 DisplayTotalRow 属性设置为 true 来显示汇总行。
- 使用 IListObject.Columns[index].TotalsRowLabel 属性在特定表格列中设置汇总行的标签。
- 使用 IListObject.Columns[index].TotalsCalculation 属性为特定表格列设置汇总计算的函数。
- 使用 Workbook.SaveToFile() 方法将生成的工作簿保存到文件。
- C#
using Spire.Xls;
using Spire.Xls.Core;
namespace AddTotalRowToTable
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建Workbook类的对象
            Workbook workbook = new Workbook();
            // 加载Excel文件
            workbook.LoadFromFile("创建表格.xlsx");
            // 获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];
            // 获取工作表中的第一个表格
            IListObject table = sheet.ListObjects[0];
            // 显示合计行
            table.DisplayTotalRow = true;
            // 设置合计行标签
            table.Columns[0].TotalsRowLabel = "合计";
            // 设置总和计算函数
            table.Columns[3].TotalsCalculation = ExcelTotalsCalculation.Sum;
            table.Columns[4].TotalsCalculation = ExcelTotalsCalculation.Sum;
            // 将生成的工作簿保存到文件
            workbook.SaveToFile("添加汇总行.xlsx", ExcelVersion.Version2016);
            workbook.Dispose();
        }
    }
}
C# 调整 Excel 表格的数据区域
你可以通过更新表格的数据区域(IListObject.Location 属性)来调整表格的大小。具体步骤如下:
- 创建 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
- 使用 Workbook.Worksheets[index] 属性获取特定工作表。
- 使用 Worksheet.ListObjects[index] 属性获取工作表中的特定表格。
- 使用 IListObject.Location 属性更新表格的数据区域。
- 使用 Workbook.SaveToFile() 方法将生成的工作簿保存到文件。
- C#
using Spire.Xls;
using Spire.Xls.Core;
namespace ResizeTable
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建Workbook类的对象
            Workbook workbook = new Workbook();
            // 加载Excel文件
            workbook.LoadFromFile("创建表格.xlsx");
            // 获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];
            // 获取工作表中的第一个表格
            IListObject table = sheet.ListObjects[0];
            // 调整表格的数据区域
            table.Location = sheet.Range["C1:E8"];
            // 将生成的工作簿保存到文件
            workbook.SaveToFile("调整表格.xlsx", ExcelVersion.Version2016);
            workbook.Dispose();
        }
    }
}
C# 删除 Excel 表格
如果你不再需要表格,可以使用 IListObjects.RemoveAt(tableIndex) 方法将其转换回普通的单元格区域。具体步骤如下:
- 创建 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
- 使用 Workbook.Worksheets[index] 属性获取特定工作表。
- 使用 Worksheet.ListObjects 属性获取工作表的表格集合。
- 使用 IListObjects.RemoveAt(tableIndex) 方法从表格集合中移除特定的表格并保留其数据。
- 使用 Workbook.SaveToFile() 方法将生成的工作簿保存到文件。
- C#
using Spire.Xls;
using Spire.Xls.Core;
namespace RemoveTable
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建Workbook类的对象
            Workbook workbook = new Workbook();
            // 加载Excel文件
            workbook.LoadFromFile("创建表格.xlsx");
            // 获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];
            // 获取工作表的表格集合
            IListObjects tables = sheet.ListObjects;
            // 通过索引移除指定的表格
            tables.RemoveAt(0);
            //// 或者按名称移除特定的表格
            //for (int i = tables.Count - 1; i >= 0; i--)
            //{
            //    // 检查表格名称是否与特定值匹配
            //    if (tables[i].Name == "销售交易")
            //    {
            //        // 移除表格
            //        tables.RemoveAt(i);
            //    }
            //}
            // 将生成的工作簿保存到文件
            workbook.SaveToFile("删除表格.xlsx", ExcelVersion.Version2016);
            workbook.Dispose();
        }
    }
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
 



 
					



