c# openxml 删除xlsx、xls的外链

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

cs 复制代码
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 文件中的外部链接:

cs 复制代码
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);
        }
    }
}

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

相关推荐
开开心心_Every4 小时前
A3试卷分割工具:免费转为A4格式可离线
游戏·随机森林·微信·pdf·excel·语音识别·最小二乘法
yngsqq5 小时前
批量裁剪——CAD一键根据裁剪框裁剪
c#
骆驼爱记录5 小时前
Excel数据源到Word成绩单自动生成
自动化·word·excel·wps·新人首发
开开心心_Every8 小时前
手机PDF处理工具:支持格式转换与批注
游戏·微信·智能手机·pdf·逻辑回归·excel·语音识别
东边的小山8 小时前
python 图形界面多个WORD按名字排序合并成一个WORD
python·c#·word
大王小生17 小时前
说说CSV文件和C#解析csv文件的几种方式
人工智能·c#·csv·csvhelper·csvreader
LongtengGensSupreme18 小时前
C# 中监听 IPv6 回环地址----HttpListener
c#·ipv6·httplistener
zzcufo21 小时前
多邻国学习笔记第五阶段第10-11部分
笔记·学习·c#
岁月@可回首1 天前
两个excel中寻找相同关键词下的内容,将一个需要的内容复制到另一个excel
excel
云纳星辰怀自在1 天前
基于VBA调用API在Excel中自动生成音标和翻译
excel·单词自动生成音标·excel自动翻译