Excel 文档属性(也称为元数据)能够提供有关文件内容、作者以及创建和修改历史等信息,有助于更高效地管理、分类和检索 Excel 文件。除了向 Excel 文件添加文档属性外,本文还将介绍如何在 C# 中读取或删除 Excel 文档属性。
安装 Excel 处理库
开始之前,需要在 .NET 项目中添加相应的 Excel 处理库引用。您可以下载所需的 DLL 文件并手动添加到项目中,也可以通过 NuGet 进行安装。
cs
PM> Install-Package Spire.XLS
在 C# 中读取 Excel 的标准文档属性和自定义文档属性
Excel 文档属性主要分为以下两类:
- 标准属性(Standard Properties):Excel 文件内置的预定义属性,通常包括标题(Title)、主题(Subject)、作者(Author)、关键词(Keywords)等基本信息。
- 自定义属性(Custom Properties):用户根据实际需求添加的属性,用于记录和管理文件的附加信息。
借助 Excel 处理库,可以同时读取 Excel 文件中的标准文档属性和自定义文档属性。具体步骤如下:
- 创建一个
Workbook对象。 - 使用
Workbook.LoadFromFile()方法加载 Excel 文件。 - 创建一个
StringBuilder对象,用于存储读取结果。 - 通过
Workbook.DocumentProperties属性获取所有标准文档属性集合。 - 使用
BuiltInDocumentProperties类提供的属性获取指定的标准文档属性,并将其追加到StringBuilder对象中。 - 通过
Workbook.CustomDocumentProperties属性获取所有自定义文档属性集合。 - 遍历该集合。
- 使用
IDocumentProperty.Name和IDocumentProperty.Value属性获取每个自定义文档属性的名称和值,并将其追加到StringBuilder对象中。 - 将
StringBuilder中的内容写入 TXT 文件。
完整示例代码如下:
cs
using Spire.Xls;
using Spire.Xls.Collections;
using Spire.Xls.Core;
using System.IO;
using System.Text;
namespace GetExcelProperties
{
class Program
{
static void Main(string[] args)
{
{
//创建 Workbook 实例
Workbook workbook = new Workbook();
//加载示例 Excel 文件
workbook.LoadFromFile("Budget Template.xlsx");
//创建 StringBuilder 实例
StringBuilder sb = new StringBuilder();
//获取所有标准文档属性的集合
BuiltInDocumentProperties standardProperties = workbook.DocumentProperties;
//获取指定的标准属性并追加到 StringBuilder 实例中
sb.AppendLine("Standard Document Properties:");
sb.AppendLine("Title: " + standardProperties.Title);
sb.AppendLine("Subject: " + standardProperties.Subject);
sb.AppendLine("Category: " + standardProperties.Category);
sb.AppendLine("Keywords: " + standardProperties.Keywords);
sb.AppendLine("Comments: " + standardProperties.Comments);
sb.AppendLine();
//获取所有自定义文档属性的集合
ICustomDocumentProperties customProperties = workbook.CustomDocumentProperties;
sb.AppendLine("Custom Document Properties:");
//遍历集合
for (int i = 0; i < customProperties.Count; i++)
{
//获取每个自定义文档属性的名称和值,并追加到 StringBuilder 实例中
string name = customProperties[i].Name;
string value = customProperties[i].Value.ToString();
sb.AppendLine(name + ": " + value);
}
//将 StringBuilder 实例中的内容写入文本文件
File.WriteAllText("GetExcelProperties.txt", sb.ToString());
}
}
}
}
在 C# 中删除 Excel 的标准文档属性和自定义文档属性
您可以通过将标准文档属性的值设置为空来删除 Excel 文件中的标准文档属性。对于自定义文档属性,则可以使用 ICustomDocumentProperties.Remove() 方法将其删除。具体步骤如下:
- 创建一个
Workbook实例。 - 使用
Workbook.LoadFromFile()方法加载示例 Excel 文件。 - 通过
Workbook.DocumentProperties属性获取所有标准文档属性的集合。 - 通过
BuiltInDocumentProperties类对应的属性,将指定标准文档属性的值设置为空。 - 通过
Workbook.CustomDocumentProperties属性获取所有自定义文档属性的集合。 - 遍历该集合。
- 使用
ICustomDocumentProperties.Remove(string strName)方法,根据名称删除集合中的每个自定义文档属性。 - 使用
Workbook.SaveToFile()方法保存结果文件。
完整示例代码如下:
cs
using Spire.Xls;
using Spire.Xls.Collections;
using Spire.Xls.Core;
namespace DeleteExcelProperties
{
class Program
{
static void Main(string[] args)
{
{
//创建 Workbook 实例
Workbook workbook = new Workbook();
//加载示例 Excel 文件
workbook.LoadFromFile("Budget Template.xlsx");
//获取所有标准文档属性的集合
BuiltInDocumentProperties standardProperties = workbook.DocumentProperties;
//将每个标准文档属性的值设置为空
standardProperties.Title = "";
standardProperties.Subject = "";
standardProperties.Category = "";
standardProperties.Keywords = "";
standardProperties.Comments = "";
//获取所有自定义文档属性的集合
ICustomDocumentProperties customProperties = workbook.CustomDocumentProperties;
//遍历集合
for (int i = customProperties.Count -1; i >=0; i--)
{
//根据名称从集合中删除每个自定义文档属性
customProperties.Remove(customProperties[i].Name);
}
//保存结果文件
workbook.SaveToFile("DeleteDocumentProperties.xlsx", ExcelVersion.Version2016);
}
}
}
}
总结
本文介绍了如何在 C# 中删除 Excel 文件的标准文档属性和自定义文档属性。对于标准文档属性,可以通过将标题、主题、类别、关键词和备注等属性值设置为空来清除相关信息;对于自定义文档属性,则可以遍历属性集合,并根据属性名称逐个删除。
通过这种方式,您可以有效移除 Excel 文件中的元数据,减少不必要的信息暴露,保护文档隐私,并确保文件在共享或发布前不包含敏感的作者信息、历史记录或其他自定义属性。该方法适用于需要清理文档信息、规范文件管理或满足数据安全要求的场景。