在 Excel 中,表格是一个结构化的数据区域,每列均有标题。将单元格区域转换成表格后,Excel 会自动对其应用格式,如给表格的每个标题单元格添加筛选按钮,同时提供更强大的数据操作和分析功能。在这篇文章中,我们将介绍如何使用 Spire.XLS for .NET 和 C# 在 Excel 中创建、修改和删除表格。
安装 Spire.XLS for .NET
首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.XLS
C# 在 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 天的临时许可证。