c# openxml 删除xlsx、xls的外链

发布时间:2024年01月19日

要删除一个 Excel 文件(.xlsx)中的外部链接(external links),你可以使用 OpenXML SDK。外部链接通常包含在 `externalReferences` 元素中。以下是一个简单的 C# 代码示例,演示如何使用 OpenXML SDK 删除外部链接:

using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;

class Program
{
? ? static void Main()
? ? {
? ? ? ? string filePath = "your_file_path.xlsx";

? ? ? ? // 备份文件,以防需要还原
? ? ? ? string backupFilePath = "backup_file_path.xlsx";
? ? ? ? System.IO.File.Copy(filePath, backupFilePath, true);

? ? ? ? // 删除外部链接
? ? ? ? RemoveExternalLinks(filePath);

? ? ? ? Console.WriteLine("External links removed successfully.");
? ? }

? ? static void RemoveExternalLinks(string filePath)
? ? {
? ? ? ? using (SpreadsheetDocument spreadsheetDoc = SpreadsheetDocument.Open(filePath, true))
? ? ? ? {
? ? ? ? ? ? WorkbookPart workbookPart = spreadsheetDoc.WorkbookPart;

? ? ? ? ? ? // 删除 externalReferences 元素
? ? ? ? ? ? ExternalReferences externalReferences = workbookPart.Workbook.Descendants<ExternalReferences>().FirstOrDefault();
? ? ? ? ? ? if (externalReferences != null)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? externalReferences.Remove();
? ? ? ? ? ? }

? ? ? ? ? ? // 保存更改
? ? ? ? ? ? workbookPart.Workbook.Save();
? ? ? ? }
? ? }
}

请确保将文件路径替换为你实际的文件路径。此代码将备份原始文件,并在原始文件上删除外部链接。如果需要还原,可以使用备份文件。记得在使用此代码前备份你的数据,以免不小心删除了重要的信息。

对于删除 Excel 文件(.xls)中的外部链接,你需要使用 NPOI(一个用于处理 Office 文件的开源库)或其他类似的库,因为 OpenXML SDK 主要用于处理 Office 2007及更高版本(.xlsx)的文件。

以下是使用 NPOI 的示例代码,用于删除 .xls 文件中的外部链接:

using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System;
using System.IO;

class Program
{
? ? static void Main()
? ? {
? ? ? ? string filePath = "your_file_path.xls";

? ? ? ? // 备份文件,以防需要还原
? ? ? ? string backupFilePath = "backup_file_path.xls";
? ? ? ? File.Copy(filePath, backupFilePath, true);

? ? ? ? // 删除外部链接
? ? ? ? RemoveExternalLinks(filePath);

? ? ? ? Console.WriteLine("External links removed successfully.");
? ? }

? ? static void RemoveExternalLinks(string filePath)
? ? {
? ? ? ? using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite))
? ? ? ? {
? ? ? ? ? ? HSSFWorkbook workbook = new HSSFWorkbook(fileStream);

? ? ? ? ? ? // 删除外部链接
? ? ? ? ? ? workbook.ExternalLinksTable.RemoveAggregate();

? ? ? ? ? ? // 保存更改
? ? ? ? ? ? workbook.Write(fileStream);
? ? ? ? }
? ? }
}

请确保将文件路径替换为你实际的文件路径。这段代码将备份原始文件并在原始文件上删除外部链接。如果需要还原,可以使用备份文件。同样,请在使用此代码之前备份你的数据,以免不小心删除了重要的信息。

文章来源:https://blog.csdn.net/nbspzs/article/details/135705957
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。